Step
*
1
2
1
1
2
of Lemma
member-gcd-reduce-constraints
1. n : ℕ+
2. u : ℤ
3. [%2] : 1 = n ∈ ℤ
4. v : {L:ℤ List| ||L|| = n ∈ ℤ}  List
5. ∀sat:{L:ℤ List| ||L|| = n ∈ ℤ}  List. ∀cc:{L:ℤ List| ||L|| = n ∈ ℤ} .
     ((↑isl(gcd-reduce-eq-constraints(sat;v))) 
⇒ (cc ∈ sat) 
⇒ (cc ∈ outl(gcd-reduce-eq-constraints(sat;v))))
6. ¬(u = 0 ∈ ℤ)
⊢ ∀sat:{L:ℤ List| ||L|| = n ∈ ℤ}  List. ∀cc:{L:ℤ List| ||L|| = n ∈ ℤ} .
    ((↑isl(accumulate_abort(L,Ls.let h,t = L 
                                 in if t = Ax then if h=0 then inl [L / Ls] else (inr ⋅ )
                                    otherwise eval g = |gcd-list(t)| in
                                              if (1) < (g)
                                                 then if h rem g=0
                                                      then eval L' = eager-map(λx.(x ÷ g);L) in
                                                           inl [L' / Ls]
                                                      else (inr ⋅ )
                                                 else (inl [L / Ls]);inr ⋅ v)))
    
⇒ (cc ∈ sat)
    
⇒ (cc ∈ outl(accumulate_abort(L,Ls.let h,t = L 
                                        in if t = Ax then if h=0 then inl [L / Ls] else (inr ⋅ )
                                           otherwise eval g = |gcd-list(t)| in
                                                     if (1) < (g)
                                                        then if h rem g=0
                                                             then eval L' = eager-map(λx.(x ÷ g);L) in
                                                                  inl [L' / Ls]
                                                             else (inr ⋅ )
                                                        else (inl [L / Ls]);inr ⋅ v))))
BY
{ ((RWO "accumulate_abort-aborted" 0 THENA Auto) THEN Reduce 0 THEN Auto) }
Latex:
Latex:
1.  n  :  \mBbbN{}\msupplus{}
2.  u  :  \mBbbZ{}
3.  [\%2]  :  1  =  n
4.  v  :  \{L:\mBbbZ{}  List|  ||L||  =  n\}    List
5.  \mforall{}sat:\{L:\mBbbZ{}  List|  ||L||  =  n\}    List.  \mforall{}cc:\{L:\mBbbZ{}  List|  ||L||  =  n\}  .
          ((\muparrow{}isl(gcd-reduce-eq-constraints(sat;v)))
          {}\mRightarrow{}  (cc  \mmember{}  sat)
          {}\mRightarrow{}  (cc  \mmember{}  outl(gcd-reduce-eq-constraints(sat;v))))
6.  \mneg{}(u  =  0)
\mvdash{}  \mforall{}sat:\{L:\mBbbZ{}  List|  ||L||  =  n\}    List.  \mforall{}cc:\{L:\mBbbZ{}  List|  ||L||  =  n\}  .
        ((\muparrow{}isl(accumulate\_abort(L,Ls.let  h,t  =  L 
                                                                  in  if  t  =  Ax  then  if  h=0  then  inl  [L  /  Ls]  else  (inr  \mcdot{}  )
                                                                        otherwise  eval  g  =  |gcd-list(t)|  in
                                                                                            if  (1)  <  (g)
                                                                                                  then  if  h  rem  g=0
                                                                                                            then  eval  L'  =  eager-map(\mlambda{}x.(x  \mdiv{}  g);L)  in
                                                                                                                      inl  [L'  /  Ls]
                                                                                                            else  (inr  \mcdot{}  )
                                                                                                  else  (inl  [L  /  Ls]);inr  \mcdot{}  ;v)))
        {}\mRightarrow{}  (cc  \mmember{}  sat)
        {}\mRightarrow{}  (cc
                  \mmember{}  outl(accumulate\_abort(L,Ls.let  h,t  =  L 
                                                                            in  if  t  =  Ax  then  if  h=0  then  inl  [L  /  Ls]  else  (inr  \mcdot{}  )
                                                                                  otherwise  eval  g  =  |gcd-list(t)|  in
                                                                                                      if  (1)  <  (g)
                                                                                                            then  if  h  rem  g=0
                                                                                                                      then  eval  L'  =  eager-map(\mlambda{}x.(x  \mdiv{}  g);L)  in
                                                                                                                                inl  [L'  /  Ls]
                                                                                                                      else  (inr  \mcdot{}  )
                                                                                                            else  (inl  [L  /  Ls]);inr  \mcdot{}  ;v))))
By
Latex:
((RWO  "accumulate\_abort-aborted"  0  THENA  Auto)  THEN  Reduce  0  THEN  Auto)
Home
Index