module foundations.propositional-truncation where
open import foundations.universe open import foundations.identity-type open import foundations.proposition
Propositional truncationは素のAgdaでは構成できないので、その型のみを定義する。
private variable ℓ : Level A : Type ℓ record PropTrunc : Typeω where field ∥_∥ : Type ℓ → Type ℓ isProp∥∥ : isProp ∥ A ∥ ∣_∣ : A → ∥ A ∥ rec : ∀ {P : Type ℓ} → isProp P → (A → P) → ∥ A ∥ → P β : ∀ (P : Type ℓ) (isPropP : isProp P) (x : A) (f : A → P) → rec isPropP f ∣ x ∣ = f x β P isPropP x f = isPropP _ (f x)
β
がjudgmental equalityではないので、これはweak propositional truncationとも呼ばれる。