fix function η with subsingleton types

This commit is contained in:
rhiannon morris 2024-05-12 20:29:09 +02:00
parent c9f66bb6af
commit d2a117fe61
4 changed files with 54 additions and 2 deletions

View file

@ -0,0 +1,33 @@
-- inspired by https://github.com/agda/agda/issues/2556
postulate0 A : ★
def0 ZZ : ★ = 0 ≡ 0 :
def reflZ : ZZ = δ _ ⇒ 0
namespace erased {
def0 ZZA : ★ = 0.ZZ → A
def propeq : (x : ZZA) → x ≡ (λ _ ⇒ x reflZ) : ZZA =
λ x ⇒ δ _ ⇒ x
def defeq : 0.(P : ZZA → ★) → 0.(x : ZZA) → P (λ _ ⇒ x reflZ) → P x =
λ P x p ⇒ p
}
namespace unrestricted {
def0 ZZA : ★ = ω.ZZ → A
def defeq : 0.(P : ZZA → ★) → 0.(x : ZZA) → P (λ _ ⇒ x reflZ) → P x =
λ P x p ⇒ p
}
namespace linear {
def0 ZZA : ★ = 1.ZZ → A
#[fail]
def defeq : 0.(P : ZZA → ★) → 0.(x : ZZA) → P (λ _ ⇒ x reflZ) → P x =
λ P x p ⇒ p
}