Step * 1 1 1 1 of Lemma mobj-ext


1. MutualRectypeSpec
2. Atom
3. x1 mrec(L;i)
⊢ i ∈ {a:Atom| (a ∈ eager-map(λp.(fst(p));L))} 
BY
(pRecElim (-1) THEN (InstLemma `mrec-label-cases2` [⌜L⌝;⌜i⌝;⌜labl⌝]⋅ THENA Auto) THEN MemTypeCD THEN Try (Trivial)) }

1
.....wf..... 
1. MutualRectypeSpec
2. Atom
3. labl {lbl:Atom| 0 < ||mrec-spec(L;lbl;i)||} 
4. x2 tuple-type(map(λx.case x
                           of inl(y) =>
                           case y
                            of inl(p) =>
                            prec(lbl,p.mrec-spec(L;lbl;p);p)
                            inr(p) =>
                            prec(lbl,p.mrec-spec(L;lbl;p);p) List
                           inr(E) =>
                           E;mrec-spec(L;labl;i)))
5. (i ∈ eager-map(λp.(fst(p));L))
6. Atom
⊢ istype((a ∈ eager-map(λp.(fst(p));L)))


Latex:


Latex:

1.  L  :  MutualRectypeSpec
2.  i  :  Atom
3.  x1  :  mrec(L;i)
\mvdash{}  i  \mmember{}  \{a:Atom|  (a  \mmember{}  eager-map(\mlambda{}p.(fst(p));L))\} 


By


Latex:
(pRecElim  (-1)
  THEN  (InstLemma  `mrec-label-cases2`  [\mkleeneopen{}L\mkleeneclose{};\mkleeneopen{}i\mkleeneclose{};\mkleeneopen{}labl\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  MemTypeCD
  THEN  Try  (Trivial))




Home Index