sig
  type form = LogtkFormula.FO.t
  type term = LogtkFOTerm.t
  val is_definition :
    LogtkFormulaShape.form ->
    (LogtkFormulaShape.term * LogtkFormulaShape.term) option
  val is_pred_definition :
    LogtkFormulaShape.form ->
    (LogtkFormulaShape.term * LogtkFormulaShape.form) option
  val is_rewrite_rule :
    LogtkFormulaShape.form ->
    (LogtkFormulaShape.term * LogtkFormulaShape.term) list
  val is_pred_rewrite_rule :
    LogtkFormulaShape.form ->
    (LogtkFormulaShape.term * LogtkFormulaShape.form) option
  val is_const_definition :
    LogtkFormulaShape.form -> (LogtkSymbol.t * LogtkFormulaShape.term) option
  val is_const_pred_definition :
    LogtkFormulaShape.form -> (LogtkSymbol.t * LogtkFormulaShape.form) option
  val detect : LogtkFormulaShape.form Sequence.t -> LogtkTransform.t list
  val detect_list : LogtkFormulaShape.form list -> LogtkTransform.t list
  val detect_def :
    ?only:[ `Pred | `Term ] ->
    ?arity:[ `Nonzero | `Zero ] ->
    LogtkFormulaShape.form Sequence.t -> LogtkTransform.t list
end