src/HOL/Tools/inductive_package.ML
changeset 31177 c39994cb152a
parent 31174 f1f1e9b53c81
equal deleted inserted replaced
31176:92e0ed53db25 31177:c39994cb152a
   452   let
   452   let
   453     val thy = ProofContext.theory_of lthy;
   453     val thy = ProofContext.theory_of lthy;
   454     val facts = args |> map (fn ((a, atts), props) =>
   454     val facts = args |> map (fn ((a, atts), props) =>
   455       ((a, map (prep_att thy) atts),
   455       ((a, map (prep_att thy) atts),
   456         map (Thm.no_attributes o single o mk_cases lthy o prep_prop lthy) props));
   456         map (Thm.no_attributes o single o mk_cases lthy o prep_prop lthy) props));
   457   in lthy |> LocalTheory.notes Thm.generated_theoremK facts |>> map snd end;
   457   in lthy |> LocalTheory.notes Thm.generatedK facts |>> map snd end;
   458 
   458 
   459 val inductive_cases = gen_inductive_cases Attrib.intern_src Syntax.read_prop;
   459 val inductive_cases = gen_inductive_cases Attrib.intern_src Syntax.read_prop;
   460 val inductive_cases_i = gen_inductive_cases (K I) Syntax.check_prop;
   460 val inductive_cases_i = gen_inductive_cases (K I) Syntax.check_prop;
   461 
   461 
   462 
   462 
   847     val ((vars, intrs), _) = lthy
   847     val ((vars, intrs), _) = lthy
   848       |> ProofContext.set_mode ProofContext.mode_abbrev
   848       |> ProofContext.set_mode ProofContext.mode_abbrev
   849       |> Specification.read_spec (cnames_syn @ pnames_syn) intro_srcs;
   849       |> Specification.read_spec (cnames_syn @ pnames_syn) intro_srcs;
   850     val (cs, ps) = chop (length cnames_syn) vars;
   850     val (cs, ps) = chop (length cnames_syn) vars;
   851     val monos = Attrib.eval_thms lthy raw_monos;
   851     val monos = Attrib.eval_thms lthy raw_monos;
   852     val flags = {quiet_mode = false, verbose = verbose, kind = Thm.generated_theoremK,
   852     val flags = {quiet_mode = false, verbose = verbose, kind = Thm.generatedK,
   853       alt_name = Binding.empty, coind = coind, no_elim = false, no_ind = false,
   853       alt_name = Binding.empty, coind = coind, no_elim = false, no_ind = false,
   854       skip_mono = false, fork_mono = not int};
   854       skip_mono = false, fork_mono = not int};
   855   in
   855   in
   856     lthy
   856     lthy
   857     |> LocalTheory.set_group (serial_string ())
   857     |> LocalTheory.set_group (serial_string ())