Step
*
1
2
1
of Lemma
map-upto-length
1. T : Type
2. u : T
3. v : T List
4. ∀[f:ℕ||v|| ⟶ T]. v = map(f;upto(||v||)) ∈ (T List) supposing ∀i:ℕ||v||. ((f i) = v[i] ∈ T)
5. f : ℕ||v|| + 1 ⟶ T
6. ∀i:ℕ||v|| + 1. ((f i) = [u / v][i] ∈ T)
7. v = map(λi.(f (i + 1));upto(||v||)) ∈ (T List)
⊢ [u / v] = map(f;upto(1) @ map(λx.(x + 1);upto(||v||))) ∈ (T List)
BY
{ xxx((RWO "map_append_sq" 0 THENA Auto) THEN Subst ⌜upto(1) ~ [0]⌝ 0⋅)xxx }
1
.....equality..... 
1. T : Type
2. u : T
3. v : T List
4. ∀[f:ℕ||v|| ⟶ T]. v = map(f;upto(||v||)) ∈ (T List) supposing ∀i:ℕ||v||. ((f i) = v[i] ∈ T)
5. f : ℕ||v|| + 1 ⟶ T
6. ∀i:ℕ||v|| + 1. ((f i) = [u / v][i] ∈ T)
7. v = map(λi.(f (i + 1));upto(||v||)) ∈ (T List)
⊢ upto(1) ~ [0]
2
1. T : Type
2. u : T
3. v : T List
4. ∀[f:ℕ||v|| ⟶ T]. v = map(f;upto(||v||)) ∈ (T List) supposing ∀i:ℕ||v||. ((f i) = v[i] ∈ T)
5. f : ℕ||v|| + 1 ⟶ T
6. ∀i:ℕ||v|| + 1. ((f i) = [u / v][i] ∈ T)
7. v = map(λi.(f (i + 1));upto(||v||)) ∈ (T List)
⊢ [u / v] = (map(f;[0]) @ map(f;map(λx.(x + 1);upto(||v||)))) ∈ (T List)
Latex:
Latex:
1.  T  :  Type
2.  u  :  T
3.  v  :  T  List
4.  \mforall{}[f:\mBbbN{}||v||  {}\mrightarrow{}  T].  v  =  map(f;upto(||v||))  supposing  \mforall{}i:\mBbbN{}||v||.  ((f  i)  =  v[i])
5.  f  :  \mBbbN{}||v||  +  1  {}\mrightarrow{}  T
6.  \mforall{}i:\mBbbN{}||v||  +  1.  ((f  i)  =  [u  /  v][i])
7.  v  =  map(\mlambda{}i.(f  (i  +  1));upto(||v||))
\mvdash{}  [u  /  v]  =  map(f;upto(1)  @  map(\mlambda{}x.(x  +  1);upto(||v||)))
By
Latex:
xxx((RWO  "map\_append\_sq"  0  THENA  Auto)  THEN  Subst  \mkleeneopen{}upto(1)  \msim{}  [0]\mkleeneclose{}  0\mcdot{})xxx
Home
Index