Modified to use new functor signatures
authorpaulson
Wed, 08 May 1996 17:59:21 +0200
changeset 1737 5a4f382455ce
parent 1736 fe0b459273f2
child 1738 a70a5bc5e315
Modified to use new functor signatures
src/ZF/Inductive.ML
--- a/src/ZF/Inductive.ML	Wed May 08 17:57:05 1996 +0200
+++ b/src/ZF/Inductive.ML	Wed May 08 17:59:21 1996 +0200
@@ -29,8 +29,7 @@
   struct
   val sigma     = Const("Sigma", [iT, iT-->iT]--->iT)
   val pair      = Const("Pair", [iT,iT]--->iT)
-  val split_const       = Const("split", [[iT,iT]--->iT, iT]--->iT)
-  val fsplit_const      = Const("split", [[iT,iT]--->oT, iT]--->oT)
+  val split_name = "split"
   val pair_iff  = Pair_iff
   val split_eq  = split
   val fsplitI   = splitI
@@ -38,6 +37,8 @@
   val fsplitE   = splitE
   end;
 
+structure Standard_CP = CartProd_Fun (Standard_Prod);
+
 structure Standard_Sum =
   struct
   val sum       = Const("op +", [iT,iT]--->iT)
@@ -64,8 +65,9 @@
 
   structure Indrule = 
       Indrule_Fun (structure Inductive=Inductive and 
-                   Pr=Standard_Prod and Su=Standard_Sum and 
-                       Intr_elim=Intr_elim)
+                   Pr=Standard_Prod and CP=Standard_CP and
+                   Su=Standard_Sum and 
+                   Intr_elim=Intr_elim)
 in 
    struct 
    val thy      = Intr_elim.thy
@@ -81,7 +83,8 @@
 
 
 structure Ind = Add_inductive_def_Fun
-    (structure Fp=Lfp and Pr=Standard_Prod and Su=Standard_Sum);
+    (structure Fp=Lfp and Pr=Standard_Prod and CP=Standard_CP
+     and Su=Standard_Sum);
 
 
 structure Gfp =
@@ -98,8 +101,7 @@
   struct
   val sigma     = Const("QSigma", [iT, iT-->iT]--->iT)
   val pair      = Const("QPair", [iT,iT]--->iT)
-  val split_const       = Const("qsplit", [[iT,iT]--->iT, iT]--->iT)
-  val fsplit_const      = Const("qsplit", [[iT,iT]--->oT, iT]--->oT)
+  val split_name = "qsplit"
   val pair_iff  = QPair_iff
   val split_eq  = qsplit
   val fsplitI   = qsplitI
@@ -107,6 +109,8 @@
   val fsplitE   = qsplitE
   end;
 
+structure Quine_CP = CartProd_Fun (Quine_Prod);
+
 structure Quine_Sum =
   struct
   val sum       = Const("op <+>", [iT,iT]--->iT)
@@ -136,7 +140,8 @@
 let
   structure Intr_elim = 
       Intr_elim_Fun(structure Inductive=Inductive and Fp=Gfp and 
-                    Pr=Quine_Prod and Su=Quine_Sum);
+                    Pr=Quine_Prod and CP=Standard_CP and
+                    Su=Quine_Sum);
 in
    struct
    val thy      = Intr_elim.thy
@@ -151,5 +156,6 @@
 end;
 
 structure CoInd = 
-    Add_inductive_def_Fun(structure Fp=Gfp and Pr=Quine_Prod and Su=Quine_Sum);
+    Add_inductive_def_Fun(structure Fp=Gfp and Pr=Quine_Prod and CP=Quine_CP
+                          and Su=Quine_Sum);