Step * 1 1 1 of Lemma sqle-list_accum


1. Base
2. strict1(λx.F[x])
3. Base
4. strict1(λx.G[x])
5. Base
6. Base
7. ∀a,r1,r2:Base.  ((F[r1] ≤ G[r2])  (F[H[r1;a]] ≤ G[J[r2;a]]))
8. : ℤ
9. 0 < j
10. ∀as,b1,b2:Base.
      ((F[b1] ≤ G[b2])
       (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 
            ⊥ 
            b1 
            as] ≤ G[λlist_accum,y,L. eval in
                                     if is pair then let h,t 
                                                         in list_accum J[y;h] otherwise if Ax then otherwise ⊥^j\000C 
                    ⊥ 
                    b2 
                    as]))
11. as Base@i
12. b1 Base@i
13. b2 Base@i
14. F[b1] ≤ G[b2]@i
15. ∀[a,B:Top].  (F[eval in B[x]] eval in F[B[x]])
16. ∀[a,B:Top].  (G[eval in B[x]] eval in G[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[if is pair then otherwise c] if is pair then G[b] otherwise G[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[if Ax then otherwise c] if Ax then G[b] otherwise G[c])
⊢ if as is pair then F[let h,t as 
                         in λlist_accum,y,L. eval in
                                             if is pair then let h,t 
                                                                 in list_accum H[y;h] t
                                             otherwise if Ax then otherwise ⊥^j 
                            ⊥ 
                            H[b1;h] 
                            t] otherwise if as Ax then F[b1] otherwise F[⊥
  ≤ if as is pair then G[let h,t as 
                           in λlist_accum,y,L. eval in
                                               if is pair then let h,t 
                                                                   in list_accum J[y;h] t
                                               otherwise if Ax then otherwise ⊥^j 
                              ⊥ 
                              J[b2;h] 
                              t] otherwise if as Ax then G[b2] otherwise G[⊥]
BY
(AssumeHasValue
   THEN (HasValueD (-1) ORELSE (ExceptionCases (-1) THEN Try (Complete (SameException))))
   THEN (HVimplies2 [1] THEN (RWO  "-1" THENA MemTop) THEN Reduce 0)
   THEN Try ((HVimplies2 [1] THEN (RWO  "-1" THENA MemTop) THEN Reduce 0))
   THEN Try ((BackThruSomeHyp THEN Try (MemBase) THEN BackThruSomeHyp THEN Auto))) }

1
1. Base
2. strict1(λx.F[x])
3. Base
4. strict1(λx.G[x])
5. Base
6. Base
7. ∀a,r1,r2:Base.  ((F[r1] ≤ G[r2])  (F[H[r1;a]] ≤ G[J[r2;a]]))
8. : ℤ
9. 0 < j
10. ∀as,b1,b2:Base.
      ((F[b1] ≤ G[b2])
       (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 
            ⊥ 
            b1 
            as] ≤ G[λlist_accum,y,L. eval in
                                     if is pair then let h,t 
                                                         in list_accum J[y;h] otherwise if Ax then otherwise ⊥^j\000C 
                    ⊥ 
                    b2 
                    as]))
11. as Base@i
12. b1 Base@i
13. b2 Base@i
14. F[b1] ≤ G[b2]@i
15. ∀[a,B:Top].  (F[eval in B[x]] eval in F[B[x]])
16. ∀[a,B:Top].  (G[eval in B[x]] eval in G[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[if is pair then otherwise c] if is pair then G[b] otherwise G[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[if Ax then otherwise c] if Ax then G[b] otherwise G[c])
22. (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[⊥]

2
1. Base
2. strict1(λx.F[x])
3. Base
4. strict1(λx.G[x])
5. Base
6. Base
7. ∀a,r1,r2:Base.  ((F[r1] ≤ G[r2])  (F[H[r1;a]] ≤ G[J[r2;a]]))
8. : ℤ
9. 0 < j
10. ∀as,b1,b2:Base.
      ((F[b1] ≤ G[b2])
       (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 
            ⊥ 
            b1 
            as] ≤ G[λlist_accum,y,L. eval in
                                     if is pair then let h,t 
                                                         in list_accum J[y;h] otherwise if Ax then otherwise ⊥^j\000C 
                    ⊥ 
                    b2 
                    as]))
11. as Base@i
12. b1 Base@i
13. b2 Base@i
14. F[b1] ≤ G[b2]@i
15. ∀[a,B:Top].  (F[eval in B[x]] eval in F[B[x]])
16. ∀[a,B:Top].  (G[eval in B[x]] eval in G[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[if is pair then otherwise c] if is pair then G[b] otherwise G[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[if Ax then otherwise c] if Ax then G[b] otherwise G[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[⊥]


Latex:


Latex:

1.  F  :  Base
2.  strict1(\mlambda{}x.F[x])
3.  G  :  Base
4.  strict1(\mlambda{}x.G[x])
5.  H  :  Base
6.  J  :  Base
7.  \mforall{}a,r1,r2:Base.    ((F[r1]  \mleq{}  G[r2])  {}\mRightarrow{}  (F[H[r1;a]]  \mleq{}  G[J[r2;a]]))
8.  j  :  \mBbbZ{}
9.  0  <  j
10.  \mforall{}as,b1,b2:Base.
            ((F[b1]  \mleq{}  G[b2])
            {}\mRightarrow{}  (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{} 
                        b1 
                        as]  \mleq{}  G[\mlambda{}list$_{accum}$,y,L.  eval  v  =  L  in
                                                                        if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                                in  list$_{accum}$  J[y;h]\000C  t
                                                                        otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j  -  1 
                                        \mbot{} 
                                        b2 
                                        as]))
11.  as  :  Base@i
12.  b1  :  Base@i
13.  b2  :  Base@i
14.  F[b1]  \mleq{}  G[b2]@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[eval  x  =  a  in  B[x]]  \msim{}  eval  x  =  a  in  G[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[if  a  is  a  pair  then  b  otherwise  c]  \msim{}  if  a  is  a  pair  then  G[b]  otherwise  G[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[if  a  =  Ax  then  b  otherwise  c]  \msim{}  if  a  =  Ax  then  G[b]  otherwise  G[c])
\mvdash{}  if  as  is  a  pair  then  F[let  h,t  =  as 
                                                  in  \mlambda{}list$_{accum}$,y,L.  eval  v  =  L  in
                                                                                        if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                                                in  list$_{accum}\mbackslash{}ff2\000C4  H[y;h]  t
                                                                                        otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j  -  1 
                                                        \mbot{} 
                                                        H[b1;h] 
                                                        t]  otherwise  if  as  =  Ax  then  F[b1]  otherwise  F[\mbot{}] 
    \mleq{}  if  as  is  a  pair  then  G[let  h,t  =  as 
                                                      in  \mlambda{}list$_{accum}$,y,L.  eval  v  =  L  in
                                                                                            if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                                                    in  list$_{accum}\mbackslash{}f\000Cf24  J[y;h]  t
                                                                                            otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j  -  1 
                                                            \mbot{} 
                                                            J[b2;h] 
                                                            t]  otherwise  if  as  =  Ax  then  G[b2]  otherwise  G[\mbot{}]


By


Latex:
(AssumeHasValue
  THEN  (HasValueD  (-1)  ORELSE  (ExceptionCases  (-1)  THEN  Try  (Complete  (SameException))))
  THEN  (HVimplies2  0  [1]  THEN  (RWO    "-1"  0  THENA  MemTop)  THEN  Reduce  0)
  THEN  Try  ((HVimplies2  0  [1]  THEN  (RWO    "-1"  0  THENA  MemTop)  THEN  Reduce  0))
  THEN  Try  ((BackThruSomeHyp  THEN  Try  (MemBase)  THEN  BackThruSomeHyp  THEN  Auto)))




Home Index