package rocq-runtime
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=051f7bf702ff0a3b370449728921e5a95e18bc2b31b8eb949d48422888c98af4
doc/rocq-runtime.engine/UnivFlex/index.html
Module UnivFlexSource
Flexible universe data. A level is flexible if UnivFlex.mem returns true on it. Flexible levels may have a definition, this induces a universe substitution.
Only some flexible levels may be defined as algebraic universes.
Contains both defined and undefined flexible levels.
For universe minimization.
Returns true for both defined and undefined flexible levels.
Is the level allowed to be defined by an algebraic universe?
Make the level non algebraic. Undefined behaviour on already-defined algebraics.
Turn all undefined flexible algebraic variables into simply flexible ones. Can be used in case the variables might appear in universe instances (typically for polymorphic program obligations).
Make all undefined flexible levels into rigid levels, ie remove them.
Makes a level flexible with no definition. It must not already be flexible.
Make the levels flexible with no definitions. They must not already be flexible.
Define the level to the given universe. The level must already be flexible and must be undefined.
constrain_variables diff subst ctx removes bindings l := l' from the substitution where l is in diff and l' is a level, and adds l, l = l' to ctx.
biased_union x y favors the bindings of the first map that are defined, otherwise takes the second's bindings.
As normalize and also returns the set of defined variables and a function which is equivalent to calling normalize_univ_variable on the substitution but may be faster.
Apply the substitution to a variable.
Apply the substitution to an algebraic universe.
"Show Universes"-style printing.