Firstorder_core_plugin.Formulatype counter = bool -> Constr.metavariableval construct_nhyps : Environ.env -> Constr.pinductive -> int arrayval ind_hyps : Environ.env -> Evd.evar_map -> int -> Constr.pinductive -> EConstr.constr list -> EConstr.rel_context arraymodule Env : sig ... endval meta_in_atom : Constr.metavariable -> atom -> booltype right_pattern = | | Rarrow | 
| | Rand | 
| | Ror | 
| | Rfalse | 
| | Rforall | 
| | Rexists of Constr.metavariable * EConstr.constr * bool | 
type 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.constr | 
type left_pattern = | | Lfalse | 
| | Land of Constr.pinductive | 
| | Lor of Constr.pinductive | 
| | Lforall of Constr.metavariable * EConstr.constr * bool | 
| | Lexists of Constr.pinductive | 
| | LA of left_arrow_pattern | 
type _ identifier = private | | GoalId : [ `Goal ] identifier | 
| | FormulaId : Names.GlobRef.t -> [ `Hyp ] identifier | 
val goal_id : [ `Goal ] identifierval formula_id : Environ.env -> Names.GlobRef.t -> [ `Hyp ] identifiertype _ pattern = | | LeftPattern : left_pattern -> [ `Hyp ] pattern | 
| | RightPattern : right_pattern -> [ `Goal ] pattern | 
val build_formula : flags:flags -> Env.t -> Environ.env -> Evd.evar_map -> 'a side -> 'a identifier -> EConstr.types -> counter -> Env.t * ('a t, atom) sum