Step * 2 1 1 2 2 of Lemma satisfies-gcd-reduce-eq-constraints


1. : ℕ+
2. xs {L:ℤ List| ||L|| n ∈ ℤ
3. 0 < ||xs|| ∧ (hd(xs) 1 ∈ ℤ)
4. : ℤ
5. v1 : ℤ List
6. [%4] ||[u v1]|| n ∈ ℤ
7. {L:ℤ List| ||L|| n ∈ ℤ}  List
8. ∀sat:{L:ℤ List| ||L|| n ∈ ℤ}  List
     ((↑isl(gcd-reduce-eq-constraints(sat;v)))
      (∀as∈outl(gcd-reduce-eq-constraints(sat;v)).xs ⋅ as =0)
      (∀as∈v.xs ⋅ as =0))
9. sat {L:ℤ List| ||L|| n ∈ ℤ}  List
⊢ (↑isl(gcd-reduce-eq-constraints(sat;[[u v1] v])))
 (∀as∈outl(gcd-reduce-eq-constraints(sat;[[u v1] v])).xs ⋅ as =0)
 (∀as∈[[u v1] v].xs ⋅ as =0)
BY
(Unfold `gcd-reduce-eq-constraints` 0
   THEN (RWW "accumulate_abort_cons_lemma" THENA Auto)
   THEN Reduce 0
   THEN (Decide ⌜↑null(v1)⌝⋅ THENA Auto)
   THEN RW (SweepDnC IsAxiomC) 0) }

1
1. : ℕ+
2. xs {L:ℤ List| ||L|| n ∈ ℤ
3. 0 < ||xs|| ∧ (hd(xs) 1 ∈ ℤ)
4. : ℤ
5. v1 : ℤ List
6. [%4] ||[u v1]|| n ∈ ℤ
7. {L:ℤ List| ||L|| n ∈ ℤ}  List
8. ∀sat:{L:ℤ List| ||L|| n ∈ ℤ}  List
     ((↑isl(gcd-reduce-eq-constraints(sat;v)))
      (∀as∈outl(gcd-reduce-eq-constraints(sat;v)).xs ⋅ as =0)
      (∀as∈v.xs ⋅ as =0))
9. sat {L:ℤ List| ||L|| n ∈ ℤ}  List
10. ↑null(v1)
⊢ (↑isl(let s' ⟵ if u=0 then inl [[u v1] sat] else (inr ⋅ )
        in accumulate_abort(L,Ls.let h,t 
                                 in if Ax then if h=0 then inl [L Ls] else (inr ⋅ )
                                    otherwise eval |gcd-list(t)| in
                                              if (1) < (g)
                                                 then if rem g=0
                                                      then eval L' eager-map(λx.(x ÷ g);L) in
                                                           inl [L' Ls]
                                                      else (inr ⋅ )
                                                 else (inl [L Ls]);s';v)))
 (∀as∈outl(let s' ⟵ if u=0 then inl [[u v1] sat] else (inr ⋅ )
             in accumulate_abort(L,Ls.let h,t 
                                      in if Ax then if h=0 then inl [L Ls] else (inr ⋅ )
                                         otherwise eval |gcd-list(t)| in
                                                   if (1) < (g)
                                                      then if rem g=0
                                                           then eval L' eager-map(λx.(x ÷ g);L) in
                                                                inl [L' Ls]
                                                           else (inr ⋅ )
                                                      else (inl [L Ls]);s';v)).xs ⋅ as =0)
 (∀as∈[[u v1] v].xs ⋅ as =0)

2
1. : ℕ+
2. xs {L:ℤ List| ||L|| n ∈ ℤ
3. 0 < ||xs|| ∧ (hd(xs) 1 ∈ ℤ)
4. : ℤ
5. v1 : ℤ List
6. [%4] ||[u v1]|| n ∈ ℤ
7. {L:ℤ List| ||L|| n ∈ ℤ}  List
8. ∀sat:{L:ℤ List| ||L|| n ∈ ℤ}  List
     ((↑isl(gcd-reduce-eq-constraints(sat;v)))
      (∀as∈outl(gcd-reduce-eq-constraints(sat;v)).xs ⋅ as =0)
      (∀as∈v.xs ⋅ as =0))
9. sat {L:ℤ List| ||L|| n ∈ ℤ}  List
10. ¬↑null(v1)
⊢ (↑isl(let s' ⟵ eval |gcd-list(v1)| in
                  if (1) < (g)
                     then if rem g=0
                          then eval L' eval u ÷ in
                                         eval eager-map(λx.(x ÷ g);v1) in
                                           [x r] in
                               inl [L' sat]
                          else (inr ⋅ )
                     else (inl [[u v1] sat])
        in accumulate_abort(L,Ls.let h,t 
                                 in if Ax then if h=0 then inl [L Ls] else (inr ⋅ )
                                    otherwise eval |gcd-list(t)| in
                                              if (1) < (g)
                                                 then if rem g=0
                                                      then eval L' eager-map(λx.(x ÷ g);L) in
                                                           inl [L' Ls]
                                                      else (inr ⋅ )
                                                 else (inl [L Ls]);s';v)))
 (∀as∈outl(let s' ⟵ eval |gcd-list(v1)| in
                       if (1) < (g)
                          then if rem g=0
                               then eval L' eval u ÷ in
                                              eval eager-map(λx.(x ÷ g);v1) in
                                                [x r] in
                                    inl [L' sat]
                               else (inr ⋅ )
                          else (inl [[u v1] sat])
             in accumulate_abort(L,Ls.let h,t 
                                      in if Ax then if h=0 then inl [L Ls] else (inr ⋅ )
                                         otherwise eval |gcd-list(t)| in
                                                   if (1) < (g)
                                                      then if rem g=0
                                                           then eval L' eager-map(λx.(x ÷ g);L) in
                                                                inl [L' Ls]
                                                           else (inr ⋅ )
                                                      else (inl [L Ls]);s';v)).xs ⋅ as =0)
 (∀as∈[[u v1] v].xs ⋅ as =0)


Latex:


Latex:

1.  n  :  \mBbbN{}\msupplus{}
2.  xs  :  \{L:\mBbbZ{}  List|  ||L||  =  n\} 
3.  0  <  ||xs||  \mwedge{}  (hd(xs)  =  1)
4.  u  :  \mBbbZ{}
5.  v1  :  \mBbbZ{}  List
6.  [\%4]  :  ||[u  /  v1]||  =  n
7.  v  :  \{L:\mBbbZ{}  List|  ||L||  =  n\}    List
8.  \mforall{}sat:\{L:\mBbbZ{}  List|  ||L||  =  n\}    List
          ((\muparrow{}isl(gcd-reduce-eq-constraints(sat;v)))
          {}\mRightarrow{}  (\mforall{}as\mmember{}outl(gcd-reduce-eq-constraints(sat;v)).xs  \mcdot{}  as  =0)
          {}\mRightarrow{}  (\mforall{}as\mmember{}v.xs  \mcdot{}  as  =0))
9.  sat  :  \{L:\mBbbZ{}  List|  ||L||  =  n\}    List
\mvdash{}  (\muparrow{}isl(gcd-reduce-eq-constraints(sat;[[u  /  v1]  /  v])))
{}\mRightarrow{}  (\mforall{}as\mmember{}outl(gcd-reduce-eq-constraints(sat;[[u  /  v1]  /  v])).xs  \mcdot{}  as  =0)
{}\mRightarrow{}  (\mforall{}as\mmember{}[[u  /  v1]  /  v].xs  \mcdot{}  as  =0)


By


Latex:
(Unfold  `gcd-reduce-eq-constraints`  0
  THEN  (RWW  "accumulate\_abort\_cons\_lemma"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  (Decide  \mkleeneopen{}\muparrow{}null(v1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  RW  (SweepDnC  IsAxiomC)  0)




Home Index