Step
*
1
1
1
of Lemma
cnv-taba-property
.....assertion.....
1. A : Type
2. B : Type
⊢ ∀xs:A List. ∀ys:B List.
((||xs|| ≤ ||ys||)
⇒ (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)>
∈ ((A × B) List × (B List))))
BY
{ (InductionOnList⋅⋅ THEN Reduce 0) }
1
1. A : Type
2. B : Type
⊢ ∀ys:B List. ((0 ≤ ||ys||)
⇒ (<[], ys> = <[], ys> ∈ ((A × B) List × (B List))))
2
1. A : Type
2. B : Type
3. u : A
4. v : A List
5. ∀ys:B List
((||v|| ≤ ||ys||)
⇒ (rec-case(v) of
[] => <[], ys>
x::xs' =>
p.let a,ys = p
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 = r
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