Skip to content

Syntax for explicit universe levels #125

Open
@JasonGross

Description

@JasonGross

If we provide a syntax for explicit universe levels, @mattam82 has said that he will provide it.

I propose something like the following:

Definition foo {universes i <= j, Set < k < i, ℓ = max(m, n), p}
  (A B : Type i) (C : Type j) (D : Type k) (E : Type m) (F : Type n) (G : Type) (H : Type p)
 : Type

The semantics are: If you take the transitive closure of the final universe graph, and drop any constraints involving a universe not in the list of explicit "universes", then that graph should be exactly the transitive closure of the given graph. (Coq may add any constraints to the definition it needs to in order to achieve this; for example, it may augment the initial constraint list with the ones mentioned explicitly) This means, for example, that if you mention a universe without giving any constraints, it should be unconstrained by the other universes you mention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions