Nuprl Lemma : C_DVALUEp-ext

C_DVALUEp() ≡ lbl:Atom × if lbl =a "Null" then Unit
                         if lbl =a "Int" then ℤ
                         if lbl =a "Pointer" then C_LVALUE()?
                         if lbl =a "Array" then lower:ℤ × upper:ℤ × ({lower..upper-} ─→ C_DVALUEp())
                         if lbl =a "Struct" then lbls:Atom List × ({a:Atom| (a ∈ lbls)}  ─→ C_DVALUEp())
                         else Void
                         fi 


Proof




Definitions occuring in Statement :  C_DVALUEp: C_DVALUEp() C_LVALUE: C_LVALUE() l_member: (x ∈ l) list: List int_seg: {i..j-} ifthenelse: if then else fi  eq_atom: =a y ext-eq: A ≡ B unit: Unit set: {x:A| B[x]}  function: x:A ─→ B[x] product: x:A × B[x] union: left right int: token: "$token" atom: Atom void: Void
Lemmas :  C_DVALUEpco-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 C_LVALUE_wf value-type-has-value int-value-type sum-partial-has-value assert_of_le_int subtract_wf zero-le-nat le_wf not-le-2 condition-implies-le minus-add minus-one-mul add-swap add-commutes sq_stable__le less-iff-le add_functionality_wrt_le add-associates le-add-cancel C_DVALUEpco_size_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 trivial-int-eq1 has-value_wf-partial nat_wf set-value-type C_DVALUEp_wf less_than_wf length_wf equal-wf-base-T select_wf l_member_wf length_wf_nat list-subtype list_wf subtype_rel_dep_function C_DVALUEpco_wf set_wf add-nat false_wf sum-nat le_int_wf C_DVALUEp_size_wf nat_properties and_wf squash_wf value-type_wf partial_wf
C\_DVALUEp()  \mequiv{}  lbl:Atom  \mtimes{}  if  lbl  =a  "Null"  then  Unit
                                                  if  lbl  =a  "Int"  then  \mBbbZ{}
                                                  if  lbl  =a  "Pointer"  then  C\_LVALUE()?
                                                  if  lbl  =a  "Array"  then  lower:\mBbbZ{}  \mtimes{}  upper:\mBbbZ{}  \mtimes{}  (\{lower..upper\msupminus{}\}  {}\mrightarrow{}  C\_DVALUEp())
                                                  if  lbl  =a  "Struct"
                                                      then  lbls:Atom  List  \mtimes{}  (\{a:Atom|  (a  \mmember{}  lbls)\}    {}\mrightarrow{}  C\_DVALUEp())
                                                  else  Void
                                                  fi 



Date html generated: 2015_07_17-AM-07_44_06
Last ObjectModification: 2015_01_29-PM-04_39_27

Home Index