Step
*
1
2
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(||v|| + 1)) ∈ (T List)
BY
{ xxx(((InstLemma `upto_decomp` [⌜||v|| + 1⌝; ⌜1⌝])⋅ THENA Auto')
      THEN (HypSubst (-1) 0)
      THEN (Thin (-1))
      THEN Subst ⌜(||v|| + 1) - 1 ~ ||v||⌝ 0⋅
      THEN Auto)xxx }
1
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)
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(||v||  +  1))
By
Latex:
xxx(((InstLemma  `upto\_decomp`  [\mkleeneopen{}||v||  +  1\mkleeneclose{};  \mkleeneopen{}1\mkleeneclose{}])\mcdot{}  THENA  Auto')
        THEN  (HypSubst  (-1)  0)
        THEN  (Thin  (-1))
        THEN  Subst  \mkleeneopen{}(||v||  +  1)  -  1  \msim{}  ||v||\mkleeneclose{}  0\mcdot{}
        THEN  Auto)xxx
Home
Index