]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic/helmLibraryObjects.ml
Partial porting to V8 URIs.
[helm.git] / helm / ocaml / cic / helmLibraryObjects.ml
index af781edc8fb8cd7ca8bd08fc997c3a1bdd4b818f..83f2d36479015f3d0626c6959a9b3a640a451c2b 100644 (file)
@@ -24,7 +24,7 @@ let indconuri_of_uri uri =
     int_of_string
       (String.sub uri index_con (String.length uri - index_con)))
 
-let term_of_uri uri =
+let term_of_uri ?(subst = []) uri =
   let s = UriManager.string_of_uri uri in
   try
   (* Constant *)
@@ -32,19 +32,19 @@ let term_of_uri uri =
   let len = String.length s in
   let sub = String.sub s (len -4) 4 in
   if sub = ".con" then
-    const uri
+    const ~subst uri
   else if sub = ".var" then
-    var uri
+    var ~subst uri
   else
     (try
       (* Inductive Type *)
       let (uri, typeno) = indtyuri_of_uri s in
-      mutind uri typeno
+      mutind ~subst uri typeno
      with
       | UriManager.IllFormedUri _ | Failure _ | Invalid_argument _ ->
           (* Constructor of an Inductive Type *)
           let (uri, typeno, consno) = indconuri_of_uri s in
-          mutconstruct uri typeno consno)
+          mutconstruct ~subst uri typeno consno)
  with
  | Invalid_argument _ | Not_found -> raise (UriManager.IllFormedUri s)
 
@@ -52,9 +52,32 @@ let term_of_uri uri =
 
 module Logic =
   struct
-    let eq_URI = uri "cic:/Coq/Init/Logic/eq.ind"
+    let eq_SURI = "cic:/Coq/Init/Logic/eq.ind"
+    let eq_URI = uri eq_SURI
+    let eq_XURI = eq_SURI ^ "#xpointer(1/1)"
+    let eq_ind_URI = uri "cic:/Coq/Init/Logic/eq_ind.con"
+    let eq_ind_r_URI = uri "cic:/Coq/Init/Logic/eq_ind_r.con"
     let true_URI = uri "cic:/Coq/Init/Logic/True.ind"
     let false_URI = uri "cic:/Coq/Init/Logic/False.ind"
+    let false_ind_URI = uri "cic:/Coq/Init/Logic/False_ind.con"
+    let ex_SURI = "cic:/Coq/Init/Logic/ex.ind"
+    let ex_URI = uri ex_SURI
+    let ex_XURI = ex_SURI ^ "#xpointer(1/1)"
+    let ex_ind_URI = uri "cic:/Coq/Init/Logic/ex_ind.con"
+    let and_SURI = "cic:/Coq/Init/Logic/and.ind"
+    let and_URI = uri and_SURI
+    let and_XURI = and_SURI ^ "#xpointer(1/1)"
+    let and_ind_URI = uri "cic:/Coq/Init/Logic/and_ind.con"
+    let or_SURI = "cic:/Coq/Init/Logic/or.ind"
+    let or_URI = uri or_SURI
+    let or_XURI = or_SURI ^ "#xpointer(1/1)"
+    let not_SURI = "cic:/Coq/Init/Logic/not.con"
+    let not_URI = uri not_SURI
+    let iff_SURI = "cic:/Coq/Init/Logic/iff.con"
+    let iff_URI = uri "cic:/Coq/Init/Logic/iff.con"
+    let sym_eq_URI = uri "cic:/Coq/Init/Logic/sym_eq.con"
+    let trans_eq_URI = uri "cic:/Coq/Init/Logic/trans_eq.con"
+    let absurd_URI = uri "cic:/Coq/Init/Logic/absurd.con"
   end
 
 module Logic_Type =
@@ -80,12 +103,27 @@ module Datatypes =
 module Reals =
   struct
     let r_URI = uri "cic:/Coq/Reals/Rdefinitions/R.con"
-    let rplus_URI = uri "cic:/Coq/Reals/Rdefinitions/Rplus.con"
+    let rplus_SURI = "cic:/Coq/Reals/Rdefinitions/Rplus.con"
+    let rplus_URI = uri rplus_SURI
+    let rminus_URI = uri "cic:/Coq/Reals/Rdefinitions/Rminus.con"
     let rmult_URI = uri "cic:/Coq/Reals/Rdefinitions/Rmult.con"
-    let ropp_URI = uri "cic:/Coq/Reals/Rdefinitions/Ropp.con"
+    let rdiv_URI = uri "cic:/Coq/Reals/Rdefinitions/Rdiv.con"
+    let ropp_SURI = "cic:/Coq/Reals/Rdefinitions/Ropp.con"
+    let ropp_URI = uri ropp_SURI
+    let rinv_SURI = "cic:/Coq/Reals/Rdefinitions/Rinv.con"
+    let rinv_URI = uri rinv_SURI
     let r0_URI = uri "cic:/Coq/Reals/Rdefinitions/R0.con"
     let r1_URI = uri "cic:/Coq/Reals/Rdefinitions/R1.con"
+    let rle_SURI = "cic:/Coq/Reals/Rdefinitions/Rle.con"
+    let rle_URI = uri rle_SURI
+    let rge_SURI = "cic:/Coq/Reals/Rdefinitions/Rge.con"
+    let rge_URI = uri rge_SURI
+    let rlt_SURI = "cic:/Coq/Reals/Rdefinitions/Rlt.con"
+    let rlt_URI = uri rlt_SURI
+    let rgt_SURI = "cic:/Coq/Reals/Rdefinitions/Rgt.con"
+    let rgt_URI = uri rgt_SURI
     let rtheory_URI = uri "cic:/Coq/Reals/Rbase/RTheory.con"
+    let rinv_r1_URI = uri "cic:/Coq/Reals/Rbase/Rinv_R1.con"
 
     let r = const r_URI
     let rplus = const rplus_URI
@@ -98,15 +136,32 @@ module Reals =
 
 module Peano =
   struct
-    let plus_URI = uri "cic:/Coq/Init/Peano/plus.con"
+    let plus_SURI = "cic:/Coq/Init/Peano/plus.con"
+    let plus_URI = uri plus_SURI
+    let minus_URI = uri "cic:/Coq/Init/Peano/minus.con"
     let mult_URI = uri "cic:/Coq/Init/Peano/mult.con"
     let pred_URI = uri "cic:/Coq/Init/Peano/pred.con"
+    let le_SURI = "cic:/Coq/Init/Peano/le.ind"
+    let le_URI = uri le_SURI
+    let le_XURI = le_SURI ^ "#xpointer(1/1)"
+    let ge_SURI = "cic:/Coq/Init/Peano/ge.con"
+    let ge_URI = uri ge_SURI
+    let lt_SURI = "cic:/Coq/Init/Peano/lt.con"
+    let lt_URI = uri lt_SURI
+    let gt_SURI = "cic:/Coq/Init/Peano/lt.con"
+    let gt_URI = uri gt_SURI
+    let lt_URI = uri "cic:/Coq/Init/Peano/lt.con"
 
     let plus = const plus_URI
     let mult = const mult_URI
     let pred = const pred_URI
   end
 
+module BinInt =
+  struct
+    let zplus_SURI = "cic:/Coq/ZArith/BinInt/Zplus.con"
+  end
+
 (** {2 Helpers for creating common terms}
  *  (e.g. numbers)} *)