]> matita.cs.unibo.it Git - helm.git/blobdiff - matitaB/components/ng_paramodulation/nCicBlob.ml
1) removed many debug prints
[helm.git] / matitaB / components / ng_paramodulation / nCicBlob.ml
index b9314a20317203d127413454acc13727d7c8616a..14454c58b2b0c571a9fe7d62a0095f32d8a09d7c 100644 (file)
 
 (* $Id: terms.mli 9822 2009-06-03 15:37:06Z tassi $ *)
 
-let eqPref = ref (fun _ -> assert false);;
-let set_eqP t = eqPref := fun _ -> t;;
-
-let default_eqP() =
+let default_eqP =
   let uri = NUri.uri_of_string "cic:/matita/basics/logic/eq.ind" in
   let ref = NReference.reference_of_spec uri (NReference.Ind(true,0,2)) in
     NCic.Const ref
 ;;
 
+let eqPref = ref default_eqP;;
+let set_eqP t = eqPref := t;;
+
 let equivalence_relation =
   let uri = NUri.uri_of_string "cic:/matita/ng/properties/relations/eq_rel.con"
   in
@@ -33,14 +33,20 @@ let setoid_eq =
 
 let set_default_eqP() = eqPref := default_eqP
 
-module type NCicContext =
-  sig
-    val metasenv : NCic.metasenv
-    val subst : NCic.substitution
-    val context : NCic.context
-  end
+let saturate status metasenv subst context t ty = 
+  let sty, _, args = 
+    (* CSC: NCicPp.status is the best I can put here *)
+    NCicMetaSubst.saturate status ~delta:0 metasenv subst context ty 0
+  in
+  let proof = 
+    if args = [] then t 
+    else NCic.Appl (t :: args)
+  in
+  proof, sty
+;;
+  
 
-module NCicBlob(C : NCicContext) : Terms.Blob 
+module NCicBlob: Terms.Blob 
 with type t = NCic.term and type input = NCic.term = struct
 
   type t = NCic.term
@@ -78,19 +84,22 @@ with type t = NCic.term and type input = NCic.term = struct
        
   ;;
   
-  let compare x y = 
+  (* let compare x y = 
     (* CSC: NCicPp.status is the best I can put here *)
-    if NCicReduction.alpha_eq (new NCicPp.status) [] [] [] x y  then 0 
+    (* WR: and I can't guess a user id, so I must put None *)
+    if NCicReduction.alpha_eq (new NCicPp.status None) [] [] [] x y  then 0 
     (* if x = y  then 0 *)
     else compare x y
-  ;;
+  ;; *)
 
-  let eqP = (!eqPref)()
+  let eqP = fun () -> !eqPref
   ;;
 
   let is_eq = function
-    | Terms.Node [ Terms.Leaf eqt ; ty; l; r ] when eq eqP eqt ->
+    | Terms.Node [ Terms.Leaf eqt ; ty; l; r ] when eq (eqP()) eqt ->
         Some (ty,l,r) 
+    | Terms.Node [ Terms.Leaf eqt ; ty; l; r ] ->
+        None
 (*
     | Terms.Node [ Terms.Leaf eqt ; _; Terms.Node [Terms.Leaf eqt2 ; ty]; l; r]
        when eq equivalence_relation eqt && eq setoid_eq eqt2 ->
@@ -99,8 +108,7 @@ with type t = NCic.term and type input = NCic.term = struct
 
   let pp t = 
     (* CSC: NCicPp.status is the best I can put here *)
-    (new NCicPp.status)#ppterm ~context:C.context
-      ~metasenv:C.metasenv ~subst:C.subst t;;
+    (new NCicPp.status None)#ppterm ~context:[] ~metasenv:[] ~subst:[] t
 
   type input = NCic.term
 
@@ -119,18 +127,4 @@ with type t = NCic.term and type input = NCic.term = struct
 
   let embed t = fst (embed t) ;;
 
-  let saturate t ty = 
-    let sty, _, args = 
-      (* CSC: NCicPp.status is the best I can put here *)
-      NCicMetaSubst.saturate (new NCicPp.status) ~delta:0 C.metasenv C.subst
-       C.context ty 0
-    in
-    let proof = 
-      if args = [] then Terms.Leaf t 
-      else Terms.Node (Terms.Leaf t :: List.map embed args)
-    in
-    let sty = embed sty in
-    proof, sty
-  ;;
-  
  end