--- a/src/HOL/Nominal/nominal_atoms.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Nominal/nominal_atoms.ML Fri Apr 10 18:23:01 2015 +0200
@@ -190,7 +190,7 @@
val def2 = Logic.mk_equals (cswap $ ab $ c, cswap_akname $ ab $ c)
in
thy' |>
- BNF_LFP_Compat.add_primrec_global
+ BNF_LFP_Compat.primrec_global
[(Binding.name swap_name, SOME swapT, NoSyn)]
[(Attrib.empty_binding, def1)] ||>
Sign.parent_path ||>>
@@ -224,7 +224,7 @@
Const (swap_name, swapT) $ x $ (prm $ xs $ a)));
in
thy' |>
- BNF_LFP_Compat.add_primrec_global
+ BNF_LFP_Compat.primrec_global
[(Binding.name prm_name, SOME prmT, NoSyn)]
[(Attrib.empty_binding, def1), (Attrib.empty_binding, def2)] ||>
Sign.parent_path
--- a/src/HOL/Nominal/nominal_datatype.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Nominal/nominal_datatype.ML Fri Apr 10 18:23:01 2015 +0200
@@ -256,7 +256,7 @@
end) descr;
val (perm_simps, thy2) =
- BNF_LFP_Compat.add_primrec_overloaded
+ BNF_LFP_Compat.primrec_overloaded
(map (fn (s, sT) => (s, sT, false))
(List.take (perm_names' ~~ perm_names_types, length new_type_names)))
(map (fn s => (Binding.name s, NONE, NoSyn)) perm_names') perm_eqs thy1;
--- a/src/HOL/Nominal/nominal_primrec.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Nominal/nominal_primrec.ML Fri Apr 10 18:23:01 2015 +0200
@@ -8,11 +8,11 @@
signature NOMINAL_PRIMREC =
sig
- val add_primrec: term list option -> term option ->
+ val primrec: term list option -> term option ->
(binding * typ option * mixfix) list ->
(binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> local_theory -> Proof.state
- val add_primrec_cmd: string list option -> string option ->
+ val primrec_cmd: string list option -> string option ->
(binding * string option * mixfix) list ->
(binding * string option * mixfix) list ->
(Attrib.binding * string) list -> local_theory -> Proof.state
@@ -382,8 +382,8 @@
in
-val add_primrec = gen_primrec Specification.check_spec (K I);
-val add_primrec_cmd = gen_primrec Specification.read_spec Syntax.read_term;
+val primrec = gen_primrec Specification.check_spec (K I);
+val primrec_cmd = gen_primrec Specification.read_spec Syntax.read_term;
end;
@@ -407,7 +407,7 @@
"define primitive recursive functions on nominal datatypes"
(options -- Parse.fixes -- Parse.for_fixes -- Parse_Spec.where_alt_specs
>> (fn ((((invs, fctxt), fixes), params), specs) =>
- add_primrec_cmd invs fctxt fixes params specs));
+ primrec_cmd invs fctxt fixes params specs));
end;
--- a/src/HOL/Tools/BNF/bnf_gfp_rec_sugar.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Tools/BNF/bnf_gfp_rec_sugar.ML Fri Apr 10 18:23:01 2015 +0200
@@ -70,10 +70,10 @@
val gfp_rec_sugar_interpretation: string ->
(BNF_FP_Rec_Sugar_Util.fp_rec_sugar -> local_theory -> local_theory) -> theory -> theory
- val add_primcorecursive_cmd: corec_option list ->
+ val primcorecursive_cmd: corec_option list ->
(binding * string option * mixfix) list * ((Attrib.binding * string) * string option) list ->
Proof.context -> Proof.state
- val add_primcorec_cmd: corec_option list ->
+ val primcorec_cmd: corec_option list ->
(binding * string option * mixfix) list * ((Attrib.binding * string) * string option) list ->
local_theory -> local_theory
end;
@@ -1041,7 +1041,7 @@
fun is_trivial_implies thm =
uncurry (member (op aconv)) (Logic.strip_horn (Thm.prop_of thm));
-fun add_primcorec_ursive auto opts fixes specs of_specs_opt lthy =
+fun primcorec_ursive auto opts fixes specs of_specs_opt lthy =
let
val thy = Proof_Context.theory_of lthy;
@@ -1527,7 +1527,7 @@
(goalss, after_qed, lthy')
end;
-fun add_primcorec_ursive_cmd auto opts (raw_fixes, raw_specs_of) lthy =
+fun primcorec_ursive_cmd auto opts (raw_fixes, raw_specs_of) lthy =
let
val dups = duplicates (op =) (map (Binding.name_of o #1) raw_fixes);
val _ = null dups orelse error ("Duplicate function name " ^ quote (hd dups));
@@ -1536,18 +1536,18 @@
split_list raw_specs_of ||> map (Option.map (Syntax.read_term lthy));
val (fixes, specs) = fst (Specification.read_spec raw_fixes raw_specs lthy);
in
- add_primcorec_ursive auto opts fixes specs of_specs_opt lthy
+ primcorec_ursive auto opts fixes specs of_specs_opt lthy
end;
-val add_primcorecursive_cmd = (fn (goalss, after_qed, lthy) =>
+val primcorecursive_cmd = (fn (goalss, after_qed, lthy) =>
lthy
|> Proof.theorem NONE after_qed goalss
|> Proof.refine (Method.primitive_text (K I))
- |> Seq.hd) ooo add_primcorec_ursive_cmd false;
+ |> Seq.hd) ooo primcorec_ursive_cmd false;
-val add_primcorec_cmd = (fn (goalss, after_qed, lthy) =>
+val primcorec_cmd = (fn (goalss, after_qed, lthy) =>
lthy |> after_qed (map (fn [] => [] | _ => use_primcorecursive ()) goalss)) ooo
- add_primcorec_ursive_cmd true;
+ primcorec_ursive_cmd true;
val corec_option_parser = Parse.group (K "option")
(Plugin_Name.parse_filter >> Plugins_Option
@@ -1562,13 +1562,13 @@
"define primitive corecursive functions"
((Scan.optional (@{keyword "("} |--
Parse.!!! (Parse.list1 corec_option_parser) --| @{keyword ")"}) []) --
- (Parse.fixes -- where_alt_props_of_parser) >> uncurry add_primcorecursive_cmd);
+ (Parse.fixes -- where_alt_props_of_parser) >> uncurry primcorecursive_cmd);
val _ = Outer_Syntax.local_theory @{command_keyword primcorec}
"define primitive corecursive functions"
((Scan.optional (@{keyword "("} |-- Parse.!!! (Parse.list1 corec_option_parser)
--| @{keyword ")"}) []) --
- (Parse.fixes -- where_alt_props_of_parser) >> uncurry add_primcorec_cmd);
+ (Parse.fixes -- where_alt_props_of_parser) >> uncurry primcorec_cmd);
val _ = Theory.setup (gfp_rec_sugar_interpretation Transfer_BNF.transfer_plugin
gfp_rec_sugar_transfer_interpretation);
--- a/src/HOL/Tools/BNF/bnf_lfp_compat.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Tools/BNF/bnf_lfp_compat.ML Fri Apr 10 18:23:01 2015 +0200
@@ -26,14 +26,14 @@
val datatype_compat_global: string list -> theory -> theory
val datatype_compat_cmd: string list -> local_theory -> local_theory
val add_datatype: preference list -> Old_Datatype_Aux.spec list -> theory -> string list * theory
- val add_primrec: (binding * typ option * mixfix) list -> (Attrib.binding * term) list ->
+ val primrec: (binding * typ option * mixfix) list -> (Attrib.binding * term) list ->
local_theory -> (term list * thm list) * local_theory
- val add_primrec_global: (binding * typ option * mixfix) list ->
+ val primrec_global: (binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> theory -> (term list * thm list) * theory
- val add_primrec_overloaded: (string * (string * typ) * bool) list ->
+ val primrec_overloaded: (string * (string * typ) * bool) list ->
(binding * typ option * mixfix) list -> (Attrib.binding * term) list -> theory ->
(term list * thm list) * theory
- val add_primrec_simple: ((binding * typ) * mixfix) list -> term list ->
+ val primrec_simple: ((binding * typ) * mixfix) list -> term list ->
local_theory -> (string list * (term list * thm list)) * local_theory
end;
@@ -532,11 +532,10 @@
|> not (member (op =) prefs Keep_Nesting) ? perhaps (try (datatype_compat_global fpT_names)))
end;
-val add_primrec = apfst (apsnd flat) ooo BNF_LFP_Rec_Sugar.add_primrec;
-val add_primrec_global = apfst (apsnd flat) ooo BNF_LFP_Rec_Sugar.add_primrec_global;
-val add_primrec_overloaded = apfst (apsnd flat) oooo BNF_LFP_Rec_Sugar.add_primrec_overloaded;
-val add_primrec_simple = apfst (apsnd (apsnd (flat o snd))) ooo
- BNF_LFP_Rec_Sugar.add_primrec_simple;
+val primrec = apfst (apsnd flat) ooo BNF_LFP_Rec_Sugar.primrec;
+val primrec_global = apfst (apsnd flat) ooo BNF_LFP_Rec_Sugar.primrec_global;
+val primrec_overloaded = apfst (apsnd flat) oooo BNF_LFP_Rec_Sugar.primrec_overloaded;
+val primrec_simple = apfst (apsnd (apsnd (flat o snd))) ooo BNF_LFP_Rec_Sugar.primrec_simple;
val _ =
Outer_Syntax.local_theory @{command_keyword datatype_compat}
--- a/src/HOL/Tools/BNF/bnf_lfp_rec_sugar.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Tools/BNF/bnf_lfp_rec_sugar.ML Fri Apr 10 18:23:01 2015 +0200
@@ -61,16 +61,16 @@
val lfp_rec_sugar_interpretation: string ->
(BNF_FP_Rec_Sugar_Util.fp_rec_sugar -> local_theory -> local_theory) -> theory -> theory
- val add_primrec: (binding * typ option * mixfix) list ->
- (Attrib.binding * term) list -> local_theory -> (term list * thm list list) * local_theory
- val add_primrec_cmd: rec_option list -> (binding * string option * mixfix) list ->
+ val primrec: (binding * typ option * mixfix) list -> (Attrib.binding * term) list ->
+ local_theory -> (term list * thm list list) * local_theory
+ val primrec_cmd: rec_option list -> (binding * string option * mixfix) list ->
(Attrib.binding * string) list -> local_theory -> (term list * thm list list) * local_theory
- val add_primrec_global: (binding * typ option * mixfix) list ->
+ val primrec_global: (binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> theory -> (term list * thm list list) * theory
- val add_primrec_overloaded: (string * (string * typ) * bool) list ->
+ val primrec_overloaded: (string * (string * typ) * bool) list ->
(binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> theory -> (term list * thm list list) * theory
- val add_primrec_simple: ((binding * typ) * mixfix) list -> term list ->
+ val primrec_simple: ((binding * typ) * mixfix) list -> term list ->
local_theory -> (string list * (term list * (int list list * thm list list))) * local_theory
end;
@@ -591,7 +591,7 @@
lthy |> Local_Theory.notes (notes @ common_notes) |> snd)
end;
-fun add_primrec_simple0 plugins nonexhaustive transfer fixes ts lthy =
+fun primrec_simple0 plugins nonexhaustive transfer fixes ts lthy =
let
val actual_nn = length fixes;
@@ -608,10 +608,10 @@
in ((names, (map fst defs, thms)), lthy) end)
end;
-fun add_primrec_simple fixes ts lthy =
- add_primrec_simple0 Plugin_Name.default_filter false false fixes ts lthy
+fun primrec_simple fixes ts lthy =
+ primrec_simple0 Plugin_Name.default_filter false false fixes ts lthy
handle OLD_PRIMREC () =>
- Old_Primrec.add_primrec_simple fixes ts lthy
+ Old_Primrec.primrec_simple fixes ts lthy
|>> apsnd (apsnd (pair [] o single)) o apfst single;
fun gen_primrec old_primrec prep_spec opts
@@ -643,7 +643,7 @@
end);
in
lthy
- |> add_primrec_simple0 plugins nonexhaustive transfer fixes (map snd specs)
+ |> primrec_simple0 plugins nonexhaustive transfer fixes (map snd specs)
|-> (fn (names, (ts, (jss, simpss))) =>
Spec_Rules.add Spec_Rules.Equational (ts, flat simpss)
#> Local_Theory.notes (mk_notes jss names simpss)
@@ -651,17 +651,17 @@
end
handle OLD_PRIMREC () => old_primrec raw_fixes raw_specs lthy |>> apsnd single;
-val add_primrec = gen_primrec Old_Primrec.add_primrec Specification.check_spec [];
-val add_primrec_cmd = gen_primrec Old_Primrec.add_primrec_cmd Specification.read_spec;
+val primrec = gen_primrec Old_Primrec.primrec Specification.check_spec [];
+val primrec_cmd = gen_primrec Old_Primrec.primrec_cmd Specification.read_spec;
-fun add_primrec_global fixes specs =
+fun primrec_global fixes specs =
Named_Target.theory_init
- #> add_primrec fixes specs
+ #> primrec fixes specs
##> Local_Theory.exit_global;
-fun add_primrec_overloaded ops fixes specs =
+fun primrec_overloaded ops fixes specs =
Overloading.overloading ops
- #> add_primrec fixes specs
+ #> primrec fixes specs
##> Local_Theory.exit_global;
val rec_option_parser = Parse.group (K "option")
@@ -674,6 +674,6 @@
((Scan.optional (@{keyword "("} |-- Parse.!!! (Parse.list1 rec_option_parser)
--| @{keyword ")"}) []) --
(Parse.fixes -- Parse_Spec.where_alt_specs)
- >> (fn (opts, (fixes, specs)) => snd o add_primrec_cmd opts fixes specs));
+ >> (fn (opts, (fixes, specs)) => snd o primrec_cmd opts fixes specs));
end;
--- a/src/HOL/Tools/Old_Datatype/old_primrec.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Tools/Old_Datatype/old_primrec.ML Fri Apr 10 18:23:01 2015 +0200
@@ -8,16 +8,16 @@
signature OLD_PRIMREC =
sig
- val add_primrec: (binding * typ option * mixfix) list ->
+ val primrec: (binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> local_theory -> (term list * thm list) * local_theory
- val add_primrec_cmd: (binding * string option * mixfix) list ->
+ val primrec_cmd: (binding * string option * mixfix) list ->
(Attrib.binding * string) list -> local_theory -> (term list * thm list) * local_theory
- val add_primrec_global: (binding * typ option * mixfix) list ->
+ val primrec_global: (binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> theory -> (term list * thm list) * theory
- val add_primrec_overloaded: (string * (string * typ) * bool) list ->
+ val primrec_overloaded: (string * (string * typ) * bool) list ->
(binding * typ option * mixfix) list ->
(Attrib.binding * term) list -> theory -> (term list * thm list) * theory
- val add_primrec_simple: ((binding * typ) * mixfix) list -> term list ->
+ val primrec_simple: ((binding * typ) * mixfix) list -> term list ->
local_theory -> (string * (term list * thm list)) * local_theory
end;
@@ -260,7 +260,7 @@
(* primrec definition *)
-fun add_primrec_simple fixes ts lthy =
+fun primrec_simple fixes ts lthy =
let
val ((prefix, (_, defs)), prove) = distill lthy fixes ts;
in
@@ -280,7 +280,7 @@
(Binding.qualify true prefix (Binding.name "simps"), @{attributes [simp, nitpick_simp]});
in
lthy
- |> add_primrec_simple fixes (map snd spec)
+ |> primrec_simple fixes (map snd spec)
|-> (fn (prefix, (ts, simps)) =>
Spec_Rules.add Spec_Rules.Equational (ts, simps)
#> fold_map Local_Theory.note (attr_bindings prefix ~~ map single simps)
@@ -290,22 +290,22 @@
in
-val add_primrec = gen_primrec Specification.check_spec;
-val add_primrec_cmd = gen_primrec Specification.read_spec;
+val primrec = gen_primrec Specification.check_spec;
+val primrec_cmd = gen_primrec Specification.read_spec;
end;
-fun add_primrec_global fixes specs thy =
+fun primrec_global fixes specs thy =
let
val lthy = Named_Target.theory_init thy;
- val ((ts, simps), lthy') = add_primrec fixes specs lthy;
+ val ((ts, simps), lthy') = primrec fixes specs lthy;
val simps' = Proof_Context.export lthy' lthy simps;
in ((ts, simps'), Local_Theory.exit_global lthy') end;
-fun add_primrec_overloaded ops fixes specs thy =
+fun primrec_overloaded ops fixes specs thy =
let
val lthy = Overloading.overloading ops thy;
- val ((ts, simps), lthy') = add_primrec fixes specs lthy;
+ val ((ts, simps), lthy') = primrec fixes specs lthy;
val simps' = Proof_Context.export lthy' lthy simps;
in ((ts, simps'), Local_Theory.exit_global lthy') end;
--- a/src/HOL/Tools/Quickcheck/random_generators.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/HOL/Tools/Quickcheck/random_generators.ML Fri Apr 10 18:23:01 2015 +0200
@@ -96,7 +96,7 @@
subst_v (@{const Code_Numeral.Suc} $ t_k) eq];
val eqs1 = map (Pattern.rewrite_term thy rew_ts []) eqs0;
val ((_, (_, eqs2)), lthy') = lthy
- |> BNF_LFP_Compat.add_primrec_simple
+ |> BNF_LFP_Compat.primrec_simple
[((Binding.concealed (Binding.name random_aux), T), NoSyn)] eqs1;
val cT_random_aux = inst pt_random_aux;
val cT_rhs = inst pt_rhs;
--- a/src/ZF/Tools/primrec_package.ML Fri Apr 10 14:44:08 2015 +0200
+++ b/src/ZF/Tools/primrec_package.ML Fri Apr 10 18:23:01 2015 +0200
@@ -8,8 +8,8 @@
signature PRIMREC_PACKAGE =
sig
- val add_primrec: ((binding * string) * Token.src list) list -> theory -> theory * thm list
- val add_primrec_i: ((binding * term) * attribute list) list -> theory -> theory * thm list
+ val primrec: ((binding * string) * Token.src list) list -> theory -> theory * thm list
+ val primrec_i: ((binding * term) * attribute list) list -> theory -> theory * thm list
end;
structure PrimrecPackage : PRIMREC_PACKAGE =
@@ -161,7 +161,7 @@
(* prepare functions needed for definitions *)
-fun add_primrec_i args thy =
+fun primrec_i args thy =
let
val ((eqn_names, eqn_terms), eqn_atts) = apfst split_list (split_list args);
val SOME (fname, ftype, ls, rs, con_info, eqns) =
@@ -188,8 +188,8 @@
||> Sign.parent_path;
in (thy3, eqn_thms') end;
-fun add_primrec args thy =
- add_primrec_i (map (fn ((name, s), srcs) =>
+fun primrec args thy =
+ primrec_i (map (fn ((name, s), srcs) =>
((name, Syntax.read_prop_global thy s), map (Attrib.attribute_cmd_global thy) srcs))
args) thy;
@@ -199,7 +199,7 @@
val _ =
Outer_Syntax.command @{command_keyword primrec} "define primitive recursive functions on datatypes"
(Scan.repeat1 (Parse_Spec.opt_thm_name ":" -- Parse.prop)
- >> (Toplevel.theory o (#1 oo (add_primrec o map Parse.triple_swap))));
+ >> (Toplevel.theory o (#1 oo (primrec o map Parse.triple_swap))));
end;