File ‹induction_data.ML›
@{parse_entries (sig) PARSE_INDUCTION_DATA_MODE [add, del, config]}
@{parse_entries (sig) PARSE_INDUCTION_DATA [insts, rule, arbitrary, taking, simp, facts, match]}
@{parse_entries (sig) PARSE_INDUCTION_DATA_CONFIG [simp, match]}
signature INDUCTION_DATA_ARGS =
sig
structure PM : PARSE_INDUCTION_DATA_MODE
structure PD : PARSE_INDUCTION_DATA
structure PDC : PARSE_INDUCTION_DATA_CONFIG
val PDC_entries_from_PD_entries : ('a, 'b, 'c, 'd, 'e, 'f, 'g) PD.entries -> ('e, 'g) PDC.entries
type insts = (Induction_Tactic_Base.def_inst option list, (term * term list) option list,
(Term_Zipper.T -> bool) option list) Cases_Data_Args.PIM.entry
val insts_ord : insts ord
val pretty_insts : Proof.context -> insts -> Pretty.T
type arbitrary = ((string * typ) list, term list * term list, Term_Zipper.T -> bool)
Cases_Data_Args.PIM.entry
val arbitrary_ord : arbitrary ord
val pretty_arbitrary : Proof.context -> arbitrary -> Pretty.T
type taking = term option list
val taking_ord : taking ord
val pretty_taking : Proof.context -> taking -> Pretty.T
type data = (insts, thm option, arbitrary, taking, bool, thm list, Cases_Data_Args.match)
PD.entries
val data_ord : data ord
val eq_data : data * data -> bool
val pretty_data : Proof.context -> data -> Pretty.T
val map_data_thms : (thm -> thm) -> data -> data
val transfer_data : theory -> data -> data
type config = (bool, Cases_Data_Args.match) PDC.entries
val data_parsers : (unit context_parser -> (Induction_Tactic_Base.def_inst option list,
(term * term list) option list, ML_Code_Util.code option list)
Cases_Data_Args.PIM.entry context_parser,
thm context_parser,
unit context_parser ->
((string * typ) list, term list * term list, ML_Code_Util.code)
Cases_Data_Args.PIM.entry context_parser,
unit context_parser -> taking context_parser,
bool parser, thm list context_parser, ML_Code_Util.code parser) PD.entries
val print_def_insts : Induction_Tactic_Base.def_inst option list -> string
val print_arbitrary_fix : (string * typ) list -> string
val print_arbitrary_pat : term list * term list -> string
val code_insts : (Induction_Tactic_Base.def_inst option list, (term * term list) option list,
ML_Code_Util.code option list) Cases_Data_Args.PIM.entry -> ML_Code_Util.code
val code_arbitrary : ((string * typ) list, term list * term list, ML_Code_Util.code)
Cases_Data_Args.PIM.entry -> ML_Code_Util.code
val code_taking : taking -> ML_Code_Util.code
end
structure Induction_Data_Args : INDUCTION_DATA_ARGS =
struct
structure PU = Parse_Util
structure PIM = Cases_Data_Args.PIM
structure Show = SpecCheck_Show
structure MCU = ML_Code_Util
structure CDA = Cases_Data_Args
structure IHB = Induction_Tactic_Base