X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flibrary%2FlibrarySync.mli;h=bfab37330cfadf71dabffd2143b4f3ed91597801;hb=HEAD;hp=d063b3282734b354c6b822467329e7a558149f14;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/components/library/librarySync.mli b/helm/software/components/library/librarySync.mli index d063b3282..bfab37330 100644 --- a/helm/software/components/library/librarySync.mli +++ b/helm/software/components/library/librarySync.mli @@ -25,16 +25,25 @@ exception AlreadyDefined of UriManager.uri -val merge_coercions: Cic.term -> Cic.term +type coercion_decl = + UriManager.uri -> int (* arity *) -> + int (* saturations *) -> string (* baseuri *) -> + UriManager.uri list (* lemmas (new objs) *) + +(* the add_single_obj fun passed to the callback can raise AlreadyDefined *) +val add_object_declaration_hook : + (add_obj:(UriManager.uri -> Cic.obj -> UriManager.uri list) -> + add_coercion:coercion_decl -> + UriManager.uri -> Cic.obj -> UriManager.uri list) -> unit (* 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 +val add_obj: + UriManager.uri -> Cic.obj -> pack_coercion_obj:(Cic.obj -> Cic.obj) -> + UriManager.uri list -(* inverse of add_obj; *) -(* Warning: it does not remove the dependencies on the object and on its *) -(* auxiliary lemmas! *) +(* removes an object (does not remove its associated lemmas) *) val remove_obj: UriManager.uri -> unit (* Informs the library that [uri] is a coercion. *) @@ -42,13 +51,9 @@ val remove_obj: UriManager.uri -> unit (* 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 + add_composites:bool -> pack_coercion_obj:(Cic.obj -> Cic.obj) -> coercion_decl +(* these just push/pop the coercions database, since the library is not + * pushable/poppable *) +val push: unit -> unit +val pop: unit -> unit