]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/paramodulation/indexing.mli
many changes:
[helm.git] / helm / software / components / tactics / paramodulation / indexing.mli
index bb005f8d3728f22a7ac7b31b9f262d9ab27f02e2..7f464d2485af2c7f0b034172073e205bf1f5ee73 100644 (file)
 
 (* $Id$ *)
 
-val beta_expand_time : float ref
-
 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
+  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 ->
+  Equality.equality ->
+  (Subst.substitution * Equality.equality * bool) list
 val superposition_left :
-  int ->
+  Equality.equality_bag ->
   Cic.conjecture list * Cic.context * CicUniv.universe_graph ->
-  Index.t ->
-  Inference.equality ->
-   int * Inference.equality list
+  Index.t -> Equality.goal -> int ->
+    int * Equality.goal list
 
 val superposition_right :
+  Equality.equality_bag ->
+  ?subterms_only:bool ->
+    UriManager.uri ->
   int ->
   'a * Cic.context * CicUniv.universe_graph ->
   Index.t ->
-  Inference.equality ->
-  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 ->
-    Inference.equality -> string -> Cic.term * CicUniv.universe_graph
+    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
+
 
-(* maxmeta for relocate *)
-val local_max : int ref
+    (** profiling *)
+val get_stats: unit -> string