Step
*
1
2
1
1
1
2
of Lemma
islist-iff-length-has-value
1. T : Type
2. j : ℤ
3. 0 < j
4. λt,x. Ax ∈ ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
5. ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
6. t1 : T
7. t2 : colist(T)
8. x : (is-list-fun() is-list-approx(j - 1) <t1, t2>)↓
9. ↑ispair(<t1, t2>)
10. t@0 : T
11. y : colist(T)
12. <t1, t2> = <t@0, y> ∈ (T × colist(T))
⊢ (||<t1, t2>||)↓
BY
{ (Fold `cons` 0 THEN Reduce 0 THEN Assert  ⌜||t2|| ∈ ℕ⌝⋅) }
1
.....assertion..... 
1. T : Type
2. j : ℤ
3. 0 < j
4. λt,x. Ax ∈ ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
5. ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
6. t1 : T
7. t2 : colist(T)
8. x : (is-list-fun() is-list-approx(j - 1) <t1, t2>)↓
9. ↑ispair(<t1, t2>)
10. t@0 : T
11. y : colist(T)
12. <t1, t2> = <t@0, y> ∈ (T × colist(T))
⊢ ||t2|| ∈ ℕ
2
1. T : Type
2. j : ℤ
3. 0 < j
4. λt,x. Ax ∈ ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
5. ∀t:colist(T). ((is-list-approx(j - 1) t)↓ 
⇒ (||t||)↓)
6. t1 : T
7. t2 : colist(T)
8. x : (is-list-fun() is-list-approx(j - 1) <t1, t2>)↓
9. ↑ispair(<t1, t2>)
10. t@0 : T
11. y : colist(T)
12. <t1, t2> = <t@0, y> ∈ (T × colist(T))
13. ||t2|| ∈ ℕ
⊢ (||t2|| + 1)↓
Latex:
Latex:
1.  T  :  Type
2.  j  :  \mBbbZ{}
3.  0  <  j
4.  \mlambda{}t,x.  Ax  \mmember{}  \mforall{}t:colist(T).  ((is-list-approx(j  -  1)  t)\mdownarrow{}  {}\mRightarrow{}  (||t||)\mdownarrow{})
5.  \mforall{}t:colist(T).  ((is-list-approx(j  -  1)  t)\mdownarrow{}  {}\mRightarrow{}  (||t||)\mdownarrow{})
6.  t1  :  T
7.  t2  :  colist(T)
8.  x  :  (is-list-fun()  is-list-approx(j  -  1)  <t1,  t2>)\mdownarrow{}
9.  \muparrow{}ispair(<t1,  t2>)
10.  t@0  :  T
11.  y  :  colist(T)
12.  <t1,  t2>  =  <t@0,  y>
\mvdash{}  (||<t1,  t2>||)\mdownarrow{}
By
Latex:
(Fold  `cons`  0  THEN  Reduce  0  THEN  Assert    \mkleeneopen{}||t2||  \mmember{}  \mBbbN{}\mkleeneclose{}\mcdot{})
Home
Index