Step * 1 1 1 2 of Lemma sqle-list_accum-list_ind


1. Base
2. strict1(λx.F[x])
3. Base
4. ∀z:Base. strict1(λx.G[z;x])
5. Base
6. Base
7. ∀a,b,c:Base.  (G[H[b;a];c] ≤ G[b;J[a;c]])
8. b2 Base@i
9. ∀x:Base. (F[x] ≤ G[x;b2])
10. : ℤ
11. 0 < j
12. ∀as,x:Base.
      (F[λlist_accum,y,L. eval in
                          if is pair then let h,t 
                                              in list_accum H[y;h] otherwise if Ax then otherwise ⊥^j 
         ⊥ 
         
         as] ≤ G[x;λlist_ind,L. eval in
                                if is pair then let h,t 
                                                    in J[h;list_ind t] otherwise if Ax then b2 otherwise ⊥^j 
                   ⊥ 
                   as])
13. as Base@i
14. b1 Base@i
15. ∀[a,B:Top].  (F[eval in B[x]] eval in F[B[x]])
16. ∀[a,B:Top].  (G[b1;eval in B[x]] eval in G[b1;B[x]])
17. (as)↓@i
18. ∀[a,b,c:Top].  (F[if is pair then otherwise c] if is pair then F[b] otherwise F[c])
19. ∀[a,b,c:Top].  (G[b1;if is pair then otherwise c] if is pair then G[b1;b] otherwise G[b1;c])
20. ∀[a,b,c:Top].  (F[if Ax then otherwise c] if Ax then F[b] otherwise F[c])
21. ∀[a,b,c:Top].  (G[b1;if Ax then otherwise c] if Ax then G[b1;b] otherwise G[b1;c])
22. is-exception(F[⊥])
23. (as)↓
24. ∀a,b:Top.  (if as is pair then otherwise b)
25. ∀a,b:Top.  (if as Ax then otherwise b)
⊢ F[⊥] ≤ G[b1;⊥]
BY
OnMaybeHyp (\h. (D h
                     THEN (SplitAndHyps THEN All Reduce)
                     THEN (FHyp (h+2) [-4] THENA Auto)
                     THEN Assert ⌜False⌝⋅
                     THEN Auto
                     THEN -1
                     THEN BotDiv
                     THEN ImpossibleException (-1))) }


Latex:


Latex:

1.  F  :  Base
2.  strict1(\mlambda{}x.F[x])
3.  G  :  Base
4.  \mforall{}z:Base.  strict1(\mlambda{}x.G[z;x])
5.  H  :  Base
6.  J  :  Base
7.  \mforall{}a,b,c:Base.    (G[H[b;a];c]  \mleq{}  G[b;J[a;c]])
8.  b2  :  Base@i
9.  \mforall{}x:Base.  (F[x]  \mleq{}  G[x;b2])
10.  j  :  \mBbbZ{}
11.  0  <  j
12.  \mforall{}as,x:Base.
            (F[\mlambda{}list$_{accum}$,y,L.  eval  v  =  L  in
                                                  if  v  is  a  pair  then  let  h,t  =  v 
                                                                                          in  list$_{accum}$  H[y;h]  t
                                                  otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j  -  1 
                  \mbot{} 
                  x 
                  as]  \mleq{}  G[x;\mlambda{}list$_{ind}$,L.  eval  v  =  L  in
                                                              if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                      in  J[h;list$_{ind}$  t]
                                                              otherwise  if  v  =  Ax  then  b2  otherwise  \mbot{}\^{}j  -  1 
                                      \mbot{} 
                                      as])
13.  as  :  Base@i
14.  b1  :  Base@i
15.  \mforall{}[a,B:Top].    (F[eval  x  =  a  in  B[x]]  \msim{}  eval  x  =  a  in  F[B[x]])
16.  \mforall{}[a,B:Top].    (G[b1;eval  x  =  a  in  B[x]]  \msim{}  eval  x  =  a  in  G[b1;B[x]])
17.  (as)\mdownarrow{}@i
18.  \mforall{}[a,b,c:Top].    (F[if  a  is  a  pair  then  b  otherwise  c]  \msim{}  if  a  is  a  pair  then  F[b]  otherwise  F[c])
19.  \mforall{}[a,b,c:Top].
            (G[b1;if  a  is  a  pair  then  b  otherwise  c]  \msim{}  if  a  is  a  pair  then  G[b1;b]  otherwise  G[b1;c])
20.  \mforall{}[a,b,c:Top].    (F[if  a  =  Ax  then  b  otherwise  c]  \msim{}  if  a  =  Ax  then  F[b]  otherwise  F[c])
21.  \mforall{}[a,b,c:Top].    (G[b1;if  a  =  Ax  then  b  otherwise  c]  \msim{}  if  a  =  Ax  then  G[b1;b]  otherwise  G[b1;c])
22.  is-exception(F[\mbot{}])
23.  (as)\mdownarrow{}
24.  \mforall{}a,b:Top.    (if  as  is  a  pair  then  a  otherwise  b  \msim{}  b)
25.  \mforall{}a,b:Top.    (if  as  =  Ax  then  a  otherwise  b  \msim{}  b)
\mvdash{}  F[\mbot{}]  \mleq{}  G[b1;\mbot{}]


By


Latex:
OnMaybeHyp  2  (\mbackslash{}h.  (D  h
                                      THEN  (SplitAndHyps  THEN  All  Reduce)
                                      THEN  (FHyp  (h+2)  [-4]  THENA  Auto)
                                      THEN  Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}
                                      THEN  Auto
                                      THEN  D  -1
                                      THEN  BotDiv
                                      THEN  ImpossibleException  (-1)))




Home Index