Step
*
of Lemma
no_repeats-update-alist
No Annotations
∀[A,T:Type]. ∀[eq:EqDecider(T)]. ∀[x:T]. ∀[a:A]. ∀[f:A ⟶ A]. ∀[L:(T × A) List].
  no_repeats(T;map(λp.(fst(p));update-alist(eq;L;x;a;n.f[n]))) supposing no_repeats(T;map(λp.(fst(p));L))
BY
{ (InductionOnList THEN (Unfold `update-alist` 0 THEN Reduce 0 THEN Try (Fold `update-alist` 0)) THEN Auto) }
1
1. A : Type
2. T : Type
3. eq : EqDecider(T)
4. x : T
5. a : A
6. f : A ⟶ A
7. u : T × A
8. v : (T × A) List
9. no_repeats(T;map(λp.(fst(p));update-alist(eq;v;x;a;n.f[n]))) supposing no_repeats(T;map(λp.(fst(p));v))
10. no_repeats(T;[fst(u) / map(λp.(fst(p));v)])
⊢ no_repeats(T;map(λp.(fst(p));let a@0,n = u 
                               in if eq a@0 x then [<x, f[n]> / v] else [u / update-alist(eq;v;x;a;n.f[n])] fi ))
Latex:
Latex:
No  Annotations
\mforall{}[A,T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[x:T].  \mforall{}[a:A].  \mforall{}[f:A  {}\mrightarrow{}  A].  \mforall{}[L:(T  \mtimes{}  A)  List].
    no\_repeats(T;map(\mlambda{}p.(fst(p));update-alist(eq;L;x;a;n.f[n]))) 
    supposing  no\_repeats(T;map(\mlambda{}p.(fst(p));L))
By
Latex:
(InductionOnList
  THEN  (Unfold  `update-alist`  0  THEN  Reduce  0  THEN  Try  (Fold  `update-alist`  0))
  THEN  Auto)
Home
Index