Martin Escardo Properties of the type of truth values. \begin{code} {-# OPTIONS --safe --without-K #-} module UF.SubtypeClassifier-Properties where open import MLTT.Spartan open import UF.Base open import UF.Embeddings open import UF.Equiv open import UF.EquivalenceExamples open import UF.FunExt open import UF.Hedberg open import UF.Lower-FunExt open import UF.Sets open import UF.Subsingletons open import UF.Subsingletons-FunExt open import UF.SubtypeClassifier ฮฉ-is-set : funext ๐ค ๐ค โ propext ๐ค โ is-set (ฮฉ ๐ค) ฮฉ-is-set {๐ค} fe pe = Id-collapsibles-are-sets pc where A : (p q : ฮฉ ๐ค) โ ๐ค ฬ A p q = (p holds โ q holds) ร (q holds โ p holds) A-is-prop : (p q : ฮฉ ๐ค) โ is-prop (A p q) A-is-prop p q = ฮฃ-is-prop (ฮ -is-prop fe (ฮป _ โ holds-is-prop q)) (ฮป _ โ ฮ -is-prop fe (ฮป _ โ holds-is-prop p)) g : (p q : ฮฉ ๐ค) โ p ๏ผ q โ A p q g p q e = (b , c) where a : p holds ๏ผ q holds a = ap _holds e b : p holds โ q holds b = transport id a c : q holds โ p holds c = transport id (a โปยน) h : (p q : ฮฉ ๐ค) โ A p q โ p ๏ผ q h p q (u , v) = ฮฉ-extensionality pe fe u v f : (p q : ฮฉ ๐ค) โ p ๏ผ q โ p ๏ผ q f p q e = h p q (g p q e) wconstant-f : (p q : ฮฉ ๐ค) (d e : p ๏ผ q) โ f p q d ๏ผ f p q e wconstant-f p q d e = ap (h p q) (A-is-prop p q (g p q d) (g p q e)) pc : {p q : ฮฉ ๐ค} โ ฮฃ f ๊ (p ๏ผ q โ p ๏ผ q) , wconstant f pc {p} {q} = (f p q , wconstant-f p q) equal-โค-โ : propext ๐ค โ funext ๐ค ๐ค โ (p : ฮฉ ๐ค) โ (p ๏ผ โค) โ (p holds) equal-โค-โ {๐ค} pe fe p = logically-equivalent-props-are-equivalent (ฮฉ-is-set fe pe) (holds-is-prop p) (equal-โค-gives-holds p) (holds-gives-equal-โค pe fe p) equal-โฅ-โ : propext ๐ค โ funext ๐ค ๐ค โ (p : ฮฉ ๐ค) โ (p ๏ผ โฅ) โ ยฌ (p holds) equal-โฅ-โ {๐ค} pe fe p = logically-equivalent-props-are-equivalent (ฮฉ-is-set fe pe) (negations-are-props (lower-funext ๐ค ๐ค fe)) (equal-โฅ-gives-fails p) (fails-gives-equal-โฅ pe fe p) ๐-to-ฮฉ : ๐ โ ฮฉ ๐ค ๐-to-ฮฉ โ = โฅ ๐-to-ฮฉ โ = โค module _ (fe : funext ๐ค ๐ค) (pe : propext ๐ค) where ๐-to-ฮฉ-is-embedding : is-embedding (๐-to-ฮฉ {๐ค}) ๐-to-ฮฉ-is-embedding _ (โ , p) (โ , q) = to-ฮฃ-๏ผ (refl , ฮฉ-is-set fe pe p q) ๐-to-ฮฉ-is-embedding _ (โ , p) (โ , q) = ๐-elim (โฅ-is-not-โค (p โ q โปยน)) ๐-to-ฮฉ-is-embedding _ (โ , p) (โ , q) = ๐-elim (โฅ-is-not-โค (q โ p โปยน)) ๐-to-ฮฉ-is-embedding _ (โ , p) (โ , q) = to-ฮฃ-๏ผ (refl , ฮฉ-is-set fe pe p q) ๐-to-ฮฉ-fiber : (p : ฮฉ ๐ค) โ fiber ๐-to-ฮฉ p โ (ยฌ (p holds) + p holds) ๐-to-ฮฉ-fiber p = fiber (๐-to-ฮฉ {๐ค}) p โโจ โ-refl _ โฉ (ฮฃ n ๊ ๐ , ๐-to-ฮฉ {๐ค} n ๏ผ p ) โโจ Iโ โฉ (โฅ ๏ผ p) + (โค ๏ผ p) โโจ Iโ โฉ (ยฌ (p holds) + p holds) โ where Iโ = alternative-+ Iโ = +-cong (๏ผ-flip โ equal-โฅ-โ pe fe p) (๏ผ-flip โ equal-โค-โ pe fe p) \end{code}