Nuprl Lemma : mobj-cases

[S:MutualRectypeSpec]. ∀[P:mobj(S) ⟶ TYPE].
  ((∀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)>])
   (∀x:mobj(S). P[x]))


Proof




Definitions occuring in Statement :  mobj: mobj(L) mkinds: mKinds mrec-spec: mrec-spec(L;lbl;p) mrec_spec: MutualRectypeSpec mk-prec: mk-prec(lbl;x) prec-arg-types: prec-arg-types(lbl,p.a[lbl; p];i;lbl) tuple-type: tuple-type(L) length: ||as|| less_than: a < b uall: [x:A]. B[x] so_apply: x[s] all: x:A. B[x] implies:  Q set: {x:A| B[x]}  function: x:A ⟶ B[x] pair: <a, b> natural_number: $n atom: Atom
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T implies:  Q all: x:A. B[x] mkinds: mKinds so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] so_apply: x[s] subtype_rel: A ⊆B mrec: mrec(L;i) guard: {T} uimplies: supposing a
Lemmas referenced :  mobj_wf mrec_spec_wf mobj-sq mobj-kind_wf mobj-label_wf mobj-tuple_wf mkinds_wf istype-atom istype-less_than length_wf mrec-spec_wf tuple-type_wf prec-arg-types_wf mk-prec_wf subtype_rel_self mrec_wf mobj-ext ext-eq_inversion subtype_rel_weakening
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  Error :functionIsType,  Error :universeIsType,  cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis Error :TYPEIsType,  Error :lambdaFormation_alt,  sqequalRule dependent_functionElimination Error :setIsType,  natural_numberEquality instantiate unionEquality cumulativity atomEquality universeEquality setElimination rename Error :lambdaEquality_alt,  Error :inhabitedIsType,  Error :TYPEMemberIsType,  applyEquality Error :dependent_pairEquality_alt,  productEquality independent_isectElimination

Latex:
\mforall{}[S:MutualRectypeSpec].  \mforall{}[P:mobj(S)  {}\mrightarrow{}  TYPE].
    ((\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)>])
    {}\mRightarrow{}  (\mforall{}x:mobj(S).  P[x]))



Date html generated: 2019_06_20-PM-02_15_38
Last ObjectModification: 2019_03_12-PM-11_13_04

Theory : tuples


Home Index