Nuprl Lemma : C_DVALUEp-induction

[P:C_DVALUEp() ─→ ℙ]
  ((∀x:Unit. P[DVp_Null(x)])
   (∀int:ℤP[DVp_Int(int)])
   (∀ptr:C_LVALUE()?. P[DVp_Pointer(ptr)])
   (∀lower,upper:ℤ. ∀arr:{lower..upper-} ─→ C_DVALUEp().
        ((∀u:{lower..upper-}. P[arr u])  P[DVp_Array(lower;upper;arr)]))
   (∀lbls:Atom List. ∀struct:{a:Atom| (a ∈ lbls)}  ─→ C_DVALUEp().
        ((∀u:{a:Atom| (a ∈ lbls)} P[struct u])  P[DVp_Struct(lbls;struct)]))
   {∀v:C_DVALUEp(). P[v]})


Proof




Definitions occuring in Statement :  DVp_Struct: DVp_Struct(lbls;struct) DVp_Array: DVp_Array(lower;upper;arr) DVp_Pointer: DVp_Pointer(ptr) DVp_Int: DVp_Int(int) DVp_Null: DVp_Null(x) C_DVALUEp: C_DVALUEp() C_LVALUE: C_LVALUE() l_member: (x ∈ l) list: List int_seg: {i..j-} uall: [x:A]. B[x] prop: guard: {T} so_apply: x[s] all: x:A. B[x] implies:  Q unit: Unit set: {x:A| B[x]}  apply: a function: x:A ─→ B[x] union: left right int: atom: Atom
Lemmas :  uniform-comp-nat-induction all_wf C_DVALUEp_wf isect_wf le_wf C_DVALUEp_size_wf nat_wf less_than_wf C_DVALUEp-ext eq_atom_wf bool_wf eqtt_to_assert assert_of_eq_atom subtype_base_sq atom_subtype_base unit_wf2 unit_subtype_base it_wf eqff_to_assert equal_wf bool_cases_sqequal bool_subtype_base assert-bnot neg_assert_of_eq_atom sum-nat le_int_wf assert_of_le_int subtract_wf zero-le-nat false_wf bool_cases iff_transitivity assert_wf bnot_wf not_wf iff_weakening_uiff assert_of_bnot less_than_transitivity1 less_than_irreflexivity lelt_wf int_seg_wf decidable__lt condition-implies-le sum_wf minus-add minus-one-mul add-swap add-commutes add_functionality_wrt_le le-add-cancel decidable__le not-le-2 less-iff-le zero-add minus-minus add-associates add-zero subtract-is-less sum-nat-less trivial-int-eq1 length_wf_nat select_wf l_member_wf list-subtype sq_stable__le length_wf nat_properties set_wf uall_wf le_weakening list_wf DVp_Struct_wf DVp_Array_wf C_LVALUE_wf DVp_Pointer_wf DVp_Int_wf DVp_Null_wf and_wf
\mforall{}[P:C\_DVALUEp()  {}\mrightarrow{}  \mBbbP{}]
    ((\mforall{}x:Unit.  P[DVp\_Null(x)])
    {}\mRightarrow{}  (\mforall{}int:\mBbbZ{}.  P[DVp\_Int(int)])
    {}\mRightarrow{}  (\mforall{}ptr:C\_LVALUE()?.  P[DVp\_Pointer(ptr)])
    {}\mRightarrow{}  (\mforall{}lower,upper:\mBbbZ{}.  \mforall{}arr:\{lower..upper\msupminus{}\}  {}\mrightarrow{}  C\_DVALUEp().
                ((\mforall{}u:\{lower..upper\msupminus{}\}.  P[arr  u])  {}\mRightarrow{}  P[DVp\_Array(lower;upper;arr)]))
    {}\mRightarrow{}  (\mforall{}lbls:Atom  List.  \mforall{}struct:\{a:Atom|  (a  \mmember{}  lbls)\}    {}\mrightarrow{}  C\_DVALUEp().
                ((\mforall{}u:\{a:Atom|  (a  \mmember{}  lbls)\}  .  P[struct  u])  {}\mRightarrow{}  P[DVp\_Struct(lbls;struct)]))
    {}\mRightarrow{}  \{\mforall{}v:C\_DVALUEp().  P[v]\})



Date html generated: 2015_07_17-AM-07_44_57
Last ObjectModification: 2015_01_27-AM-09_47_34

Home Index