Step * of Lemma sqle-list_accum

[F:Base]
  ∀[G:Base]
    ∀[H,J:Base].
      ∀as,b1,b2:Base.
        F[accumulate (with value and list item a):
           H[v;a]
          over list:
            as
          with starting value:
           b1)] ≤ G[accumulate (with value and list item a):
                     J[v;a]
                    over list:
                      as
                    with starting value:
                     b2)] 
        supposing F[b1] ≤ G[b2] 
      supposing ∀a,r1,r2:Base.  ((F[r1] ≤ G[r2])  (F[H[r1;a]] ≤ G[J[r2;a]])) 
    supposing strict1(λx.G[x]) 
  supposing strict1(λx.F[x])
BY
((UnivCD THENA Auto)
   THEN Assert ⌜∀j:ℕ. ∀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] t
                                         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] t
                                                 otherwise if Ax then otherwise ⊥^j 
                                ⊥ 
                                b2 
                                as]))⌝⋅
   }

1
.....assertion..... 
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. as Base@i
9. b1 Base@i
10. b2 Base@i
11. F[b1] ≤ G[b2]
⊢ ∀j:ℕ. ∀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 
                  ⊥ 
                  b2 
                  as]))

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. as Base@i
9. b1 Base@i
10. b2 Base@i
11. F[b1] ≤ G[b2]
12. ∀j:ℕ. ∀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]))
⊢ F[accumulate (with value and list item a):
     H[v;a]
    over list:
      as
    with starting value:
     b1)] ≤ G[accumulate (with value and list item a):
               J[v;a]
              over list:
                as
              with starting value:
               b2)]


Latex:


Latex:
\mforall{}[F:Base]
    \mforall{}[G:Base]
        \mforall{}[H,J:Base].
            \mforall{}as,b1,b2:Base.
                F[accumulate  (with  value  v  and  list  item  a):
                      H[v;a]
                    over  list:
                        as
                    with  starting  value:
                      b1)]  \mleq{}  G[accumulate  (with  value  v  and  list  item  a):
                                          J[v;a]
                                        over  list:
                                            as
                                        with  starting  value:
                                          b2)] 
                supposing  F[b1]  \mleq{}  G[b2] 
            supposing  \mforall{}a,r1,r2:Base.    ((F[r1]  \mleq{}  G[r2])  {}\mRightarrow{}  (F[H[r1;a]]  \mleq{}  G[J[r2;a]])) 
        supposing  strict1(\mlambda{}x.G[x]) 
    supposing  strict1(\mlambda{}x.F[x])


By


Latex:
((UnivCD  THENA  Auto)
  THEN  Assert  \mkleeneopen{}\mforall{}j:\mBbbN{}.  \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;\000Ch]  t
                                                                            otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j 
                                            \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}\mbackslash{}f\000Cf24  J[y;h]  t
                                                                                            otherwise  if  v  =  Ax  then  y  otherwise  \mbot{}\^{}j 
                                                            \mbot{} 
                                                            b2 
                                                            as]))\mkleeneclose{}\mcdot{}
  )




Home Index