X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Ftactics%2Fparamodulation%2Findexing.mli;h=e36cfba494bbb432c77a8bb2185b73f72fdd5c35;hb=e78cf74f8976cf0ca554f64baa9979d0423ee927;hp=8a6f9c2b6c7923eda5f8636605fd4cbb965ab661;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/components/tactics/paramodulation/indexing.mli b/helm/software/components/tactics/paramodulation/indexing.mli index 8a6f9c2b6..e36cfba49 100644 --- a/helm/software/components/tactics/paramodulation/indexing.mli +++ b/helm/software/components/tactics/paramodulation/indexing.mli @@ -28,59 +28,95 @@ 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 + type t = + Discrimination_tree.Make(Discrimination_tree.CicIndexable)(PosEqSet).t 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 check_for_duplicates : Cic.metasenv -> string -> unit +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 -> + Equality.equality -> + (Subst.substitution * Equality.equality * bool) list +val subsumption_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 superposition_left : + Equality.equality_bag -> + Cic.conjecture list * Cic.context * CicUniv.universe_graph -> + Index.t -> Equality.goal -> + Equality.equality_bag * Equality.goal list + val superposition_right : - int -> + Equality.equality_bag -> + ?subterms_only:bool -> + UriManager.uri -> Cic.metasenv * 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 -> + Equality.equality_bag * Equality.equality list + +val demod : + Equality.equality_bag -> + Cic.metasenv * Cic.context * CicUniv.universe_graph -> + Index.t -> + Equality.goal -> + bool * Equality.goal val demodulation_equality : - int -> + Equality.equality_bag -> + ?from:string -> + UriManager.uri -> Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> - Utils.equality_sign -> Inference.equality -> int * Inference.equality + Equality.equality -> Equality.equality_bag * 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_all_goal : + Equality.equality_bag -> + Cic.metasenv * Cic.context * CicUniv.universe_graph -> + Index.t -> + Equality.goal -> int -> + Equality.goal list val demodulation_theorem : - 'a -> + Equality.equality_bag -> + Cic.metasenv * Cic.context * CicUniv.universe_graph -> + Index.t -> + Cic.term * Cic.term * Cic.metasenv + -> Cic.term * Cic.term + +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 -> - Cic.term * Index.key * Cic.metasenv -> - 'a * (Cic.term * Index.key * Cic.metasenv) + Equality.goal -> + int -> + (Equality.equality_bag * Equality.goal_proof * Cic.metasenv * + Subst.substitution * Equality.proof) option