Step
*
1
1
of Lemma
cWO-induction-extract-sqequal
1. f : Base
2. t : Base
3. G : Base
4. G ~ λf,bar_recursion,n,s. case if (0) < (n)
                                     then if s (n - 1) then inr (λp.let _,_ = p in Ax)  else inl <Ax, Ax> fi 
                                     else (inr (λp.let _,_ = p 
                                                   in Ax) )
                             of inl(r) =>
                             λa.let _,_ = r 
                                in Ax
                             | inr(r) =>
                             λa.(f a (λs1.(bar_recursion (n + 1) (λm.if m=n  then inl a  else (s m)) s1)))
⊢ fix((λF,t. (f t F))) ~ λs1.(fix((G f)) 1 (λm.if m=0  then inl t  else if (m) < (0)  then 0 m  else ⊥) s1)
BY
{ ((RW (SubC (SweepUpC UnrollRecursionC)) 0 THEN Reduce 0) THEN EqCD THEN RenameVar `s1' (-1)) }
1
1. f : Base
2. t : Base
3. G : Base
4. G ~ λf,bar_recursion,n,s. case if (0) < (n)
                                     then if s (n - 1) then inr (λp.let _,_ = p in Ax)  else inl <Ax, Ax> fi 
                                     else (inr (λp.let _,_ = p 
                                                   in Ax) )
                             of inl(r) =>
                             λa.let _,_ = r 
                                in Ax
                             | inr(r) =>
                             λa.(f a (λs1.(bar_recursion (n + 1) (λm.if m=n  then inl a  else (s m)) s1)))
5. s1 : Base
⊢ f s1 fix((λF,t. (f t F))) ~ G f fix((G f)) 1 (λm.if m=0  then inl t  else if (m) < (0)  then 0 m  else ⊥) s1
Latex:
Latex:
1.  f  :  Base
2.  t  :  Base
3.  G  :  Base
4.  G  \msim{}  \mlambda{}f,bar$_{recursion}$,n,s.  case  if  (0)  <  (n)
                                                                        then  if  s  (n  -  1)
                                                                                  then  inr  (\mlambda{}p.let  $_{}$,$_{\mbackslash{}\000Cff7d$  =  p 
                                                                                                            in  Ax) 
                                                                                  else  inl  <Ax,  Ax>
                                                                                  fi 
                                                                        else  (inr  (\mlambda{}p.let  $_{}$,$_{}\000C$  =  p 
                                                                                                    in  Ax)  )
                                                        of  inl(r)  =>
                                                        \mlambda{}a.let  $_{}$,$_{}$  =  r 
                                                              in  Ax
                                                        |  inr(r)  =>
                                                        \mlambda{}a.(f  a 
                                                                (\mlambda{}s1.(bar$_{recursion}$  (n  +  1)  (\mlambda{}m.if  m=n    then\000C  inl  a    else  (s  m))  s1)))
\mvdash{}  fix((\mlambda{}F,t.  (f  t  F)))  \msim{}  \mlambda{}s1.(fix((G  f))  1  (\mlambda{}m.if  m=0    then  inl  t    else  if  (m)  <  (0)    then  0  m    else\000C  \mbot{}) 
                                                    s1)
By
Latex:
((RW  (SubC  (SweepUpC  UnrollRecursionC))  0  THEN  Reduce  0)  THEN  EqCD  THEN  RenameVar  `s1'  (-1))
Home
Index