OpaqueproofSourceThis module implements the handling of opaque proof terms. Opaque proof terms are special since:
opaque proof terms holds an index into an opaque table.type 'a delayed_universes = | PrivateMonomorphic of 'a| PrivatePolymorphic of int * Univ.ContextSet.tNumber of surrounding bound universes + local constraints
*)From a proofterm to some opaque.
type work_list =
(Univ.Instance.t * Names.Id.t array) Names.Cmap.t
* (Univ.Instance.t * Names.Id.t array) Names.Mindmap.ttype cooking_info = {modlist : work_list;abstract : Constr.named_context * Univ.Instance.t * Univ.AUContext.t;}type indirect_accessor = {access_proof : Names.DirPath.t -> opaque_handle -> opaque_proofterm option;access_discharge : cooking_info list -> opaque_proofterm -> opaque_proofterm;}Opaque terms are indexed by their library dirpath and an integer index. The two functions above activate this indirect storage, by telling how to retrieve terms.
From a opaque back to a constr. This might use the indirect opaque accessor given as an argument.
val dump :
?except:Future.UUIDSet.t ->
opaquetab ->
opaque_disk * opaque_handle Future.UUIDMap.tOnly used for pretty-printing