Nominal/nominal_function_core.ML
changeset 3197 25d11b449e92
parent 3108 61db5ad429bb
child 3200 995d47b09ab4
--- a/Nominal/nominal_function_core.ML	Tue Aug 07 18:53:50 2012 +0100
+++ b/Nominal/nominal_function_core.ML	Tue Aug 07 18:54:52 2012 +0100
@@ -18,10 +18,15 @@
     -> ((bstring * typ) list * term list * term * term) list (* specification *)
     -> local_theory
     -> (term   (* f *)
+        * term (* G(raph) *)
+        * thm list (* GIntros *)
+        * thm (* Ginduct *) 
         * thm  (* goalstate *)
         * (thm -> Nominal_Function_Common.nominal_function_result) (* continuation *)
        ) * local_theory
 
+  val inductive_def : (binding * typ) * mixfix -> term list -> local_theory 
+    -> (term * thm list * thm * thm) * local_theory
 end
 
 structure Nominal_Function_Core : NOMINAL_FUNCTION_CORE =
@@ -586,7 +591,7 @@
 
 (* wrapper -- restores quantifiers in rule specifications *)
 fun inductive_def (binding as ((R, T), _)) intrs lthy =
-  let
+  let 
     val ({intrs = intrs_gen, elims = [elim_gen], preds = [ Rdef ], induct, raw_induct, ...}, lthy) =
       lthy
       |> Local_Theory.conceal
@@ -1083,7 +1088,7 @@
           termination=total_intro, domintros=dom_intros, eqvts=[f_eqvt]}
       end
   in
-    ((f, goalstate, mk_partial_rules), lthy)
+    ((f, G, GIntro_thms, G_induct, goalstate, mk_partial_rules), lthy)
   end