]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/paramodulation/utils.mli
removed first Cic.term from type equality, added an int (weight of the equality)
[helm.git] / helm / ocaml / paramodulation / utils.mli
1 (* (weight of constants, [(meta, weight_of_meta)]) *)
2 type weight = int * (int * int) list;;
3
4 type comparison = Lt | Le | Eq | Ge | Gt | Incomparable;;
5
6 val print_metasenv: Cic.metasenv -> string
7
8 val print_subst: ?prefix:string -> Cic.substitution -> string
9
10 val string_of_weight: weight -> string
11
12 val weight_of_term: ?consider_metas:bool -> Cic.term -> weight
13
14 val normalize_weight: int -> weight -> weight
15
16 val string_of_comparison: comparison -> string
17
18 val compare_weights: ?normalize:bool -> weight -> weight -> comparison
19
20 val nonrec_kbo: Cic.term -> Cic.term -> comparison
21
22 val nonrec_kbo_w: (Cic.term * weight) -> (Cic.term * weight) -> comparison
23
24 val names_of_context: Cic.context -> (Cic.name option) list
25
26 module TermMap: Map.S with type key = Cic.term
27
28 val symbols_of_term: Cic.term -> int TermMap.t
29
30 val lpo: Cic.term -> Cic.term -> comparison
31
32 (** term-ordering function settable by the user *)
33 val compare_terms: (Cic.term -> Cic.term -> comparison) ref
34
35 type equality_sign = Negative | Positive
36
37 val string_of_sign: equality_sign -> string
38
39 type pos = Left | Right 
40
41 val string_of_pos: pos -> string
42
43 val compute_equality_weight: Cic.term -> Cic.term -> Cic.term -> int