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` THEN Reduce THEN Try (Fold `update-alist` 0)) THEN Auto) }

1
1. Type
2. Type
3. eq EqDecider(T)
4. T
5. A
6. A ⟶ A
7. T × A
8. (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 
                               in if eq a@0 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