package coq-core
Install
Dune Dependency
Authors
Maintainers
Sources
md5=0cfaa70f569be9494d24c829e6555d46
sha512=8ee967c636b67b22a4f34115871d8f9b9114df309afc9ddf5f61275251088c6e21f6cf745811df75554d30f4cebb6682f23eeb2e88b771330c4b60ce3f6bf5e2
doc/coq-core.kernel/UGraph/index.html
Module UGraph
Source
Graphs of universes.
When type_in_type
, functions adding constraints do not fail and may instead ignore inconsistent constraints.
Checking functions such as check_leq
always return true
.
Initial universes, but keeping options such as type in type from the argument.
Check equality of instances w.r.t. a universe graph
...
Merge of constraints in a universes graph. The function merge_constraints
merges a set of constraints in a given universes graph. It raises the exception UniverseInconsistency
if the constraints are not satisfiable.
type univ_inconsistency =
univ_variable_printers option
* (Univ.constraint_type * Sorts.t * Sorts.t * explanation option)
Adds a universe to the graph, ensuring it is >= or > Set.
Check that the universe levels are declared. Otherwise
constraints_of_universes g
returns csts
and partition
where csts
are the non-Eq constraints and partition
is the partition of the universes into equivalence classes.
choose p g u
picks a universe verifying p
and equal to u
in g
.
constraints_for ~kept g
returns the constraints about the universes kept
in g
up to transitivity.
eg if g
is a <= b <= c
then constraints_for ~kept:{a, c} g
is a <= c
.
Known universes
check_subtype univ ctx1 ctx2
checks whether ctx2
is an instance of ctx1
.
Dumping
type node =
| Alias of Univ.Level.t
| Node of bool Univ.Level.Map.t
(*Nodes v s.t. u < v (true) or u <= v (false)
*)
Pretty-printing of universes.
val explain_universe_inconsistency :
(Sorts.QVar.t -> Pp.t) ->
(Univ.Level.t -> Pp.t) ->
univ_inconsistency ->
Pp.t