[Agda] [newbie] universe levels and BUILTIN EQUALITY

Stefan Monnier monnier at iro.umontreal.ca
Fri Jan 6 22:29:59 CET 2017


Andreas Abel writes:
> I think the BUILTIN EQUALITY should be relaxed to allow your definition, and
> also a non-universe-polymorphic one (which some years ago was possible).

If by "your definition" you mean

    data _≡_ {a} {A : Set a} (x : A) : A → Set₀
    where refl : x ≡ x

then it seems to be incompatible with univalence, at least IIUC what
https://github.com/vladimirias/Foundations/blob/master/Coq_patches/README says.

Not sure what you mean by "a non-universe-polymorphic one".

Thorsten Altenkirch writes:
> At least in the case of equality this can be justified by the HoTT
> definition of equality between types at level n to be equivalent to
> equivalence (i.e. there exists a function which is an equivalence) which
> is at the same level.

But, IIUC this justifies an equality such as:

    data _≡_ {a} (x : Set a) : Set a → Set a
    where refl : x ≡ x

i.e. when the equality is between *types*, but not a more general one like

    data _≡_ {a} {A : Set a} (x : A) : A → Set₀
    where refl : x ≡ x

This said, I'm really not knowledgeable about this, I'm just trying to
figure out which rules are valid (and when).  So I'm pointing these
things out to try and get you to tell me what is right ;-)


        Stefan



More information about the Agda mailing list