[Agda] Proving equality of levels with heterogeneous equality.

Stefan Monnier monnier at iro.umontreal.ca
Sun Mar 10 19:18:31 CET 2019


> It's not possible to prove this in Agda because the pattern matching
> unification algorithm only deals with data constructors (such as 'zero' or
> 'suc'), not with type constructors (such as 'Nat' or 'Set'). I don't
> immediately see if your particular lemma here would break soundness, but
> that doesn't say much.

I'm not surprised it's not possible, but I'm surprised by
this explanation.  I'd have thought the first reason is that

    ℓ₁ ≡ ℓ₂

is ill-typed because

    ℓ₁, ℓ₂ : Level
    (≡) : {ℓ : Level} → {A : Set ℓ} → A → A → Set ℓ

and there is no ℓ for which `Level : Set ℓ`


        Stefan



More information about the Agda mailing list