Step
*
2
2
1
1
of Lemma
values-for-distinct-property
.....subterm..... T:t
2:n
1. A : Type
2. V : Type
3. eq : EqDecider(A)
4. L : (A × V) List
5. ||values-for-distinct(eq;L)|| = ||remove-repeats(eq;map(λp.(fst(p));L))|| ∈ ℤ
6. i : ℕ||remove-repeats(eq;map(λp.(fst(p));L))||
7. (remove-repeats(eq;map(λp.(fst(p));L))[i] ∈ map(λp.(fst(p));L))
8. ↑isl(apply-alist(eq;L;remove-repeats(eq;map(λp.(fst(p));L))[i]))
9. (<remove-repeats(eq;map(λp.(fst(p));L))[i], outl(apply-alist(eq;L;remove-repeats(eq;map(λp.(fst(p));L))[i]))> ∈ L)
⊢ values-for-distinct(eq;L)[i] = outl(apply-alist(eq;L;remove-repeats(eq;map(λp.(fst(p));L))[i])) ∈ V
BY
{ ((Unfold `values-for-distinct` 0 THEN (RWO "select-map" 0 THENA Try (Complete (Auto)))) THEN Reduce 0 THEN Auto) }
Latex:
Latex:
.....subterm.....  T:t
2:n
1.  A  :  Type
2.  V  :  Type
3.  eq  :  EqDecider(A)
4.  L  :  (A  \mtimes{}  V)  List
5.  ||values-for-distinct(eq;L)||  =  ||remove-repeats(eq;map(\mlambda{}p.(fst(p));L))||
6.  i  :  \mBbbN{}||remove-repeats(eq;map(\mlambda{}p.(fst(p));L))||
7.  (remove-repeats(eq;map(\mlambda{}p.(fst(p));L))[i]  \mmember{}  map(\mlambda{}p.(fst(p));L))
8.  \muparrow{}isl(apply-alist(eq;L;remove-repeats(eq;map(\mlambda{}p.(fst(p));L))[i]))
9.  (<remove-repeats(eq;map(\mlambda{}p.(fst(p));L))[i]
        ,  outl(apply-alist(eq;L;remove-repeats(eq;map(\mlambda{}p.(fst(p));L))[i]))
        >  \mmember{}  L)
\mvdash{}  values-for-distinct(eq;L)[i]  =  outl(apply-alist(eq;L;remove-repeats(eq;map(\mlambda{}p.(fst(p));L))[i]))
By
Latex:
((Unfold  `values-for-distinct`  0  THEN  (RWO  "select-map"  0  THENA  Try  (Complete  (Auto))))
  THEN  Reduce  0
  THEN  Auto)
Home
Index