Step
*
2
of Lemma
eager-map-append-sq
1. T : Type
2. value-type(T)
3. A : Type
4. f : A ⟶ T
5. u : A
6. v : A List
7. ∀[bs:T List]. (eager-map-append(f;v;bs) ~ map(f;rev(v)) @ bs)
⊢ ∀[bs:T List]. (eager-map-append(f;[u / v];bs) ~ map(f;rev(v) @ [u]) @ bs)
BY
{ (Unfold `eager-map-append` 0 THEN Reduce 0 THEN Fold `eager-map-append` 0) }
1
1. T : Type
2. value-type(T)
3. A : Type
4. f : A ⟶ T
5. u : A
6. v : A List
7. ∀[bs:T List]. (eager-map-append(f;v;bs) ~ map(f;rev(v)) @ bs)
⊢ ∀[bs:T List]. (eager-map-append(f;v;eval x = f u in eval L' = bs in   [x / L']) ~ map(f;rev(v) @ [u]) @ bs)
Latex:
Latex:
1.  T  :  Type
2.  value-type(T)
3.  A  :  Type
4.  f  :  A  {}\mrightarrow{}  T
5.  u  :  A
6.  v  :  A  List
7.  \mforall{}[bs:T  List].  (eager-map-append(f;v;bs)  \msim{}  map(f;rev(v))  @  bs)
\mvdash{}  \mforall{}[bs:T  List].  (eager-map-append(f;[u  /  v];bs)  \msim{}  map(f;rev(v)  @  [u])  @  bs)
By
Latex:
(Unfold  `eager-map-append`  0  THEN  Reduce  0  THEN  Fold  `eager-map-append`  0)
Home
Index