package coq
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Formal proof management system
Install
dune-project
Dependency
Authors
Maintainers
Sources
coq-8.14.0.tar.gz
sha256=b1501d686c21836302191ae30f610cca57fb309214c126518ca009363ad2cd3c
doc/coq-core.kernel/Opaqueproof/index.html
Module OpaqueproofSource
This module implements the handling of opaque proof terms. Opaque proof terms are special since:
- they can be lazily computed and substituted
- they are stored in an optionally loaded segment of .vo files An
opaqueproof terms holds an index into an opaque table.
Source
type 'a delayed_universes = | PrivateMonomorphic of 'a| PrivatePolymorphic of int * Univ.ContextSet.t(*Number of surrounding bound universes + local constraints
*)
From a proofterm to some opaque.
Source
type work_list =
(Univ.Instance.t * Names.Id.t array) Names.Cmap.t
* (Univ.Instance.t * Names.Id.t array) Names.Mindmap.tSource
type cooking_info = {modlist : work_list;abstract : Constr.named_context * Univ.Instance.t * Univ.AUContext.t;
}Source
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.
Serialization
Source
val dump :
?except:Future.UUIDSet.t ->
opaquetab ->
opaque_disk * opaque_handle Future.UUIDMap.tOnly used for pretty-printing
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page