]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_paramodulation/nCicBlob.ml
some more functors and a nice higher-order all_positions iterator
[helm.git] / helm / software / components / ng_paramodulation / nCicBlob.ml
index e01edfae309e30053ea336e3aeee2d35ba658536..a0fa80adab1bbff4f949c37b69d3734a79ba52e1 100644 (file)
@@ -46,6 +46,24 @@ module NCicBlob(C : NCicContext) : Terms.Blob with type t = NCic.term = struct
          (fun (r,v) t -> let r1,v1 = embed t in (r1::r),aux [] v v1) ([],[]) l
        in (Terms.Node (List.rev res)), vars
     | t -> Terms.Leaf t, []
-;;
+  ;;
+
+  let embed t = fst (embed t) ;;
+
+  let saturate t ty = 
+    let sty, _, args = 
+      NCicMetaSubst.saturate ~delta:max_int 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
+  ;;
+
+  let is_eq_predicate t = assert false;;
+
 
  end