Step
*
2
of Lemma
mrec-label-cases
1. s : (Atom × ((Atom × ((Atom + Atom + Type) List)) List)) List
2. n : Atom
3. lbl : Atom
4. 0 < ||mrec-spec(s;lbl;n)||
5. ↑isl(apply-alist(AtomDeq;s;n))
⊢ (lbl ∈ map(λp.(fst(p));outl(apply-alist(AtomDeq;s;n))))
BY
{ (Thin (-1)
   THEN MoveToConcl (-1)
   THEN RepUR ``mrec-spec`` 0
   THEN (GenConclTerm ⌜apply-alist(AtomDeq;s;n)⌝⋅ THENA Auto)
   THEN D -2
   THEN Reduce 0) }
1
1. s : (Atom × ((Atom × ((Atom + Atom + Type) List)) List)) List
2. n : Atom
3. lbl : Atom
4. x : (Atom × ((Atom + Atom + Type) List)) List
5. apply-alist(AtomDeq;s;n) = (inl x) ∈ ((Atom × ((Atom + Atom + Type) List)) List?)
⊢ 0 < ||case apply-alist(AtomDeq;x;lbl) of inl(as) => as | inr(_) => []|| 
⇒ (lbl ∈ map(λp.(fst(p));x))
2
1. s : (Atom × ((Atom × ((Atom + Atom + Type) List)) List)) List
2. n : Atom
3. lbl : Atom
4. y : Unit
5. apply-alist(AtomDeq;s;n) = (inr y ) ∈ ((Atom × ((Atom + Atom + Type) List)) List?)
⊢ 0 < 0 
⇒ (lbl ∈ map(λp.(fst(p));⊥))
Latex:
Latex:
1.  s  :  (Atom  \mtimes{}  ((Atom  \mtimes{}  ((Atom  +  Atom  +  Type)  List))  List))  List
2.  n  :  Atom
3.  lbl  :  Atom
4.  0  <  ||mrec-spec(s;lbl;n)||
5.  \muparrow{}isl(apply-alist(AtomDeq;s;n))
\mvdash{}  (lbl  \mmember{}  map(\mlambda{}p.(fst(p));outl(apply-alist(AtomDeq;s;n))))
By
Latex:
(Thin  (-1)
  THEN  MoveToConcl  (-1)
  THEN  RepUR  ``mrec-spec``  0
  THEN  (GenConclTerm  \mkleeneopen{}apply-alist(AtomDeq;s;n)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  Reduce  0)
Home
Index