Step
*
2
of Lemma
evalall-append-sqle
1. j : ℤ
2. 0 < j
3. ∀a,b:Base.
     (evalall(λlist_ind,L. eval v = L in
                           if v is a pair then let a,as' = v 
                                               in [a / (list_ind as')] otherwise if v = Ax then b otherwise ⊥^j - 1 
              ⊥ 
              a) ≤ eval u = evalall(a) in
                   eval v = evalall(b) in
                     evalall(u @ v))
4. a : Base
5. b : Base
6. (a)↓
7. ∀a@0,b:Top.  (if a is a pair then a@0 otherwise b ~ b)
⊢ eval v = if a = Ax then b otherwise ⊥ in
  if v is a pair then let a,b = v 
                      in eval a' = evalall(a) in
                         eval b' = evalall(b) in
                           <a', b'> otherwise if v is inl then eval y = evalall(outl(v)) in
                                                               inl y
                                              else if v is inr then eval y = evalall(outr(v)) in
                                                                    inr y 
                                                   else v ≤ eval u = if a is inl then eval y = evalall(outl(a)) in
                                                                                      inl y
                                                                     else if a is inr then eval y = evalall(outr(a)) in
                                                                                           inr y 
                                                                          else a in
                                                            eval v = evalall(b) in
                                                              evalall(u @ v)
BY
{ TACTIC:(HVimplies2 0 [1;1] THEN Try ((RWO "-1" 0 THENA Complete (Auto)))) }
1
1. j : ℤ
2. 0 < j
3. ∀a,b:Base.
     (evalall(λlist_ind,L. eval v = L in
                           if v is a pair then let a,as' = v 
                                               in [a / (list_ind as')] otherwise if v = Ax then b otherwise ⊥^j - 1 
              ⊥ 
              a) ≤ eval u = evalall(a) in
                   eval v = evalall(b) in
                     evalall(u @ v))
4. a : Base
5. b : Base
6. 0 ≤ 0
7. ∀a@0,b:Top.  (b ~ b)
8. a ~ Ax
⊢ eval v = b in
  if v is a pair then let a,b = v 
                      in eval a' = evalall(a) in
                         eval b' = evalall(b) in
                           <a', b'> otherwise if v is inl then eval y = evalall(outl(v)) in
                                                               inl y
                                              else if v is inr then eval y = evalall(outr(v)) in
                                                                    inr y 
                                                   else v ≤ eval v = evalall(b) in
                                                            evalall(v)
Latex:
Latex:
1.  j  :  \mBbbZ{}
2.  0  <  j
3.  \mforall{}a,b:Base.
          (evalall(\mlambda{}list$_{ind}$,L.  eval  v  =  L  in
                                                    if  v  is  a  pair  then  let  a,as'  =  v 
                                                                                            in  [a  /  (list$_{ind}$  as')]
                                                    otherwise  if  v  =  Ax  then  b  otherwise  \mbot{}\^{}j  -  1 
                            \mbot{} 
                            a)  \mleq{}  eval  u  =  evalall(a)  in
                                      eval  v  =  evalall(b)  in
                                          evalall(u  @  v))
4.  a  :  Base
5.  b  :  Base
6.  (a)\mdownarrow{}
7.  \mforall{}a@0,b:Top.    (if  a  is  a  pair  then  a@0  otherwise  b  \msim{}  b)
\mvdash{}  eval  v  =  if  a  =  Ax  then  b  otherwise  \mbot{}  in
    if  v  is  a  pair  then  let  a,b  =  v 
                                            in  eval  a'  =  evalall(a)  in
                                                  eval  b'  =  evalall(b)  in
                                                      <a',  b'>  otherwise  if  v  is  inl  then  eval  y  =  evalall(outl(v))  in
                                                                                                                              inl  y
                                                                                            else  if  v  is  inr  then  eval  y  =  evalall(outr(v))  in
                                                                                                                                        inr  y 
                                                                                                      else  v 
    \mleq{}  eval  u  =  if  a  is  inl  then  eval  y  =  evalall(outl(a))  in
                                                            inl  y
                          else  if  a  is  inr  then  eval  y  =  evalall(outr(a))  in
                                                                      inr  y 
                                    else  a  in
        eval  v  =  evalall(b)  in
            evalall(u  @  v)
By
Latex:
TACTIC:(HVimplies2  0  [1;1]  THEN  Try  ((RWO  "-1"  0  THENA  Complete  (Auto))))
Home
Index