Step * 1 1 1 1 of Lemma evalall-sqequal


1. Base
2. evalall,t. eval in
                if is pair then let a,b 
                                    in eval a' evalall in
                                       eval b' evalall in
                                         <a', b'> otherwise if is inl then eval evalall outl(x) in
                                                                             inl y
                                                            else if is inr then eval evalall outr(x) in
                                                                                  inr 
                                                                 else x)
F
∈ Base
3. : ℤ
4. 0 < j
5. ∀x:Base. ((F^j 1 ⊥ x)↓  ((fix(F) x)↓ ∧ (fix(F) x)))
6. Base
7. (F^j ⊥ x)↓
8. (F (F^j 1 ⊥x)↓
9. ~ λevalall,t. eval in
                   if is pair then let a,b 
                                       in eval a' evalall in
                                          eval b' evalall in
                                            <a', b'> otherwise if is inl then eval evalall outl(x) in
                                                                                inl y
                                                               else if is inr then eval evalall outr(x) in
                                                                                     inr 
                                                                    else x
⊢ (fix(F) x)↓ ∧ (fix(F) x)
BY
(Thin 2
   THEN PromoteHyp (-1) 2
   THEN RW (AddrC [1;1;1] (HypC 2)) (-1)
   THEN Reduce (-1)
   THEN (Subst' fix(F) evalall,t. eval in
                                      if is pair then let a,b 
                                                          in eval a' evalall in
                                                             eval b' evalall in
                                                               <a', b'> otherwise if is inl then eval evalall 
                                                                                                            outl(x) in
                                                                                                   inl y
                                                                                  else if is inr
                                                                                       eval evalall outr(x) in
                                                                                       inr 
                                                                                       else x) 
                         fix(F) 0
         THENA (RevHypSubst THEN RW (AddrC [1] UnrollRecursionC) THEN Auto)
         )
   THEN Reduce 0) }

1
1. Base
2. ~ λevalall,t. eval in
                   if is pair then let a,b 
                                       in eval a' evalall in
                                          eval b' evalall in
                                            <a', b'> otherwise if is inl then eval evalall outl(x) in
                                                                                inl y
                                                               else if is inr then eval evalall outr(x) in
                                                                                     inr 
                                                                    else x
3. : ℤ
4. 0 < j
5. ∀x:Base. ((F^j 1 ⊥ x)↓  ((fix(F) x)↓ ∧ (fix(F) x)))
6. Base
7. (F^j ⊥ x)↓
8. (eval in
    if is pair then let a,b 
                        in eval a' F^j 1 ⊥ in
                           eval b' F^j 1 ⊥ in
                             <a', b'> otherwise if is inl then eval F^j 1 ⊥ outl(x) in
                                                                 inl y
                                                else if is inr then eval F^j 1 ⊥ outr(x) in
                                                                      inr 
                                                     else x)↓
⊢ (eval in
   if is pair then let a,b 
                       in eval a' fix(F) in
                          eval b' fix(F) in
                            <a', b'> otherwise if is inl then eval fix(F) outl(x) in
                                                                inl y
                                               else if is inr then eval fix(F) outr(x) in
                                                                     inr 
                                                    else x)↓
∧ (eval in
   if is pair then let a,b 
                       in eval a' fix(F) in
                          eval b' fix(F) in
                            <a', b'> otherwise if is inl then eval fix(F) outl(x) in
                                                                inl y
                                               else if is inr then eval fix(F) outr(x) in
                                                                     inr 
                                                    else 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{}
8.  (F  (F\^{}j  -  1  \mbot{})  x)\mdownarrow{}
9.  F  \msim{}  \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
                                                                                                                                        eval  y  =  evalall  outr(x)  in
                                                                                                                                        inr  y 
                                                                                                                                        else  x
\mvdash{}  (fix(F)  x)\mdownarrow{}  \mwedge{}  (fix(F)  x  \msim{}  x)


By


Latex:
(Thin  2
  THEN  PromoteHyp  (-1)  2
  THEN  RW  (AddrC  [1;1;1]  (HypC  2))  (-1)
  THEN  Reduce  (-1)
  THEN  (Subst'  fix(F)  \msim{}  (\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) 
                                              fix(F)  0
              THENA  (RevHypSubst  2  0  THEN  RW  (AddrC  [1]  UnrollRecursionC)  0  THEN  Auto)
              )
  THEN  Reduce  0)




Home Index