Cc_core_plugin.Ccalgo
module ATerm : sig ... end
val constr_of_axiom : axiom -> Constr.constr
type rule =
| Congruence |
| Axiom of axiom * bool |
| Injection of int * pa_constructor * int * pa_constructor * int |
type explanation =
| Discrimination of int * pa_constructor * int * pa_constructor |
| Contradiction of disequality |
| Incomplete of (EConstr.t * int) list |
val debug_congruence : CDebug.t
val empty : Environ.env -> Evd.evar_map -> int -> state
val add_equality : state -> Names.Id.t -> ATerm.t -> ATerm.t -> unit
val tail_pac : pa_constructor -> pa_constructor
val find_oldest_pac : forest -> int -> pa_constructor -> int
val subterms : forest -> int -> int * int
val execute : bool -> state -> explanation option
val pr_idx_term : Environ.env -> Evd.evar_map -> forest -> int -> Pp.t