Step * 1 1 1 of Lemma cnv-taba-property

.....assertion..... 
1. Type
2. Type
⊢ ∀xs:A List. ∀ys:B List.
    ((||xs|| ≤ ||ys||)
     (rec-case(xs) of
        [] => <[], ys>
        x::xs' =>
         p.let a,ys 
           in let h,t ys 
              in <[<x, h> a], t>
       = <zip(xs;rev(firstn(||xs||;ys))), nth_tl(||xs||;ys)>
       ∈ ((A × B) List × (B List))))
BY
(InductionOnList⋅⋅ THEN Reduce 0) }

1
1. Type
2. Type
⊢ ∀ys:B List. ((0 ≤ ||ys||)  (<[], ys> = <[], ys> ∈ ((A × B) List × (B List))))

2
1. Type
2. Type
3. A
4. List
5. ∀ys:B List
     ((||v|| ≤ ||ys||)
      (rec-case(v) of
         [] => <[], ys>
         x::xs' =>
          p.let a,ys 
            in let h,t ys 
               in <[<x, h> a], t>
        = <zip(v;rev(firstn(||v||;ys))), nth_tl(||v||;ys)>
        ∈ ((A × B) List × (B List))))
⊢ ∀ys:B List
    (((||v|| 1) ≤ ||ys||)
     (let a,ys rec-case(v) of
                   [] => <[], ys>
                   h@0::t =>
                    r.let a,ys 
                      in let h,t ys 
                         in <[<h@0, h> a], t> 
        in let h,t ys 
           in <[<u, h> a], t>
       = <zip([u v];rev(firstn(||v|| 1;ys))), nth_tl(||v|| 1;ys)>
       ∈ ((A × B) List × (B List))))


Latex:


Latex:
.....assertion..... 
1.  A  :  Type
2.  B  :  Type
\mvdash{}  \mforall{}xs:A  List.  \mforall{}ys:B  List.
        ((||xs||  \mleq{}  ||ys||)
        {}\mRightarrow{}  (rec-case(xs)  of
                []  =>  <[],  ys>
                x::xs'  =>
                  p.let  a,ys  =  p 
                      in  let  h,t  =  ys 
                            in  <[<x,  h>  /  a],  t>
              =  <zip(xs;rev(firstn(||xs||;ys))),  nth\_tl(||xs||;ys)>))


By


Latex:
(InductionOnList\mcdot{}\mcdot{}  THEN  Reduce  0)




Home Index