Turned Addsimps into AddIffs for datatype laws.
authornipkow
Thu, 10 Apr 1997 12:20:55 +0200
changeset 2930 602cdeabb89b
parent 2929 4eefc6c22d41
child 2931 8658bf6c1a5b
Turned Addsimps into AddIffs for datatype laws.
src/HOL/thy_syntax.ML
--- a/src/HOL/thy_syntax.ML	Thu Apr 10 10:55:37 1997 +0200
+++ b/src/HOL/thy_syntax.ML	Thu Apr 10 12:20:55 1997 +0200
@@ -9,7 +9,7 @@
 *)
 
 (*the kind of distinctiveness axioms depends on number of constructors*)
-val dtK = 5;  (* FIXME rename?, move? *)
+val dtK = 7;  (* FIXME rename?, move? *)
 
 structure ThySynData: THY_SYN_DATA =
 struct
@@ -143,7 +143,11 @@
     \val dummy = datatypes := Dtype.build_record (thy, " ^
       mk_pair (quote tname, mk_list (map (fst o fst) cons)) ^
       ", " ^ tname ^ ".induct_tac) :: (!datatypes);\n\
-    \val dummy = Addsimps " ^ tname ^ ".simps;\n");
+    \val dummy = Addsimps(" ^ tname ^ ".cases @ " ^ tname ^ ".recs);\n\
+    \val dummy = AddIffs " ^ tname ^ ".inject;\n\
+    \val dummy = " ^
+      (if length cons < dtK then "AddIffs " else "Addsimps ") ^
+      tname ^ ".distinct;");
 
   (*parsers*)
   val tvars = type_args >> map (cat "dtVar");