equal
deleted
inserted
replaced
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" |