X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_paramodulation%2Fparamod.ml;h=13b1d7270bc3fd1f785d8831a97ac284ec0b0bce;hb=9ab150d29e4b7653f71085da477a1c81f7b7e131;hp=b1fc1c7048a5f9786b75415bac959f38335e0ac4;hpb=6b0a195b180e3526af7b55771b2df7b10acd7c30;p=helm.git diff --git a/helm/software/components/ng_paramodulation/paramod.ml b/helm/software/components/ng_paramodulation/paramod.ml index b1fc1c704..13b1d7270 100644 --- a/helm/software/components/ng_paramodulation/paramod.ml +++ b/helm/software/components/ng_paramodulation/paramod.ml @@ -1,4 +1,5 @@ -let nparamod metasenv subst context t = +let nparamod metasenv subst context t table = + prerr_endline "========================================"; let module C = struct let metasenv = metasenv let subst = subst @@ -7,10 +8,11 @@ let nparamod metasenv subst context t = in let module B = NCicBlob.NCicBlob(C) in let module Pp = Pp.Pp (B) in - let res = B.embed t in let module FU = FoUnif.Founif(B) in let module IDX = Index.Index(B) in let module Sup = Superposition.Superposition(B) in + let module Utils = FoUtils.Utils(B) in +(* let test_unification _ = function | Terms.Node [_; _; lhs; rhs] -> prerr_endline "Unification test :"; @@ -24,4 +26,32 @@ let nparamod metasenv subst context t = prerr_endline (Pp.pp_foterm res); prerr_endline "Substitution :"; prerr_endline (Pp.pp_substitution subst) +*) + let mk_clause maxvar t = + let ty = B.embed t in + let proof = B.embed (NCic.Rel ~-1) in + Utils.mk_unit_clause maxvar ty proof + in + let clause, maxvar = mk_clause 0 t in + prerr_endline "Input clause :"; + prerr_endline (Pp.pp_unit_clause clause); + let bag = Utils.empty_bag in + let active_clauses, maxvar = + List.fold_left + (fun (cl,maxvar) t -> + let c, m = mk_clause maxvar t in + c::cl, m) + ([],maxvar) table + in + let table = + List.fold_left IDX.index_unit_clause IDX.DT.empty active_clauses + in + prerr_endline "Active table:"; + List.iter (fun uc -> prerr_endline (Pp.pp_unit_clause uc)) active_clauses; + let bag, maxvar, _, newclauses = + Sup.superposition_right bag maxvar clause (active_clauses, table) + in + prerr_endline "Output clauses :"; + List.iter (fun c -> prerr_endline (Pp.pp_unit_clause c)) newclauses; + prerr_endline "========================================"; ;;