Step
*
1
of Lemma
no_repeats-update-alist
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 ))
BY
{ ((D -4 THEN Reduce 0)
   THEN (SplitOnConclITE THENA Auto)
   THEN All Reduce
   THEN Auto
   THEN All (RWO "no_repeats_cons")
   THEN Auto) }
1
1. A : Type
2. T : Type
3. eq : EqDecider(T)
4. x : T
5. a : A
6. f : A ⟶ A
7. u1 : T
8. u2 : A
9. v : (T × A) List
10. no_repeats(T;map(λp.(fst(p));v))
11. ¬(u1 ∈ map(λp.(fst(p));v))
12. ¬(u1 = x ∈ T)
13. no_repeats(T;map(λp.(fst(p));update-alist(eq;v;x;a;n.f[n])))
14. no_repeats(T;map(λp.(fst(p));update-alist(eq;v;x;a;n.f[n])))
⊢ ¬(u1 ∈ map(λp.(fst(p));update-alist(eq;v;x;a;n.f[n])))
Latex:
Latex:
1.  A  :  Type
2.  T  :  Type
3.  eq  :  EqDecider(T)
4.  x  :  T
5.  a  :  A
6.  f  :  A  {}\mrightarrow{}  A
7.  u  :  T  \mtimes{}  A
8.  v  :  (T  \mtimes{}  A)  List
9.  no\_repeats(T;map(\mlambda{}p.(fst(p));update-alist(eq;v;x;a;n.f[n]))) 
      supposing  no\_repeats(T;map(\mlambda{}p.(fst(p));v))
10.  no\_repeats(T;[fst(u)  /  map(\mlambda{}p.(fst(p));v)])
\mvdash{}  no\_repeats(T;map(\mlambda{}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  ))
By
Latex:
((D  -4  THEN  Reduce  0)
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  All  Reduce
  THEN  Auto
  THEN  All  (RWO  "no\_repeats\_cons")
  THEN  Auto)
Home
Index