Step * 1 1 2 1 of Lemma mrec-induction2


1. MutualRectypeSpec
2. [P] mobj(L) ⟶ TYPE
3. mrecind(L;x.P[x])
4. ∀k:mKinds. ∀lbl:{lbl:Atom| 0 < ||mrec-spec(L;lbl;k)||} .
   ∀t:tuple-type(prec-arg-types(lbl,p.mrec-spec(L;lbl;p);k;lbl)).
     ((∀z:{z:mobj(L)| z < <k, mk-prec(lbl;t)>P[z])  P[<k, mk-prec(lbl;t)>])
5. mobj(L)
6. ~ <mobj-kind(x), mk-prec(mobj-label(x);mobj-tuple(x))>
⊢ (∀z:{z:mobj(L)| z < <mobj-kind(x), mk-prec(mobj-label(x);mobj-tuple(x))>P[z])
 P[<mobj-kind(x), mk-prec(mobj-label(x);mobj-tuple(x))>]
BY
((D With ⌜mobj-kind(x)⌝  THENA Auto)
   THEN (D -1 With ⌜mobj-label(x)⌝  THENA Auto)
   THEN -1 With ⌜mobj-tuple(x)⌝ 
   THEN Auto) }


Latex:


Latex:

1.  L  :  MutualRectypeSpec
2.  [P]  :  mobj(L)  {}\mrightarrow{}  TYPE
3.  mrecind(L;x.P[x])
4.  \mforall{}k:mKinds.  \mforall{}lbl:\{lbl:Atom|  0  <  ||mrec-spec(L;lbl;k)||\}  .
      \mforall{}t:tuple-type(prec-arg-types(lbl,p.mrec-spec(L;lbl;p);k;lbl)).
          ((\mforall{}z:\{z:mobj(L)|  z  <  <k,  mk-prec(lbl;t)>\}  .  P[z])  {}\mRightarrow{}  P[<k,  mk-prec(lbl;t)>])
5.  x  :  mobj(L)
6.  x  \msim{}  <mobj-kind(x),  mk-prec(mobj-label(x);mobj-tuple(x))>
\mvdash{}  (\mforall{}z:\{z:mobj(L)|  z  <  <mobj-kind(x),  mk-prec(mobj-label(x);mobj-tuple(x))>\}  .  P[z])
{}\mRightarrow{}  P[<mobj-kind(x),  mk-prec(mobj-label(x);mobj-tuple(x))>]


By


Latex:
((D  4  With  \mkleeneopen{}mobj-kind(x)\mkleeneclose{}    THENA  Auto)
  THEN  (D  -1  With  \mkleeneopen{}mobj-label(x)\mkleeneclose{}    THENA  Auto)
  THEN  D  -1  With  \mkleeneopen{}mobj-tuple(x)\mkleeneclose{} 
  THEN  Auto)




Home Index