Nuprl Lemma : C_TYPE-ext

C_TYPE() ≡ lbl:Atom × if lbl =a "Void" then Unit
                      if lbl =a "Int" then Unit
                      if lbl =a "Struct" then (Atom × C_TYPE()) List
                      if lbl =a "Array" then length:ℕ × C_TYPE()
                      if lbl =a "Pointer" then C_TYPE()
                      else Void
                      fi 


Proof




Definitions occuring in Statement :  C_TYPE: C_TYPE(),  list: T List,  nat: ℕ,  ifthenelse: if b then t else f fi ,  eq_atom: x =a y,  ext-eq: A ≡ B,  unit: Unit,  product: x:A × B[x],  token: "$token",  atom: Atom,  void: Void
Lemmas :  C_TYPEco-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,  list-prod-set-type,  C_TYPEco_wf,  has-value_wf-partial,  nat_wf,  set-value-type,  le_wf,  int-value-type,  C_TYPEco_size_wf,  sum-partial-has-value,  length_wf_nat,  select_wf,  sq_stable__le,  value-type-has-value,  int_seg_wf,  length_wf,  C_TYPE_wf,  list_wf,  subtype_rel_list,  subtype_rel_product,  add-nat,  false_wf,  sum-nat,  C_TYPE_size_wf,  nat_properties
C\_TYPE()  \mequiv{}  lbl:Atom  \mtimes{}  if  lbl  =a  "Void"  then  Unit
                                            if  lbl  =a  "Int"  then  Unit
                                            if  lbl  =a  "Struct"  then  (Atom  \mtimes{}  C\_TYPE())  List
                                            if  lbl  =a  "Array"  then  length:\mBbbN{}  \mtimes{}  C\_TYPE()
                                            if  lbl  =a  "Pointer"  then  C\_TYPE()
                                            else  Void
                                            fi 



Date html generated: 2015_07_17-AM-07_42_07
Last ObjectModification: 2015_01_29-PM-04_40_39

Home Index