module Data.Irr whereStrict propositional truncationsπ
private variable
β : Level
A : Type βIn Agda, itβs possible to turn any type into one that definitionally has at most one inhabitant. We do this using a record containing an irrelevant field.
record Irr {β} (A : Type β) : Type β where
constructor forget
field
.lower : AThe most important property of this type is that, given any
in
the constant path refl checks at
type
instance
H-Level-Irr : β {n} β H-Level (Irr A) (suc n)
H-Level-Irr {n} = prop-instance Ξ» _ _ β reflinstance
make-irr : β {β} {A : Type β} β¦ _ : A β¦ β Irr A
make-irr β¦ x β¦ = forget x
{-# INCOHERENT make-irr #-}
Map-Irr : Map (eff Irr)
Map-Irr = record { map = Ξ» where f (forget x) β forget (f x) }