{-# OPTIONS --cubical --safe --postfix-projections #-} module HITs.PropositionalTruncation.Properties where open import HITs.PropositionalTruncation open import Prelude open import Data.Empty.Properties using (isProp⊥) refute-trunc : ¬ A → ¬ ∥ A ∥ refute-trunc = rec isProp⊥ recompute : Dec A → ∥ A ∥ → A recompute (yes p) _ = p recompute (no ¬p) p = ⊥-elim (rec isProp⊥ ¬p p) open import HITs.PropositionalTruncation.Sugar bij-iso : A ↔ B → ∥ A ∥ ⇔ ∥ B ∥ bij-iso A↔B .fun = _∥$∥_ (A↔B .fun) bij-iso A↔B .inv = _∥$∥_ (A↔B .inv) bij-iso A↔B .rightInv x = squash _ x bij-iso A↔B .leftInv x = squash _ x bij-eq : A ↔ B → ∥ A ∥ ≡ ∥ B ∥ bij-eq = isoToPath ∘ bij-iso