Subsingletons-Properties
Martin Escardo{-# OPTIONS --safe --without-K #-} module UF.Subsingletons-Properties where open import MLTT.Spartan open import UF.Hedberg open import UF.Sets open import UF.Subsingletons props-are-Id-collapsible : {X : 𝓤 ̇ } → is-prop X → Id-collapsible X props-are-Id-collapsible h {x} {y} = (λ p → h x y) , (λ p q → refl) props-are-sets : {X : 𝓤 ̇ } → is-prop X → is-set X props-are-sets h = Id-collapsibles-are-sets (props-are-Id-collapsible h) singletons-are-sets : {X : 𝓤 ̇ } → is-singleton X → is-set X singletons-are-sets i = props-are-sets (singletons-are-props i) identifications-in-props-are-refl : {X : 𝓤 ̇ } (i : is-prop X) (x : X) → i x x = refl identifications-in-props-are-refl i x = props-are-sets i (i x x) refl transport-over-prop : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {x : X} {y : Y x} (i : is-prop X) → transport Y (i x x) y = y transport-over-prop {𝓤} {𝓥} {X} {Y} {x} {y} i = ap (λ - → transport Y - y) (identifications-in-props-are-refl i x) transport-over-prop' : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {x : X} {y : Y x} (i : is-prop X) (p : x = x) → transport Y p y = y transport-over-prop' {𝓤} {𝓥} {X} {Y} {x} {y} i p = ap (λ - → transport Y - y) (props-are-sets i p refl)Moved here from InjectiveTypes.ExamplesCounterExamplesArticle on 22 June 2026 by Tom de Jong.DNS-for-prop-indexed-families : (P : 𝓣 ̇ ) (X : P → 𝓤 ̇ ) → is-prop P → (Π p ꞉ P , ¬¬ X p) → ¬¬ Π X DNS-for-prop-indexed-families P X i φ ν = ν III where I : (p : P) → ¬ X p I p x = ν (λ p' → transport X (i p p') x) II : ¬ P II p = φ p (I p) III : (p : P) → X p III p = 𝟘-elim (II p)