src/HOL/Old_Datatype.thy
changeset 58157 c376c43c346c
parent 58112 8081087096ad
child 58182 82478e6c60cb
equal deleted inserted replaced
58156:e333bd3b4d3d 58157:c376c43c346c
     4 *)
     4 *)
     5 
     5 
     6 header {* Old Datatype package: constructing datatypes from Cartesian Products and Disjoint Sums *}
     6 header {* Old Datatype package: constructing datatypes from Cartesian Products and Disjoint Sums *}
     7 
     7 
     8 theory Old_Datatype
     8 theory Old_Datatype
     9 imports Product_Type Sum_Type Nat
     9 imports Power
    10 keywords "datatype" :: thy_decl
    10 keywords "datatype" :: thy_decl
    11 begin
    11 begin
    12 
    12 
    13 subsection {* The datatype universe *}
    13 subsection {* The datatype universe *}
    14 
    14 
   506 by blast
   506 by blast
   507 
   507 
   508 lemmas dsum_subset_Sigma = subset_trans [OF dsum_mono dsum_Sigma]
   508 lemmas dsum_subset_Sigma = subset_trans [OF dsum_mono dsum_Sigma]
   509 
   509 
   510 
   510 
       
   511 (*** Domain theorems ***)
       
   512 
       
   513 lemma Domain_dprod [simp]: "Domain (dprod r s) = uprod (Domain r) (Domain s)"
       
   514   by auto
       
   515 
       
   516 lemma Domain_dsum [simp]: "Domain (dsum r s) = usum (Domain r) (Domain s)"
       
   517   by auto
       
   518 
       
   519 
   511 text {* hides popular names *}
   520 text {* hides popular names *}
   512 hide_type (open) node item
   521 hide_type (open) node item
   513 hide_const (open) Push Node Atom Leaf Numb Lim Split Case
   522 hide_const (open) Push Node Atom Leaf Numb Lim Split Case
   514 
   523 
   515 ML_file "Tools/Old_Datatype/old_datatype.ML"
   524 ML_file "Tools/Old_Datatype/old_datatype.ML"