diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index 90770dbca3..ad3b0ff8b8 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -249,6 +249,8 @@ open import foundation.lifts-types public open import foundation.limited-principle-of-omniscience public open import foundation.locally-small-types public open import foundation.logical-equivalences public +open import foundation.maps-in-global-subuniverses public +open import foundation.maps-in-subuniverses public open import foundation.maybe public open import foundation.mere-embeddings public open import foundation.mere-equality public diff --git a/src/foundation/cartesian-morphisms-arrows.lagda.md b/src/foundation/cartesian-morphisms-arrows.lagda.md index 1812b64c33..58ea9ebfbb 100644 --- a/src/foundation/cartesian-morphisms-arrows.lagda.md +++ b/src/foundation/cartesian-morphisms-arrows.lagda.md @@ -22,6 +22,7 @@ open import foundation.function-types open import foundation.functoriality-cartesian-product-types open import foundation.functoriality-coproduct-types open import foundation.functoriality-dependent-pair-types +open import foundation.functoriality-fibers-of-maps open import foundation.homotopies-morphisms-arrows open import foundation.identity-types open import foundation.morphisms-arrows @@ -174,6 +175,30 @@ module _ ( is-pullback-cone-fiber f y) ``` +### The induced family of equivalences of fibers of cartesian morphisms of arrows + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} + (f : A → B) (g : X → Y) (h : cartesian-hom-arrow f g) + where + + equiv-fibers-cartesian-hom-arrow : + (b : B) → fiber f b ≃ fiber g (map-codomain-cartesian-hom-arrow f g h b) + equiv-fibers-cartesian-hom-arrow b = + ( map-fiber-vertical-map-cone + ( map-codomain-cartesian-hom-arrow f g h) + ( g) + ( cone-cartesian-hom-arrow f g h) + ( b)) , + ( is-fiberwise-equiv-map-fiber-vertical-map-cone-is-pullback + ( map-codomain-cartesian-hom-arrow f g h) + ( g) + ( cone-cartesian-hom-arrow f g h) + ( is-cartesian-cartesian-hom-arrow f g h) + ( b)) +``` + ### Transposing cartesian morphisms of arrows The {{#concept "transposition" Disambiguation="cartesian morphism of arrows"}} diff --git a/src/foundation/global-subuniverses.lagda.md b/src/foundation/global-subuniverses.lagda.md index cb61c27018..97fa1d116c 100644 --- a/src/foundation/global-subuniverses.lagda.md +++ b/src/foundation/global-subuniverses.lagda.md @@ -67,41 +67,25 @@ record global-subuniverse (α : Level → Level) : UUω where (l1 l2 : Level) → is-closed-under-equiv-subuniverses α subuniverse-global-subuniverse l1 l2 -open global-subuniverse public - -module _ - {α : Level → Level} (P : global-subuniverse α) - where - is-in-global-subuniverse : {l : Level} → UU l → UU (α l) is-in-global-subuniverse {l} X = - is-in-subuniverse (subuniverse-global-subuniverse P l) X + is-in-subuniverse (subuniverse-global-subuniverse l) X + + is-prop-is-in-global-subuniverse : + {l : Level} (X : UU l) → is-prop (is-in-global-subuniverse X) + is-prop-is-in-global-subuniverse {l} X = + is-prop-type-Prop (subuniverse-global-subuniverse l X) type-global-subuniverse : (l : Level) → UU (α l ⊔ lsuc l) type-global-subuniverse l = - type-subuniverse (subuniverse-global-subuniverse P l) + type-subuniverse (subuniverse-global-subuniverse l) inclusion-global-subuniverse : {l : Level} → type-global-subuniverse l → UU l inclusion-global-subuniverse {l} = - inclusion-subuniverse (subuniverse-global-subuniverse P l) -``` + inclusion-subuniverse (subuniverse-global-subuniverse l) -### Maps in a subuniverse - -We say a map is _in_ a global subuniverse if each of its -[fibers](foundation-core.fibers-of-maps.md) is. - -```agda -module _ - {α : Level → Level} (P : global-subuniverse α) - {l1 l2 : Level} {A : UU l1} {B : UU l2} - where - - is-in-map-global-subuniverse : (A → B) → UU (α (l1 ⊔ l2) ⊔ l2) - is-in-map-global-subuniverse f = - (y : B) → - is-in-subuniverse (subuniverse-global-subuniverse P (l1 ⊔ l2)) (fiber f y) +open global-subuniverse public ``` ### The predicate of essentially being in a subuniverse diff --git a/src/foundation/maps-in-global-subuniverses.lagda.md b/src/foundation/maps-in-global-subuniverses.lagda.md new file mode 100644 index 0000000000..c890a5c258 --- /dev/null +++ b/src/foundation/maps-in-global-subuniverses.lagda.md @@ -0,0 +1,106 @@ +# Maps in global subuniverses + +```agda +module foundation.maps-in-global-subuniverses where +``` + +
Imports + +```agda +open import foundation.cartesian-morphisms-arrows +open import foundation.dependent-pair-types +open import foundation.fibers-of-maps +open import foundation.functoriality-fibers-of-maps +open import foundation.global-subuniverses +open import foundation.unit-type +open import foundation.universe-levels + +open import foundation-core.equivalences +open import foundation-core.propositions +``` + +
+ +## Idea + +Given a [global subuniverse](foundation.global-subuniverses.md) `𝒫`, a map +`f : A → B` is said to be a +{{#concept "map in `𝒫`" Disambiguation="in a global subuniverse" Agda=is-in-global-subuniverse-map}}, +or a **`𝒫`-map**, if its [fibers](foundation-core.fibers-of-maps.md) are in `𝒫`. + +## Definitions + +### The predicate on maps of being in a global subuniverse + +```agda +module _ + {α : Level → Level} (𝒫 : global-subuniverse α) + {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) + where + + is-in-global-subuniverse-map : UU (α (l1 ⊔ l2) ⊔ l2) + is-in-global-subuniverse-map = + (b : B) → is-in-global-subuniverse 𝒫 (fiber f b) + + is-prop-is-in-global-subuniverse-map : is-prop is-in-global-subuniverse-map + is-prop-is-in-global-subuniverse-map = + is-prop-Π (λ b → is-prop-is-in-global-subuniverse 𝒫 (fiber f b)) + + is-in-global-subuniverse-map-Prop : Prop (α (l1 ⊔ l2) ⊔ l2) + is-in-global-subuniverse-map-Prop = + ( is-in-global-subuniverse-map , is-prop-is-in-global-subuniverse-map) +``` + +## Properties + +### A type is in `𝒫` if and only if its terminal projection is in `𝒫` + +```agda +module _ + {α : Level → Level} (𝒫 : global-subuniverse α) + {l1 : Level} {A : UU l1} + where + + is-in-global-subuniverse-is-in-global-subuniverse-terminal-map : + is-in-global-subuniverse-map 𝒫 (terminal-map A) → + is-in-global-subuniverse 𝒫 A + is-in-global-subuniverse-is-in-global-subuniverse-terminal-map H = + is-closed-under-equiv-global-subuniverse 𝒫 l1 l1 + ( fiber (terminal-map A) star) + ( A) + ( equiv-fiber-terminal-map star) + ( H star) + + is-in-global-subuniverse-terminal-map-is-in-global-subuniverse : + is-in-global-subuniverse 𝒫 A → + is-in-global-subuniverse-map 𝒫 (terminal-map A) + is-in-global-subuniverse-terminal-map-is-in-global-subuniverse H u = + is-closed-under-equiv-global-subuniverse 𝒫 l1 l1 + ( A) + ( fiber (terminal-map A) u) + ( inv-equiv-fiber-terminal-map u) + ( H) +``` + +### Closure under base change + +Maps in `𝒫` are closed under base change. + +```agda +module _ + {α : Level → Level} (𝒫 : global-subuniverse α) + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (f : A → B) (g : C → D) + where + + is-in-global-subuniverse-map-base-change : + is-in-global-subuniverse-map 𝒫 f → + cartesian-hom-arrow g f → + is-in-global-subuniverse-map 𝒫 g + is-in-global-subuniverse-map-base-change F α d = + is-closed-under-equiv-global-subuniverse 𝒫 (l1 ⊔ l2) (l3 ⊔ l4) + ( fiber f (map-codomain-cartesian-hom-arrow g f α d)) + ( fiber g d) + ( inv-equiv (equiv-fibers-cartesian-hom-arrow g f α d)) + ( F (map-codomain-cartesian-hom-arrow g f α d)) +``` diff --git a/src/foundation/maps-in-subuniverses.lagda.md b/src/foundation/maps-in-subuniverses.lagda.md new file mode 100644 index 0000000000..54aab010e1 --- /dev/null +++ b/src/foundation/maps-in-subuniverses.lagda.md @@ -0,0 +1,38 @@ +# Maps in subuniverses + +```agda +module foundation.maps-in-subuniverses where +``` + +
Imports + +```agda +open import foundation.subuniverses +open import foundation.universe-levels + +open import foundation-core.fibers-of-maps +``` + +
+ +## Idea + +Given a [subuniverse](foundation.subuniverses.md) `𝒫`, a map `f : A → B` is said +to be a +{{#concept "map in `𝒫`" Disambiguation="in a subuniverse" Agda=is-in-subuniverse-map}}, +or a **`𝒫`-map**, if its [fibers](foundation-core.fibers-of-maps.md) are in `𝒫`. + +## Definitions + +### The predicate on maps of being in a subuniverse + +```agda +is-in-subuniverse-map : + {l1 l2 l3 : Level} (P : subuniverse (l1 ⊔ l2) l3) {A : UU l1} {B : UU l2} → + (A → B) → UU (l2 ⊔ l3) +is-in-subuniverse-map P {A} {B} f = (b : B) → is-in-subuniverse P (fiber f b) +``` + +## See also + +- [Maps in global subuniverses](foundation.maps-in-global-subuniverses.md) diff --git a/src/foundation/regensburg-extension-fundamental-theorem-of-identity-types.lagda.md b/src/foundation/regensburg-extension-fundamental-theorem-of-identity-types.lagda.md index 6c408e63e6..4de8f33103 100644 --- a/src/foundation/regensburg-extension-fundamental-theorem-of-identity-types.lagda.md +++ b/src/foundation/regensburg-extension-fundamental-theorem-of-identity-types.lagda.md @@ -24,6 +24,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.inhabited-types open import foundation.logical-equivalences +open import foundation.maps-in-subuniverses open import foundation.propositional-truncations open import foundation.separated-types open import foundation.subuniverses @@ -170,13 +171,14 @@ module _ ```agda module _ {l1 l2 : Level} (k : 𝕋) - {A : UU l1} (a : A) {B : A → UU l2} (H : is-0-connected A) + {A : UU l1} (a : A) {B : A → UU l2} where forward-implication-extended-fundamental-theorem-id-connected : + is-0-connected A → ( (f : (x : A) → (a = x) → B x) → (x : A) → is-connected-map k (f x)) → is-inhabited (B a) → is-connected (succ-𝕋 k) (Σ A B) - forward-implication-extended-fundamental-theorem-id-connected K L = + forward-implication-extended-fundamental-theorem-id-connected H K L = is-connected-succ-is-connected-eq ( map-trunc-Prop (fiber-inclusion B a) L) ( forward-implication-extended-fundamental-theorem-id @@ -199,7 +201,7 @@ module _ ((f : (x : A) → (a = x) → B x) (x : A) → is-connected-map k (f x)) ↔ is-connected (succ-𝕋 k) (Σ A B) pr1 (extended-fundamental-theorem-id-connected H K) L = - forward-implication-extended-fundamental-theorem-id-connected L K + forward-implication-extended-fundamental-theorem-id-connected H L K pr2 (extended-fundamental-theorem-id-connected H K) = backward-implication-extended-fundamental-theorem-id-connected ``` diff --git a/src/foundation/subuniverses.lagda.md b/src/foundation/subuniverses.lagda.md index 2b63c70f52..ddeb1e28d6 100644 --- a/src/foundation/subuniverses.lagda.md +++ b/src/foundation/subuniverses.lagda.md @@ -77,15 +77,6 @@ module _ emb-inclusion-subuniverse = emb-subtype P ``` -### Maps in a subuniverse - -```agda -is-in-subuniverse-map : - {l1 l2 l3 : Level} (P : subuniverse (l1 ⊔ l2) l3) {A : UU l1} {B : UU l2} → - (A → B) → UU (l2 ⊔ l3) -is-in-subuniverse-map P {A} {B} f = (b : B) → is-in-subuniverse P (fiber f b) -``` - ### The predicate of essentially being in a subuniverse ```agda