Module Ground_plugin.Sequent

module CM : CSig.MapS with type key = Constr.t
type h_item = Names.GlobRef.t * (int * Constr.t) option
module History : Stdlib.Set.S with type History.elt = h_item
val cm_add : Evd.evar_map -> EConstr.constr -> Names.GlobRef.t -> Names.GlobRef.t list CM.t -> Names.GlobRef.t list CM.t
val cm_remove : Evd.evar_map -> EConstr.constr -> Names.GlobRef.t -> Names.GlobRef.t list CM.t -> Names.GlobRef.t list CM.t
module HP : Heap.S with type elt = Formula.t
type t = {
redexes : HP.t;
context : Names.GlobRef.t list CM.t;
latoms : EConstr.constr list;
gl : EConstr.types;
glatom : EConstr.constr option;
cnt : Formula.counter;
history : History.t;
depth : int;
}
val deepen : t -> t
val record : h_item -> t -> t
val lookup : Evd.evar_map -> h_item -> t -> bool
val add_formula : Environ.env -> Evd.evar_map -> Formula.side -> Names.GlobRef.t -> EConstr.constr -> t -> t
val re_add_formula_list : Evd.evar_map -> Formula.t list -> t -> t
val find_left : Evd.evar_map -> EConstr.constr -> t -> Names.GlobRef.t
val take_formula : Evd.evar_map -> t -> Formula.t * t
val empty_seq : int -> t
val extend_with_ref_list : Environ.env -> Evd.evar_map -> Names.GlobRef.t list -> t -> t * Evd.evar_map
val extend_with_auto_hints : Environ.env -> Evd.evar_map -> Hints.hint_db_name list -> t -> t * Evd.evar_map
val print_cmap : Names.GlobRef.t list CM.t -> Pp.t