Step
*
1
1
of Lemma
apply-alist-no_repeats
1. A : Type
2. T : Type
3. eq : EqDecider(T)
4. L : (T × A) List
5. no_repeats(T;map(λp.(fst(p));L))
6. x : T
7. a : A
8. i : ℕ
9. i < ||L||
10. <x, a> = L[i] ∈ (T × A)
11. apply-alist(eq;L;x) ~ ff supposing ¬(x ∈ map(λp.(fst(p));L))
12. ∀[i:ℕ||L||]
      (apply-alist(eq;L;x) ~ inl (snd(L[i]))) supposing (((fst(L[i])) = x ∈ T) and (∀j:ℕi. (¬((fst(L[j])) = x ∈ T))))
13. j : ℕi
14. (fst(L[j])) = x ∈ T
⊢ False
BY
{ ((Assert ⌜λp.(fst(p)) ∈ (T × A) ⟶ T⌝⋅ THEN Auto)
   THEN OnMaybeHyp 5 (\h. (Unfold `no_repeats` h
                           THEN (InstHyp [⌜j⌝;⌜i⌝] h⋅ THENA Auto)
                           THEN RWO "map_select" (-1)
                           THEN Complete (Auto)))
   ) }
Latex:
Latex:
1.  A  :  Type
2.  T  :  Type
3.  eq  :  EqDecider(T)
4.  L  :  (T  \mtimes{}  A)  List
5.  no\_repeats(T;map(\mlambda{}p.(fst(p));L))
6.  x  :  T
7.  a  :  A
8.  i  :  \mBbbN{}
9.  i  <  ||L||
10.  <x,  a>  =  L[i]
11.  apply-alist(eq;L;x)  \msim{}  ff  supposing  \mneg{}(x  \mmember{}  map(\mlambda{}p.(fst(p));L))
12.  \mforall{}[i:\mBbbN{}||L||]
            (apply-alist(eq;L;x)  \msim{}  inl  (snd(L[i])))  supposing 
                  (((fst(L[i]))  =  x)  and 
                  (\mforall{}j:\mBbbN{}i.  (\mneg{}((fst(L[j]))  =  x))))
13.  j  :  \mBbbN{}i
14.  (fst(L[j]))  =  x
\mvdash{}  False
By
Latex:
((Assert  \mkleeneopen{}\mlambda{}p.(fst(p))  \mmember{}  (T  \mtimes{}  A)  {}\mrightarrow{}  T\mkleeneclose{}\mcdot{}  THEN  Auto)
  THEN  OnMaybeHyp  5  (\mbackslash{}h.  (Unfold  `no\_repeats`  h
                                                  THEN  (InstHyp  [\mkleeneopen{}j\mkleeneclose{};\mkleeneopen{}i\mkleeneclose{}]  h\mcdot{}  THENA  Auto)
                                                  THEN  RWO  "map\_select"  (-1)
                                                  THEN  Complete  (Auto)))
  )
Home
Index