]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/library/librarySync.mli
fixed undo support for coercions inside records
[helm.git] / helm / ocaml / library / librarySync.mli
index 0e0916e4dd61d8f7e70d8ae0adfbb8337cb0022f..43ac34da32865e6ed587efb7c48c22dbc8b6a622 100644 (file)
  * http://helm.cs.unibo.it/
  *)
 
-(* returns a list of added URIs and their paths on disk *)
-(*CSC: the path on disk should be computable from the URI!!! *)
-val add_obj: UriManager.uri -> Cic.obj -> basedir:string -> unit
+exception AlreadyDefined of UriManager.uri
 
-(* inverse of add_obj; it does not remove the objects depending on it! *)
+(* adds an object to the library together with all auxiliary lemmas on it *)
+(* (e.g. elimination principles, projections, etc.)                       *)
+(* it returns the list of the uris of the auxiliary lemmas generated      *)
+val add_obj: UriManager.uri -> Cic.obj -> basedir:string -> UriManager.uri list
+
+(* inverse of add_obj;                                                   *)
+(* Warning: it does not remove the dependencies on the object and on its *)
+(* auxiliary lemmas!                                                     *)
 val remove_obj: UriManager.uri -> unit
+
+(* Informs the library that [uri] is a coercion.                         *)
+(* This can generate some composite coercions that, if [add_composites]  *)
+(* is true are added to the library.                                     *)
+(* The list of added objects is returned.                                *)
+val add_coercion: 
+  basedir:string -> add_composites:bool -> UriManager.uri -> 
+    UriManager.uri list
+
+(* inverse of add_coercion, removes both the eventually created composite   *)
+(* coercions and the information that [uri] and the composites are coercion *)
+val remove_coercion: UriManager.uri -> unit
+
+(* mh... *)
+val remove_all_coercions: unit -> unit
+