Tom de Jong 22nd May 2019 Various lemmas for working with partial elements of a type. Includes an alternative partial order on the lifting of a type without relying on full univalence. Moreover, there are some lemmas on the Kleisli extension for the lifting monad. In particular, (Ξ· β f) β― is pointwise equal to πΜ f. Added 22 June 2024. Excluded middle holds if and only if the lifting discretely adds a single point, viz. π X β π + X. \begin{code} {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan open import UF.FunExt open import UF.Subsingletons module Lifting.Miscelanea-PropExt-FunExt (π£ : Universe) (pe : propext π£) (fe : Fun-Ext) where open import Lifting.Construction π£ open import Lifting.IdentityViaSIP π£ open import Lifting.Miscelanea π£ open import Lifting.Monad π£ open import NotionsOfDecidability.DecidableClassifier open import UF.Base open import UF.ClassicalLogic open import UF.Equiv open import UF.EquivalenceExamples open import UF.Retracts open import UF.Sets open import UF.Sets-Properties open import UF.Subsingletons-FunExt open import UF.Subsingletons-Properties open import UF.SubtypeClassifier hiding (β₯) \end{code} Assuming propositional extensionality for π£ and function extensionality, we can prove that the lifting of a set is again a set. \begin{code} module _ {π€ : Universe} {X : π€ Μ } where open import Lifting.UnivalentPrecategory π£ X lifting-of-set-is-set : is-set X β is-set (π X) lifting-of-set-is-set i {l} {m} p q = retract-of-prop r j p q where r : Ξ£ has-section r = (to-Ξ£-οΌ , from-Ξ£-οΌ , tofrom-Ξ£-οΌ) j : is-prop (Ξ£ (Ξ» pβ β transport (Ξ» P β (P β X) Γ is-prop P) pβ (prβ l) οΌ prβ m)) j = Ξ£-is-prop (identifications-with-props-are-props pe fe (is-defined m) (being-defined-is-prop m) (is-defined l)) (Ξ» d β Γ-is-set (Ξ -is-set fe Ξ» _ β i) (props-are-sets (being-prop-is-prop fe))) \end{code} We prefer to work with β' as it yields identifications, which can be transported and allow for equational reasoning with οΌβ¨ β©. Moreover, it has the right universe level for use in the Scott model of PCF. This duplicates some material from LiftingUnivalentPrecategory. However, we only assume propositional extensionality and function extensionality here. We do not rely on full univalence. \begin{code} _β'_ : (l m : π X) β π€ β π£ βΊ Μ l β' m = is-defined l β l οΌ m β-to-β' : {l m : π X} β l β m β l β' m β-to-β' {l} {m} a d = β-anti pe fe fe (a , b) where b : m β l b = c , v where c : is-defined m β is-defined l c = Ξ» _ β d v : (e : is-defined m) β value m e οΌ value l d v e = value m e οΌβ¨ ap (value m) (being-defined-is-prop m e (prβ a d)) β© value m (prβ a d) οΌβ¨ g β»ΒΉ β© value l d β where h : is-defined l β is-defined m h = prβ a g : value l d οΌ value m (prβ a d) g = prβ a d β'-to-β : {l m : π X} β l β' m β l β m β'-to-β {l} {m} a = β e ββ»ΒΉ g where e : (l β m) β (is-defined l β l β m) e = β-open fe fe l m g : is-defined l β l β m g d = transport (_β_ l) (a d) (π-id l) β'-is-reflexive : {l : π X} β l β' l β'-is-reflexive {l} d = refl β'-is-transitive : {l m n : π X} β l β' m β m β' n β l β' n β'-is-transitive {l} {m} {n} a b d = l οΌβ¨ a d β© m οΌβ¨ b (οΌ-to-is-defined (a d) d) β© n β β'-is-antisymmetric : {l m : π X} β l β' m β m β' l β l οΌ m β'-is-antisymmetric a b = β-anti pe fe fe (β'-to-β a , β'-to-β b) β'-prop-valued : is-set X β {l m : π X} β is-prop (l β' m) β'-prop-valued s {l} {m} = Ξ -is-prop fe Ξ» (d : is-defined l) β lifting-of-set-is-set s not-defined-β₯-οΌ : {l : π X} β Β¬ (is-defined l) β l οΌ β₯ not-defined-β₯-οΌ {l} nd = β-anti pe fe fe (((Ξ» d β π-elim (nd d)) , (Ξ» d β π-elim (nd d))) , π-elim , π-induction) is-defined-Ξ·-οΌ : {l : π X} (d : is-defined l) β l οΌ Ξ· (value l d) is-defined-Ξ·-οΌ {l} d = β-to-β' ((Ξ» _ β β) , Ξ» (e : is-defined l) β value-is-constant l e d) d οΌ-to-β : {l m : π X} β l οΌ m β l β m οΌ-to-β {l} {m} refl = β-refl (is-defined l) , refl β-to-οΌ : {l m : π X} β l β m β l οΌ m β-to-οΌ {l} {m} (deq , veq) = β-anti pe fe fe (a , b) where a : l β m a = β deq β , happly veq b : m β l b = (β deq ββ»ΒΉ , h) where h : (d : is-defined m) β value m d οΌ value l (β deq ββ»ΒΉ d) h d = value m d οΌβ¨ value-is-constant m d d' β© value m d' οΌβ¨ (happly veq e)β»ΒΉ β© value l e β where e : is-defined l e = β deq ββ»ΒΉ d d' : is-defined m d' = β deq β e module _ {π€ : Universe} {X : π€ Μ } {π₯ : Universe} {Y : π₯ Μ } where β―-is-defined : (f : X β π Y) (l : π X) β is-defined ((f β―) l) β is-defined l β―-is-defined f l = prβ β―-on-total-element : (f : X β π Y) {l : π X} (d : is-defined l) β (f β―) l οΌ f (value l d) β―-on-total-element f {l} d = (f β―) l οΌβ¨ ap (f β―) (is-defined-Ξ·-οΌ d) β© (f β―) (Ξ· (value l d)) οΌβ¨ β-to-οΌ (Kleisli-Lawβ f (value l d)) β© f (value l d) β open import Lifting.UnivalentPrecategory π£ Y πΜ-β―-βΌ : (f : X β Y) β (Ξ· β f) β― βΌ πΜ f πΜ-β―-βΌ f l = β-anti pe fe fe (a , b) where a : ((Ξ· β f) β―) l β (πΜ f) l a = p , q where p : is-defined (((Ξ· β f) β―) l) β is-defined (πΜ f l) p = β―-is-defined (Ξ· β f) l q : (d : is-defined (((Ξ· β f) β―) l)) β value (((Ξ· β f) β―) l) d οΌ value (πΜ f l) (β―-is-defined (Ξ· β f) l d) q d = refl b : (πΜ f) l β ((Ξ· β f) β―) l b = r , s where r : is-defined (πΜ f l) β is-defined (((Ξ· β f) β―) l) r d = d , β s : (d : is-defined (πΜ f l)) β value (πΜ f l) d οΌ value (((Ξ· β f) β―) l) (r d) s d = refl \end{code} Added 22 June 2024. Excluded middle holds if and only if the lifting discretely adds a single point, viz. π X β π + X. \begin{code} lifting-of-π-is-Ξ© : π (π{π€}) β Ξ© π£ lifting-of-π-is-Ξ© = π π ββ¨ Ξ£-cong (Ξ» P β Γ-cong (βπ fe) ππ) β© (Ξ£ P κ π£ Μ , π Γ is-prop P) ββ¨ Ξ£-cong (Ξ» P β π-lneutral) β© Ξ© π£ β EM-gives-classical-lifting : (X : π€ Μ ) β EM π£ β π X β (π{π€} + X) EM-gives-classical-lifting {π€} X em = π X ββ¨ I β© (Ξ£ P κ π£ Μ , is-prop P Γ (P β X)) ββ¨ II β© (Ξ£ P κ Ξ© π£ , (P holds β X)) ββ¨ III β© (Ξ£ b κ π , (ΞΉ b holds β X)) ββ¨ IV β© (Ξ£ b κ π + π , (ΞΉ (e b) holds β X)) ββ¨ V β© (π Γ (π β X)) + (π Γ (π β X)) ββ¨ VI β© (π β X) + (π β X) ββ¨ VII β© (π + X) β where ΞΉ : π β Ξ© π£ ΞΉ = inclusion-of-booleans e : π{π€} + π{π€} β π e = β π-β-π+π ββ»ΒΉ I = Ξ£-cong (Ξ» _ β Γ-comm) II = β-sym Ξ£-assoc III = β-sym (Ξ£-change-of-variable-β _ (EM-gives-π-is-the-type-of-propositions fe pe em)) IV = β-sym (Ξ£-change-of-variable-β _ (β-sym π-β-π+π)) V = β-sym (Ξ£+-split π π (Ξ» b β ΞΉ (e b) holds β X)) VI = +-cong π-lneutral π-lneutral VII = +-cong (β-sym (πβ fe)) (β-sym (πβ fe)) classical-lifting-of-π-gives-EM : π (π{π€}) β (π{π€} + π{π€}) β EM π£ classical-lifting-of-π-gives-EM e = π-is-the-type-of-propositions-gives-EM fe pe I where I = π ββ¨ π-β-π+π β© π + π ββ¨ β-sym e β© π π ββ¨ lifting-of-π-is-Ξ© β© Ξ© π£ β classical-lifting-gives-EM : ((X : π€ Μ ) β π X β π{π€} + X) β EM π£ classical-lifting-gives-EM h = classical-lifting-of-π-gives-EM (h π) \end{code}