pair split: proper names of params;
authorwenzelm
Tue, 06 Jun 2000 20:32:10 +0200
changeset 9040 249c135057d7
parent 9039 20ff649a0fd1
child 9041 3730ae0f513a
pair split: proper names of params;
src/HOL/Tools/record_package.ML
--- a/src/HOL/Tools/record_package.ML	Tue Jun 06 20:31:43 2000 +0200
+++ b/src/HOL/Tools/record_package.ML	Tue Jun 06 20:32:10 2000 +0200
@@ -551,7 +551,7 @@
 
 (* field_definitions *)
 
-fun field_definitions fields names zeta moreT more vars named_vars thy =
+fun field_definitions fields names xs zeta moreT more vars named_vars thy =
   let
     val sign = Theory.sign_of thy;
     val base = Sign.base_name;
@@ -632,8 +632,8 @@
     val surj_pairs = map (prove [DatatypePackage.induct_tac "p" 1]
       (map Thm.symmetric field_defs @ dest_convs)) surj_props;
 
-    fun mk_split th = SplitPairedAll.rule (th RS eq_reflection);
-    val field_splits = map mk_split surj_pairs;
+    fun mk_split (x, th) = SplitPairedAll.rule_params x moreN (th RS eq_reflection);
+    val field_splits = map2 mk_split (xs, surj_pairs);
 
     val thms_thy =
       defs_thy
@@ -773,7 +773,7 @@
     val (fields_thy, field_simps, field_injects, field_splits) =
       thy
       |> Theory.add_path bname
-      |> field_definitions fields names zeta moreT more vars named_vars;
+      |> field_definitions fields names xs zeta moreT more vars named_vars;
 
     val named_splits = map2 (fn (c, th) => (suffix field_typeN c, th)) (names, field_splits);