Step * 1 2 of Lemma mobj-cases

.....wf..... 
1. MutualRectypeSpec
2. mobj(S) ⟶ TYPE
⊢ istype(∀k:mKinds. ∀lbl:{lbl:Atom| 0 < ||mrec-spec(S;lbl;k)||} .
         ∀t:tuple-type(prec-arg-types(lbl,p.mrec-spec(S;lbl;p);k;lbl)).
           P[<k, mk-prec(lbl;t)>])
BY
(D 0
   THENL [Auto
         (D THENL [Auto; (D THENL [(D -2 THEN Auto); (Assert ⌜<k, mk-prec(lbl;t)> ∈ mobj(S)⌝⋅ THENM Auto)])])]
}

1
.....assertion..... 
1. MutualRectypeSpec
2. mobj(S) ⟶ TYPE
3. mKinds
4. lbl {lbl:Atom| 0 < ||mrec-spec(S;lbl;k)||} 
5. tuple-type(prec-arg-types(lbl,p.mrec-spec(S;lbl;p);k;lbl))
⊢ <k, mk-prec(lbl;t)> ∈ mobj(S)


Latex:


Latex:
.....wf..... 
1.  S  :  MutualRectypeSpec
2.  P  :  mobj(S)  {}\mrightarrow{}  TYPE
\mvdash{}  istype(\mforall{}k:mKinds.  \mforall{}lbl:\{lbl:Atom|  0  <  ||mrec-spec(S;lbl;k)||\}  .
                  \mforall{}t:tuple-type(prec-arg-types(lbl,p.mrec-spec(S;lbl;p);k;lbl)).
                      P[<k,  mk-prec(lbl;t)>])


By


Latex:
(D  0
  THENL  [Auto
              ;  (D  0
                    THENL  [Auto
                                ;  (D  0
                                      THENL  [(D  -2  THEN  Auto);  (Assert  \mkleeneopen{}<k,  mk-prec(lbl;t)>  \mmember{}  mobj(S)\mkleeneclose{}\mcdot{}  THENM  Auto)]
                                )]
              )]
)




Home Index