X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Ftactics%2Fparamodulation%2Findexing.mli;h=06d1ada3fc795e055762f6937b3b6df61558e395;hb=b91d9e60b0a5f450d2725d4b9bb3ed7f81ef6d3a;hp=fe8582e92dc21788252f83ec2c678e18db9cf409;hpb=942023d1f147318b7869f40fb1556c2d69f3d731;p=helm.git diff --git a/helm/software/components/tactics/paramodulation/indexing.mli b/helm/software/components/tactics/paramodulation/indexing.mli index fe8582e92..06d1ada3f 100644 --- a/helm/software/components/tactics/paramodulation/indexing.mli +++ b/helm/software/components/tactics/paramodulation/indexing.mli @@ -25,17 +25,16 @@ (* $Id$ *) -type goal = Equality.goal_proof * Cic.metasenv * Cic.term - module Index : sig module PosEqSet : Set.S 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(Cic_indexable.CicIndexable)(PosEqSet).t end +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 @@ -45,46 +44,79 @@ val unification : Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> Equality.equality -> - (Subst.substitution * Equality.equality) option + (Subst.substitution * Equality.equality * bool) option val subsumption : Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> Equality.equality -> - (Subst.substitution * Equality.equality) option + (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 -> + Equality.equality -> + (Subst.substitution * Equality.equality * bool) list val superposition_left : + Equality.equality_bag -> Cic.conjecture list * Cic.context * CicUniv.universe_graph -> - Index.t -> - goal -> - goal list + Index.t -> Equality.goal -> + Equality.equality_bag * Equality.goal list val superposition_right : + Equality.equality_bag -> ?subterms_only:bool -> - int -> - 'a * Cic.context * CicUniv.universe_graph -> + UriManager.uri -> + Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> Equality.equality -> - int * Equality.equality list + 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 : + Equality.equality_bag -> ?from:string -> - int -> + UriManager.uri -> Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> - Utils.equality_sign -> Equality.equality -> int * Equality.equality + Equality.equality -> Equality.equality_bag * Equality.equality val demodulation_goal : + Equality.equality_bag -> Cic.metasenv * Cic.context * CicUniv.universe_graph -> Index.t -> - goal -> - bool * goal -val demodulation_theorem : - 'a -> + Equality.goal -> + bool * Equality.goal +val demodulation_all_goal : + 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.goal list +val demodulation_theorem : + 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 -> + Equality.goal -> + int -> + (Equality.equality_bag * Equality.goal_proof * Cic.metasenv * + Subst.substitution * Equality.proof) option - (** profiling *) -val get_stats: unit -> string