X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_paramodulation%2Fpp.ml;h=b90c08d385db330b97e903dae90a432041522aea;hb=4ae7d510a430a2a6929f973d36b993d528772d64;hp=9dac9001bd6cdea5686f9d2fc122623b2ed8db75;hpb=497563d35f24bbcbcbd8d669d73284b76a823118;p=helm.git diff --git a/helm/software/components/ng_paramodulation/pp.ml b/helm/software/components/ng_paramodulation/pp.ml index 9dac9001b..b90c08d38 100644 --- a/helm/software/components/ng_paramodulation/pp.ml +++ b/helm/software/components/ng_paramodulation/pp.ml @@ -36,9 +36,8 @@ let pp_foterm ~formatter:f t = ;; let string_of_rule = function - | Terms.SuperpositionRight -> "SupR" - | Terms.SuperpositionLeft -> "SupL" - | Terms.Demodulation -> "Demod" + | Terms.Superposition -> "Super" + | Terms.Demodulation -> "Demod" ;; let string_of_direction = function @@ -59,7 +58,9 @@ let pp_substitution ~formatter:f subst = let pp_proof bag ~formatter:f p = let rec aux eq = function | Terms.Exact t -> - Format.fprintf f "%d: Exact (%s)@;" eq (B.pp t) + Format.fprintf f "%d: Exact (" eq; + pp_foterm f t; + Format.fprintf f ")@;"; | Terms.Step (rule,eq1,eq2,dir,pos,subst) -> Format.fprintf f "%d: %s(" eq (string_of_rule rule); @@ -78,13 +79,13 @@ let pp_proof bag ~formatter:f p = ;; let string_of_comparison = function - | Terms.Lt -> "<" - | Terms.Gt -> ">" - | Terms.Eq -> "=" - | Terms.Incomparable -> "I" + | Terms.Lt -> "=<=" + | Terms.Gt -> "=>=" + | Terms.Eq -> "===" + | Terms.Incomparable -> "=?=" let pp_unit_clause ~formatter:f c = - let (id, l, vars, _) = c in + let (id, l, vars, proof) = c in Format.fprintf f "Id : %d, " id ; match l with | Terms.Predicate t -> @@ -94,10 +95,24 @@ let pp_unit_clause ~formatter:f c = pp_foterm f ty; Format.fprintf f "}: "; pp_foterm f lhs; - Format.fprintf f " =(%s) " (string_of_comparison comp); + Format.fprintf f " %s " (string_of_comparison comp); pp_foterm f rhs; - Format.fprintf f " [%s]" - (String.concat ", " (List.map string_of_int vars)) + Format.fprintf f " [%s] by %s" + (String.concat ", " (List.map string_of_int vars)) + (match proof with + | Terms.Exact _ -> "axiom" + | Terms.Step (rule, id1, id2, _, p, _) -> + Printf.sprintf "%s %d with %d at %s" + (string_of_rule rule) + id1 id2 (String.concat + "," (List.map string_of_int p))) +;; + +let pp_bag ~formatter:f bag = + Format.fprintf f "@["; + Terms.M.iter + (fun _ c -> pp_unit_clause ~formatter:f c;Format.fprintf f "@;") bag; + Format.fprintf f "@]" ;; (* String buffer implementation *) @@ -109,6 +124,10 @@ let on_buffer f t = Buffer.contents buff ;; +let pp_bag = + on_buffer pp_bag +;; + let pp_foterm = on_buffer pp_foterm ;;