Step * of Lemma isl-apply-alist

[A,T:Type].
  ∀eq:EqDecider(T). ∀x:T. ∀L:(T × A) List.
    ((↑isl(apply-alist(eq;L;x)) ⇐⇒ (x ∈ map(λp.(fst(p));L)))
    ∧ (<x, outl(apply-alist(eq;L;x))> ∈ L) supposing ↑isl(apply-alist(eq;L;x)))
BY
((D THENA Auto)
   THEN InstLemma `apply-alist-cases` []
   THEN RepeatFor (ParallelLast')
   THEN (Assert ∀a,b:T.  Dec(a b ∈ T) BY
               ((InstLemma `deq_property` [⌜T⌝;⌜eq⌝]⋅ THENA Auto) THEN RWO "-1" THEN Auto))
   THEN (Decide (x ∈ map(λp.(fst(p));L)) THENA Auto)
   THEN ExRepD
   THEN ThinTrivial
   THEN Try ((RWO "-1" THEN RepUR ``bfalse`` THEN Auto))) }

1
1. [A] Type
2. [T] Type
3. eq EqDecider(T)
4. T
5. (T × A) List
6. apply-alist(eq;L;x) ff supposing ¬(x ∈ map(λp.(fst(p));L))
7. ∀[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))))
8. ∀a,b:T.  Dec(a b ∈ T)
9. (x ∈ map(λp.(fst(p));L))
⊢ (↑isl(apply-alist(eq;L;x)) ⇐⇒ (x ∈ map(λp.(fst(p));L)))
∧ (<x, outl(apply-alist(eq;L;x))> ∈ L) supposing ↑isl(apply-alist(eq;L;x))


Latex:


Latex:
\mforall{}[A,T:Type].
    \mforall{}eq:EqDecider(T).  \mforall{}x:T.  \mforall{}L:(T  \mtimes{}  A)  List.
        ((\muparrow{}isl(apply-alist(eq;L;x))  \mLeftarrow{}{}\mRightarrow{}  (x  \mmember{}  map(\mlambda{}p.(fst(p));L)))
        \mwedge{}  (<x,  outl(apply-alist(eq;L;x))>  \mmember{}  L)  supposing  \muparrow{}isl(apply-alist(eq;L;x)))


By


Latex:
((D  0  THENA  Auto)
  THEN  InstLemma  `apply-alist-cases`  []
  THEN  RepeatFor  4  (ParallelLast')
  THEN  (Assert  \mforall{}a,b:T.    Dec(a  =  b)  BY
                          ((InstLemma  `deq\_property`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{}]\mcdot{}  THENA  Auto)  THEN  RWO  "-1"  0  THEN  Auto))
  THEN  (Decide  (x  \mmember{}  map(\mlambda{}p.(fst(p));L))  THENA  Auto)
  THEN  ExRepD
  THEN  ThinTrivial
  THEN  Try  ((RWO  "-1"  0  THEN  RepUR  ``bfalse``  0  THEN  Auto)))




Home Index