src/HOL/Tools/primrec_package.ML
changeset 29866 6e93ae65c678
parent 29864 be53632b7f8d
child 30223 24d975352879
equal deleted inserted replaced
29865:c9bef39be3d2 29866:6e93ae65c678
   250     val prefix = space_implode "_" (map (Sign.base_name o #1) defs);
   250     val prefix = space_implode "_" (map (Sign.base_name o #1) defs);
   251     val qualify = Binding.qualify prefix;
   251     val qualify = Binding.qualify prefix;
   252     val spec' = (map o apfst)
   252     val spec' = (map o apfst)
   253       (fn (b, attrs) => (qualify b, Code.add_default_eqn_attrib :: attrs)) spec;
   253       (fn (b, attrs) => (qualify b, Code.add_default_eqn_attrib :: attrs)) spec;
   254     val simp_atts = map (Attrib.internal o K)
   254     val simp_atts = map (Attrib.internal o K)
   255       [Simplifier.simp_add, Nitpick_Const_Simps_Thms.add];
   255       [Simplifier.simp_add, Nitpick_Const_Simp_Thms.add];
   256   in
   256   in
   257     lthy
   257     lthy
   258     |> set_group ? LocalTheory.set_group (serial_string ())
   258     |> set_group ? LocalTheory.set_group (serial_string ())
   259     |> fold_map (LocalTheory.define Thm.definitionK o make_def lthy fixes fs) defs
   259     |> fold_map (LocalTheory.define Thm.definitionK o make_def lthy fixes fs) defs
   260     |-> (fn defs => `(fn ctxt => prove_spec ctxt names1 rec_rewrites defs spec'))
   260     |-> (fn defs => `(fn ctxt => prove_spec ctxt names1 rec_rewrites defs spec'))