X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_paramodulation%2Forderings.ml;h=51b48a4c32951f4fc7c9cc9ea2a9ca18a0df5ab9;hb=8bc5bc0e8375a85736f6a5df317d129d5efa8de4;hp=7c8a80995d697479fa9d15540fa84fc39433d5aa;hpb=1001308d4ecc7dffa20f5f0fe479c77f8cad9b8e;p=helm.git diff --git a/helm/software/components/ng_paramodulation/orderings.ml b/helm/software/components/ng_paramodulation/orderings.ml index 7c8a80995..51b48a4c3 100644 --- a/helm/software/components/ng_paramodulation/orderings.ml +++ b/helm/software/components/ng_paramodulation/orderings.ml @@ -49,12 +49,12 @@ module Orderings (B : Terms.Blob) = struct (w, List.sort compare l) (* from the smallest meta to the bigest *) ;; - let compute_unit_clause_weight = + let compute_unit_clause_weight (_,l, _, _) = let weight_of_polynomial w m = let factor = 2 in w + factor * List.fold_left (fun acc (_,occ) -> acc+occ) 0 m in - function + match l with | Terms.Predicate t -> let w, m = weight_of_term t in weight_of_polynomial w m @@ -117,6 +117,11 @@ module Orderings (B : Terms.Blob) = struct * if head_only=true then it is not >>> but helps case 2 of 3.14 p 39 *) let rec aux_ordering ?(head_only=false) t1 t2 = match t1, t2 with + (* We want to discard any identity equality. * + * If we give back XEQ, no inference rule * + * will be applied on this equality *) + | Terms.Var i, Terms.Var j when i = j -> + XEQ (* 1. *) | Terms.Var _, _ | _, Terms.Var _ -> XINCOMPARABLE