Step
*
of Lemma
sqle-list_ind
∀[F:Base]
  ∀[G:Base]
    ∀[H,J:Base].
      ∀as,b1,b2:Base.
        F[rec-case(as) of
          [] => b1
          h::t =>
           r.H[h;t;r]] ≤ G[rec-case(as) of
                           [] => b2
                           h::t =>
                            r.J[h;t;r]] 
        supposing F[b1] ≤ G[b2] 
      supposing ∀x,y,r1,r2:Base.  ((F[r1] ≤ G[r2]) 
⇒ (F[H[x;y;r1]] ≤ G[J[x;y;r2]])) 
    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_ind,L. eval v = L in
                                     if v is a pair then let h,t = v 
                                                         in H[h;t;list_ind t] otherwise if v = Ax then b1 otherwise ⊥^j 
                        ⊥ 
                        as] ≤ G[λlist_ind,L. eval v = L in
                                             if v is a pair then let h,t = v 
                                                                 in J[h;t;list_ind t]
                                             otherwise if v = Ax then b2 otherwise ⊥^j 
                                ⊥ 
                                as]))⌝⋅
   ) }
1
.....assertion..... 
1. F : Base
2. strict1(λx.F[x])
3. G : Base
4. strict1(λx.G[x])
5. H : Base
6. J : Base
7. ∀x,y,r1,r2:Base.  ((F[r1] ≤ G[r2]) 
⇒ (F[H[x;y;r1]] ≤ G[J[x;y;r2]]))
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_ind,L. eval v = L in
                       if v is a pair then let h,t = v 
                                           in H[h;t;list_ind t] otherwise if v = Ax then b1 otherwise ⊥^j 
          ⊥ 
          as] ≤ G[λlist_ind,L. eval v = L in
                               if v is a pair then let h,t = v 
                                                   in J[h;t;list_ind t] otherwise if v = Ax then b2 otherwise ⊥^j 
                  ⊥ 
                  as]))
2
1. F : Base
2. strict1(λx.F[x])
3. G : Base
4. strict1(λx.G[x])
5. H : Base
6. J : Base
7. ∀x,y,r1,r2:Base.  ((F[r1] ≤ G[r2]) 
⇒ (F[H[x;y;r1]] ≤ G[J[x;y;r2]]))
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_ind,L. eval v = L in
                         if v is a pair then let h,t = v 
                                             in H[h;t;list_ind t] otherwise if v = Ax then b1 otherwise ⊥^j 
            ⊥ 
            as] ≤ G[λlist_ind,L. eval v = L in
                                 if v is a pair then let h,t = v 
                                                     in J[h;t;list_ind t] otherwise if v = Ax then b2 otherwise ⊥^j 
                    ⊥ 
                    as]))
⊢ F[rec-case(as) of
    [] => b1
    h::t =>
     r.H[h;t;r]] ≤ G[rec-case(as) of
                     [] => b2
                     h::t =>
                      r.J[h;t;r]]
Latex:
Latex:
\mforall{}[F:Base]
    \mforall{}[G:Base]
        \mforall{}[H,J:Base].
            \mforall{}as,b1,b2:Base.
                F[rec-case(as)  of
                    []  =>  b1
                    h::t  =>
                      r.H[h;t;r]]  \mleq{}  G[rec-case(as)  of
                                                      []  =>  b2
                                                      h::t  =>
                                                        r.J[h;t;r]] 
                supposing  F[b1]  \mleq{}  G[b2] 
            supposing  \mforall{}x,y,r1,r2:Base.    ((F[r1]  \mleq{}  G[r2])  {}\mRightarrow{}  (F[H[x;y;r1]]  \mleq{}  G[J[x;y;r2]])) 
        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$_{ind}$,L.  eval  v  =  L  in
                                                                    if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                            in  H[h;t;list$_{ind}$  t]
                                                                    otherwise  if  v  =  Ax  then  b1  otherwise  \mbot{}\^{}j 
                                            \mbot{} 
                                            as]  \mleq{}  G[\mlambda{}list$_{ind}$,L.  eval  v  =  L  in
                                                                                    if  v  is  a  pair  then  let  h,t  =  v 
                                                                                                                            in  J[h;t;list$_{ind}\mbackslash{}f\000Cf24  t]
                                                                                    otherwise  if  v  =  Ax  then  b2  otherwise  \mbot{}\^{}j 
                                                            \mbot{} 
                                                            as]))\mkleeneclose{}\mcdot{}
  )
Home
Index