Structure quantHeuristicsLibAbbrev
signature quantHeuristicsLibAbbrev =
sig
 include Abbrev
 type selection_fun = term -> (term -> int) -> term -> (term * string) list
  (* The main conv and tactic *)
  (* introduce a new variable as abbreviation for terms selected by the selection_funs
     and try to instantiate this variable using the quantifier heuristics *)
  val QUANT_ABBREV_CONV        : selection_fun list -> quantHeuristicsLibBase.quant_param list -> conv
  val QUANT_ABBREV_TAC         : selection_fun list -> quantHeuristicsLibBase.quant_param list -> tactic
  (* a simple version that does not try to instantiate the new quatifier *)
  val SIMPLE_QUANT_ABBREV_CONV : selection_fun list -> conv
  val SIMPLE_QUANT_ABBREV_TAC  : selection_fun list -> tactic
  (* Some simple selection funs *)
  val select_funs_combine : selection_fun list -> selection_fun
  val select_fun_constant : term -> int -> string -> selection_fun
  val FST_select_fun      : selection_fun
  val SND_select_fun      : selection_fun
  val select_fun_pabs     : string -> selection_fun
  val PAIR_select_fun     : selection_fun
  val THE_select_fun      : selection_fun
  val IS_SOME_select_fun  : selection_fun
  val select_fun_match_occ   : int -> term frag list -> (term -> string) -> selection_fun
  val select_fun_match       : term frag list -> string -> selection_fun
  val select_fun_pattern_occ : int -> term frag list -> selection_fun
  val select_fun_pattern     : term frag list -> selection_fun
end
HOL 4, Kananaskis-10