Step
*
of Lemma
member-gcd-reduce-ineq-constraints
No Annotations
∀n:ℕ+. ∀ineqs,sat:{L:ℤ List| ||L|| = n ∈ ℤ} List. ∀cc:{L:ℤ List| ||L|| = n ∈ ℤ} .
((↑isl(gcd-reduce-ineq-constraints(sat;ineqs)))
⇒ (cc ∈ sat)
⇒ (cc ∈ outl(gcd-reduce-ineq-constraints(sat;ineqs))))
BY
{ (InductionOnList
THEN Unfold `gcd-reduce-ineq-constraints` 0
THEN (RWW "accumulate_abort_cons_lemma" 0 THENA Auto)
THEN Reduce 0
THEN Try (Complete (Auto))) }
1
1. n : ℕ+
2. u : {L:ℤ List| ||L|| = n ∈ ℤ}
3. v : {L:ℤ List| ||L|| = n ∈ ℤ} List
4. ∀sat:{L:ℤ List| ||L|| = n ∈ ℤ} List. ∀cc:{L:ℤ List| ||L|| = n ∈ ℤ} .
((↑isl(gcd-reduce-ineq-constraints(sat;v)))
⇒ (cc ∈ sat)
⇒ (cc ∈ outl(gcd-reduce-ineq-constraints(sat;v))))
⊢ ∀sat:{L:ℤ List| ||L|| = n ∈ ℤ} List. ∀cc:{L:ℤ List| ||L|| = n ∈ ℤ} .
((↑isl(let s' ⟵ let h,t = u
in if t = Ax then if (h) < (0) then inr ⋅ else (inl [u / sat])
otherwise eval g = |gcd-list(t)| in
if (1) < (g)
then eval h' = h ÷↓ g in
eval t' = eager-map(λx.(x ÷ g);t) in
inl [[h' / t'] / sat]
else (inl [u / sat])
in accumulate_abort(L,Ls.let h,t = L
in if t = Ax then if (h) < (0) then inr ⋅ else (inl [L / Ls])
otherwise eval g = |gcd-list(t)| in
if (1) < (g)
then eval h' = h ÷↓ g in
eval t' = eager-map(λx.(x ÷ g);t) in
inl [[h' / t'] / Ls]
else (inl [L / Ls]);s';v)))
⇒ (cc ∈ sat)
⇒ (cc ∈ outl(let s' ⟵ let h,t = u
in if t = Ax then if (h) < (0) then inr ⋅ else (inl [u / sat])
otherwise eval g = |gcd-list(t)| in
if (1) < (g)
then eval h' = h ÷↓ g in
eval t' = eager-map(λx.(x ÷ g);t) in
inl [[h' / t'] / sat]
else (inl [u / sat])
in accumulate_abort(L,Ls.let h,t = L
in if t = Ax then if (h) < (0) then inr ⋅ else (inl [L / Ls])
otherwise eval g = |gcd-list(t)| in
if (1) < (g)
then eval h' = h ÷↓ g in
eval t' = eager-map(λx.(x ÷ g);t) in
inl [[h' / t'] / Ls]
else (inl [L / Ls]);s';v))))
Latex:
Latex:
No Annotations
\mforall{}n:\mBbbN{}\msupplus{}. \mforall{}ineqs,sat:\{L:\mBbbZ{} List| ||L|| = n\} List. \mforall{}cc:\{L:\mBbbZ{} List| ||L|| = n\} .
((\muparrow{}isl(gcd-reduce-ineq-constraints(sat;ineqs)))
{}\mRightarrow{} (cc \mmember{} sat)
{}\mRightarrow{} (cc \mmember{} outl(gcd-reduce-ineq-constraints(sat;ineqs))))
By
Latex:
(InductionOnList
THEN Unfold `gcd-reduce-ineq-constraints` 0
THEN (RWW "accumulate\_abort\_cons\_lemma" 0 THENA Auto)
THEN Reduce 0
THEN Try (Complete (Auto)))
Home
Index