Module Firstorder_plugin.Formula
val qflag : bool Stdlib.refval red_flags : CClosure.RedFlags.reds Stdlib.refval (=?) : ('a -> 'a -> int) -> ('b -> 'b -> int) -> 'a -> 'a -> 'b -> 'b -> intval (==?) : ('a -> 'a -> 'b -> 'b -> int) -> ('c -> 'c -> int) -> 'a -> 'a -> 'b -> 'b -> 'c -> 'c -> int
type ('a, 'b) sum=|Left of 'a|Right of 'btype counter= bool -> Constr.metavariable
val construct_nhyps : Environ.env -> Constr.pinductive -> int arrayval ind_hyps : Environ.env -> Evd.evar_map -> int -> Constr.pinductive -> EConstr.constr list -> EConstr.rel_context array
type atoms={positive : EConstr.constr list;negative : EConstr.constr list;}type side=|Hyp|Concl|Hint
val dummy_id : Names.GlobRef.tval build_atoms : Environ.env -> Evd.evar_map -> counter -> side -> EConstr.constr -> bool * atoms
type right_pattern=|Rarrow|Rand|Ror|Rfalse|Rforall|Rexists of Constr.metavariable * EConstr.constr * booltype left_arrow_pattern=|LLatom|LLfalse of Constr.pinductive * EConstr.constr list|LLand of Constr.pinductive * EConstr.constr list|LLor of Constr.pinductive * EConstr.constr list|LLforall of EConstr.constr|LLexists of Constr.pinductive * EConstr.constr list|LLarrow of EConstr.constr * EConstr.constr * EConstr.constrtype left_pattern=|Lfalse|Land of Constr.pinductive|Lor of Constr.pinductive|Lforall of Constr.metavariable * EConstr.constr * bool|Lexists of Constr.pinductive|LA of EConstr.constr * left_arrow_patterntype t={id : Names.GlobRef.t;constr : EConstr.constr;pat : (left_pattern, right_pattern) sum;atoms : atoms;}
val build_formula : Environ.env -> Evd.evar_map -> side -> Names.GlobRef.t -> EConstr.types -> counter -> (t, EConstr.types) sum