]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_paramodulation/nCicBlob.ml
new instantiate, only known bug is w.r.t. in/out scope and file matita/contribs/ng_as...
[helm.git] / helm / software / components / ng_paramodulation / nCicBlob.ml
index 09399b3261b2d634352c54cc63b95614b898fb0b..05867b00e15a7baa205a576547a8fa734a3d7fec 100644 (file)
@@ -11,6 +11,9 @@
 
 (* $Id: terms.mli 9822 2009-06-03 15:37:06Z tassi $ *)
 
+let reference_of_oxuri = ref (fun _ -> assert false);;
+let set_reference_of_oxuri f = reference_of_oxuri := f;;
+
 module type NCicContext =
   sig
     val metasenv : NCic.metasenv
@@ -18,7 +21,8 @@ module type NCicContext =
     val context : NCic.context
   end
 
-module NCicBlob(C : NCicContext) : Terms.Blob with type t = NCic.term = struct
+module NCicBlob(C : NCicContext) : Terms.Blob 
+with type t = NCic.term and type input = NCic.term = struct
 
   type t = NCic.term
 
@@ -26,7 +30,7 @@ module NCicBlob(C : NCicContext) : Terms.Blob with type t = NCic.term = struct
 
   let rec compare x y = 
     match x,y with
-    | NCic.Rel i, NCic.Rel j -> i-j
+    | NCic.Rel i, NCic.Rel j -> j-i
     | NCic.Meta (i,_), NCic.Meta (j,_) -> i-j
     | NCic.Const r1, NCic.Const r2 -> NReference.compare r1 r2
     | NCic.Appl l1, NCic.Appl l2 -> FoUtils.lexicograph compare l1 l2
@@ -47,6 +51,8 @@ module NCicBlob(C : NCicContext) : Terms.Blob with type t = NCic.term = struct
   let pp t = 
     NCicPp.ppterm ~context:C.context ~metasenv:C.metasenv ~subst:C.subst t;;
 
+  type input = NCic.term
+
   let rec embed = function
     | NCic.Meta (i,_) -> Terms.Var i, [i]
     | NCic.Appl l ->
@@ -77,12 +83,11 @@ module NCicBlob(C : NCicContext) : Terms.Blob with type t = NCic.term = struct
 
   let eqP = 
     let r = 
-      OCic2NCic.reference_of_oxuri 
+      !reference_of_oxuri 
        (UriManager.uri_of_string 
          "cic:/matita/logic/equality/eq.ind#xpointer(1/1)")
     in
     NCic.Const r
   ;;
 
-
  end