Step
*
1
1
of Lemma
evalall-sqequal
1. F : Base
2. (λevalall,t. eval x = t in
                if x is a pair then let a,b = x 
                                    in eval a' = evalall a in
                                       eval b' = evalall b in
                                         <a', b'> otherwise if x is inl then eval y = evalall outl(x) in
                                                                             inl y
                                                            else if x is inr then eval y = evalall outr(x) in
                                                                                  inr y 
                                                                 else x)
= F
∈ Base
3. j : ℤ
4. 0 < j
5. ∀x:Base. ((F^j - 1 ⊥ x)↓ 
⇒ ((fix(F) x)↓ ∧ (fix(F) x ~ x)))
6. x : Base
7. (F^j ⊥ x)↓
⊢ (fix(F) x)↓ ∧ (fix(F) x ~ x)
BY
{ (Assert (F (F^j - 1 ⊥) x)↓ BY
         ((InstLemma `fun_exp_unroll_1` [⌜j⌝;⌜F⌝]⋅ THENA Auto) THEN RWO "-1" (-2) THEN Reduce (-2) THEN Auto)) }
1
1. F : Base
2. (λevalall,t. eval x = t in
                if x is a pair then let a,b = x 
                                    in eval a' = evalall a in
                                       eval b' = evalall b in
                                         <a', b'> otherwise if x is inl then eval y = evalall outl(x) in
                                                                             inl y
                                                            else if x is inr then eval y = evalall outr(x) in
                                                                                  inr y 
                                                                 else x)
= F
∈ Base
3. j : ℤ
4. 0 < j
5. ∀x:Base. ((F^j - 1 ⊥ x)↓ 
⇒ ((fix(F) x)↓ ∧ (fix(F) x ~ x)))
6. x : Base
7. (F^j ⊥ x)↓
8. (F (F^j - 1 ⊥) x)↓
⊢ (fix(F) x)↓ ∧ (fix(F) x ~ x)
Latex:
Latex:
1.  F  :  Base
2.  (\mlambda{}evalall,t.  eval  x  =  t  in
                                if  x  is  a  pair  then  let  a,b  =  x 
                                                                        in  eval  a'  =  evalall  a  in
                                                                              eval  b'  =  evalall  b  in
                                                                                  <a',  b'>
                                otherwise  if  x  is  inl  then  eval  y  =  evalall  outl(x)  in
                                                                                      inl  y
                                                    else  if  x  is  inr  then  eval  y  =  evalall  outr(x)  in
                                                                                                inr  y 
                                                              else  x)
=  F
3.  j  :  \mBbbZ{}
4.  0  <  j
5.  \mforall{}x:Base.  ((F\^{}j  -  1  \mbot{}  x)\mdownarrow{}  {}\mRightarrow{}  ((fix(F)  x)\mdownarrow{}  \mwedge{}  (fix(F)  x  \msim{}  x)))
6.  x  :  Base
7.  (F\^{}j  \mbot{}  x)\mdownarrow{}
\mvdash{}  (fix(F)  x)\mdownarrow{}  \mwedge{}  (fix(F)  x  \msim{}  x)
By
Latex:
(Assert  (F  (F\^{}j  -  1  \mbot{})  x)\mdownarrow{}  BY
              ((InstLemma  `fun\_exp\_unroll\_1`  [\mkleeneopen{}j\mkleeneclose{};\mkleeneopen{}F\mkleeneclose{}]\mcdot{}  THENA  Auto)
                THEN  RWO  "-1"  (-2)
                THEN  Reduce  (-2)
                THEN  Auto))
Home
Index