[Agda] Matching on crisp refl leads to error

Felix Cherubini felix.wellen at posteo.de
Mon Aug 1 15:25:43 CEST 2022


Hi all,

I noticed that the latest master of agda does not accept the following:


{-# OPTIONS --cubical #-}
open import Agda.Primitive

data ♭ (@♭ A : Set) : Set where
     _^♭ : (@♭ a : A) → ♭ A

data _≡'_ {A : Set} : A → A → Set where
   refl' : {x : A} → x ≡' x

♭≡'→≡'♭ : {@♭ A : Set} {@♭ u v : A} → ♭ (u ≡' v) → (u ^♭) ≡' (v ^♭)
♭≡'→≡'♭ (refl' ^♭) = refl'


With the error message:


/home/felix/FindBug2.agda:11,1-27
Agda.Primitive.Cubical.primTransp
(λ i →
    (u ^♭) ≡'
    (Agda.Primitive.Cubical.primTransp
     (λ i₁ → Agda.Primitive.Cubical.PathP (λ i₂ → A) (x i₁) u) φ x₁
     (Agda.Primitive.Cubical.primINeg i)
     ^♭))
φ (♭≡'→≡'♭ (refl' ^♭)) is not usable at the required modality .
when checking the definition of ♭≡'→≡'♭


Is it a bug or intentional?
The same code checked in Agda 2.6.2.2 and 2.6.2. Matching in the same 
way on constructors of non-dependent inductive types is accepted.

All the best,

Felix


More information about the Agda mailing list