module Index :
sig
module PosEqSet : Set.S
- with type elt = Utils.pos * Inference.equality
+ with type elt = Utils.pos * Equality.equality
and type t = Equality_indexing.DT.PosEqSet.t
type t = Discrimination_tree.DiscriminationTreeIndexing(PosEqSet).t
- type key = Cic.term
end
-val index : Index.t -> Inference.equality -> Index.t
-val remove_index : Index.t -> Inference.equality -> Index.t
-val in_index : Index.t -> Inference.equality -> bool
+val index : Index.t -> Equality.equality -> Index.t
+val remove_index : Index.t -> Equality.equality -> Index.t
+val in_index : Index.t -> Equality.equality -> bool
val empty : Index.t
-val match_unif_time_ok : float ref
-val match_unif_time_no : float ref
-val indexing_retrieval_time : float ref
val init_index : unit -> unit
-val build_newtarget_time : float ref
+val unification :
+ Cic.metasenv * Cic.context * CicUniv.universe_graph ->
+ Index.t ->
+ Equality.equality ->
+ (Subst.substitution * Equality.equality * bool) option
val subsumption :
Cic.metasenv * Cic.context * CicUniv.universe_graph ->
Index.t ->
- 'a * 'b * ('c * Index.key * Index.key * 'd) * Cic.metasenv * 'e ->
- bool * Cic.substitution
-val superposition_left :
- int ->
+ Equality.equality ->
+ (Subst.substitution * Equality.equality * bool) option
+val unification_all :
Cic.metasenv * Cic.context * CicUniv.universe_graph ->
Index.t ->
- 'a * Inference.proof *
- (Index.key * Index.key * Index.key * Utils.comparison) * Cic.metasenv * 'c ->
- int *
- (int * Inference.proof *
- (Index.key * Index.key * Index.key * Utils.comparison) * Cic.metasenv *
- 'e list)
- list
+ Equality.equality ->
+ (Subst.substitution * Equality.equality * bool) list
+val subsumption_all :
+ Cic.metasenv * Cic.context * CicUniv.universe_graph ->
+ Index.t ->
+ Equality.equality ->
+ (Subst.substitution * Equality.equality * bool) list
+val superposition_left :
+ Equality.equality_bag ->
+ Cic.conjecture list * Cic.context * CicUniv.universe_graph ->
+ Index.t -> Equality.goal -> int ->
+ int * Equality.goal list
+
val superposition_right :
+ Equality.equality_bag ->
+ ?subterms_only:bool ->
+ UriManager.uri ->
int ->
- Cic.metasenv * Cic.context * CicUniv.universe_graph ->
+ 'a * Cic.context * CicUniv.universe_graph ->
Index.t ->
- 'a * Inference.proof *
- (Cic.term * Index.key * Index.key * Utils.comparison) *
- Cic.metasenv * Cic.term list -> int * Inference.equality list
+ Equality.equality ->
+ int * Equality.equality list
+
val demodulation_equality :
+ Equality.equality_bag ->
+ ?from:string ->
+ UriManager.uri ->
int ->
Cic.metasenv * Cic.context * CicUniv.universe_graph ->
Index.t ->
- Utils.equality_sign -> Inference.equality -> int * Inference.equality
+ Equality.equality -> int * Equality.equality
val demodulation_goal :
- int ->
+ Equality.equality_bag ->
Cic.metasenv * Cic.context * CicUniv.universe_graph ->
Index.t ->
- Inference.proof * Cic.metasenv * Index.key ->
- int * (Inference.proof * Cic.metasenv * Index.key)
+ Equality.goal ->
+ bool * Equality.goal
val demodulation_theorem :
+ Equality.equality_bag ->
'a ->
Cic.metasenv * Cic.context * CicUniv.universe_graph ->
Index.t ->
- Cic.term * Index.key * Cic.metasenv ->
- 'a * (Cic.term * Index.key * Cic.metasenv)
+ Cic.term * Cic.term * Cic.metasenv ->
+ 'a * (Cic.term * Cic.term * Cic.metasenv)
+val check_target:
+ Equality.equality_bag ->
+ Cic.context ->
+ Equality.equality -> string -> unit
+val solve_demodulating:
+ Equality.equality_bag ->
+ Cic.metasenv * Cic.context * CicUniv.universe_graph ->
+ Index.t ->
+ Equality.goal ->
+ int ->
+ Equality.goal option
+
+ (** profiling *)
+val get_stats: unit -> string