Step
*
1
1
1
1
of Lemma
mrec-induction2
1. L : MutualRectypeSpec
2. [P] : mobj(L) ⟶ TYPE
3. k : Atom
4. [%2] : (k ∈ eager-map(λp.(fst(p));L))
5. lbl : {lbl:Atom| 0 < ||mrec-spec(L;lbl;k)||} 
6. t : tuple-type(prec-arg-types(lbl,p.mrec-spec(L;lbl;p);k;lbl))
7. ∀z:{z:mobj(L)| z < <k, mk-prec(lbl;t)>} . P[z]
8. j : ℕ||mrec-spec(L;lbl;k)||
9. x1 : Atom
10. mrec-spec(L;lbl;k)[j] = (inl inl x1) ∈ (Atom + Atom + Type)
⊢ P[<x1, t.j>]
BY
{ BHyp -4 }
1
.....wf..... 
1. L : MutualRectypeSpec
2. P : mobj(L) ⟶ TYPE
3. k : Atom
4. (k ∈ eager-map(λp.(fst(p));L))
5. lbl : {lbl:Atom| 0 < ||mrec-spec(L;lbl;k)||} 
6. t : tuple-type(prec-arg-types(lbl,p.mrec-spec(L;lbl;p);k;lbl))
7. ∀z:{z:mobj(L)| z < <k, mk-prec(lbl;t)>} . P[z]
8. j : ℕ||mrec-spec(L;lbl;k)||
9. x1 : Atom
10. mrec-spec(L;lbl;k)[j] = (inl inl x1) ∈ (Atom + Atom + Type)
⊢ <x1, t.j> ∈ {z:mobj(L)| z < <k, mk-prec(lbl;t)>} 
Latex:
Latex:
1.  L  :  MutualRectypeSpec
2.  [P]  :  mobj(L)  {}\mrightarrow{}  TYPE
3.  k  :  Atom
4.  [\%2]  :  (k  \mmember{}  eager-map(\mlambda{}p.(fst(p));L))
5.  lbl  :  \{lbl:Atom|  0  <  ||mrec-spec(L;lbl;k)||\} 
6.  t  :  tuple-type(prec-arg-types(lbl,p.mrec-spec(L;lbl;p);k;lbl))
7.  \mforall{}z:\{z:mobj(L)|  z  <  <k,  mk-prec(lbl;t)>\}  .  P[z]
8.  j  :  \mBbbN{}||mrec-spec(L;lbl;k)||
9.  x1  :  Atom
10.  mrec-spec(L;lbl;k)[j]  =  (inl  inl  x1)
\mvdash{}  P[<x1,  t.j>]
By
Latex:
BHyp  -4
Home
Index