Step * 1 of Lemma no_repeats-update-alist


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 ))
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. Type
2. Type
3. eq EqDecider(T)
4. T
5. A
6. A ⟶ A
7. u1 T
8. u2 A
9. (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