The large locale of subtypes
Content created by Egbert Rijke, Fredrik Bakke, Julian KG, Maša Žaucer, fernabnor, Gregor Perčič and louismntnu.
Created on 2023-05-09.
Last modified on 2024-04-20.
module foundation.large-locale-of-subtypes where
Imports
open import foundation.large-binary-relations open import foundation.large-locale-of-propositions open import foundation.universe-levels open import foundation-core.identity-types open import foundation-core.sets open import order-theory.greatest-lower-bounds-large-posets open import order-theory.large-locales open import order-theory.large-meet-semilattices open import order-theory.large-posets open import order-theory.large-suplattices open import order-theory.least-upper-bounds-large-posets open import order-theory.powers-of-large-locales
Idea
The large locale of subtypes of a type A
is the
power locale A → Prop-Large-Locale
.
Definition
module _ {l1 : Level} (A : UU l1) where powerset-Large-Locale : Large-Locale (λ l2 → l1 ⊔ lsuc l2) (λ l2 l3 → l1 ⊔ l2 ⊔ l3) lzero powerset-Large-Locale = power-Large-Locale A Prop-Large-Locale large-poset-powerset-Large-Locale : Large-Poset (λ l2 → l1 ⊔ lsuc l2) (λ l2 l3 → l1 ⊔ l2 ⊔ l3) large-poset-powerset-Large-Locale = large-poset-Large-Locale powerset-Large-Locale set-powerset-Large-Locale : (l : Level) → Set (l1 ⊔ lsuc l) set-powerset-Large-Locale = set-Large-Locale powerset-Large-Locale type-powerset-Large-Locale : (l : Level) → UU (l1 ⊔ lsuc l) type-powerset-Large-Locale = type-Large-Locale powerset-Large-Locale is-set-type-powerset-Large-Locale : {l : Level} → is-set (type-powerset-Large-Locale l) is-set-type-powerset-Large-Locale = is-set-type-Large-Locale powerset-Large-Locale large-meet-semilattice-powerset-Large-Locale : Large-Meet-Semilattice (λ l2 → l1 ⊔ lsuc l2) (λ l2 l3 → l1 ⊔ l2 ⊔ l3) large-meet-semilattice-powerset-Large-Locale = large-meet-semilattice-Large-Locale powerset-Large-Locale large-suplattice-powerset-Large-Locale : Large-Suplattice (λ l2 → l1 ⊔ lsuc l2) (λ l2 l3 → l1 ⊔ l2 ⊔ l3) lzero large-suplattice-powerset-Large-Locale = large-suplattice-Large-Locale powerset-Large-Locale module _ {l1 : Level} {A : UU l1} where leq-prop-powerset-Large-Locale : Large-Relation-Prop ( λ l2 l3 → l1 ⊔ l2 ⊔ l3) ( type-powerset-Large-Locale A) leq-prop-powerset-Large-Locale = leq-prop-Large-Locale (powerset-Large-Locale A) leq-powerset-Large-Locale : Large-Relation ( λ l2 l3 → l1 ⊔ l2 ⊔ l3) ( type-powerset-Large-Locale A) leq-powerset-Large-Locale = leq-Large-Locale (powerset-Large-Locale A) is-prop-leq-powerset-Large-Locale : is-prop-Large-Relation ( type-powerset-Large-Locale A) ( leq-powerset-Large-Locale) is-prop-leq-powerset-Large-Locale = is-prop-leq-Large-Locale (powerset-Large-Locale A) refl-leq-powerset-Large-Locale : is-reflexive-Large-Relation ( type-powerset-Large-Locale A) ( leq-powerset-Large-Locale) refl-leq-powerset-Large-Locale = refl-leq-Large-Locale (powerset-Large-Locale A) antisymmetric-leq-powerset-Large-Locale : is-antisymmetric-Large-Relation ( type-powerset-Large-Locale A) ( leq-powerset-Large-Locale) antisymmetric-leq-powerset-Large-Locale = antisymmetric-leq-Large-Locale (powerset-Large-Locale A) transitive-leq-powerset-Large-Locale : is-transitive-Large-Relation ( type-powerset-Large-Locale A) ( leq-powerset-Large-Locale) transitive-leq-powerset-Large-Locale = transitive-leq-Large-Locale (powerset-Large-Locale A) has-meets-powerset-Large-Locale : has-meets-Large-Poset (large-poset-powerset-Large-Locale A) has-meets-powerset-Large-Locale = has-meets-Large-Locale (powerset-Large-Locale A) meet-powerset-Large-Locale : {l2 l3 : Level} → type-powerset-Large-Locale A l2 → type-powerset-Large-Locale A l3 → type-powerset-Large-Locale A (l2 ⊔ l3) meet-powerset-Large-Locale = meet-Large-Locale (powerset-Large-Locale A) is-greatest-binary-lower-bound-meet-powerset-Large-Locale : {l2 l3 : Level} (x : type-powerset-Large-Locale A l2) (y : type-powerset-Large-Locale A l3) → is-greatest-binary-lower-bound-Large-Poset ( large-poset-powerset-Large-Locale A) ( x) ( y) ( meet-powerset-Large-Locale x y) is-greatest-binary-lower-bound-meet-powerset-Large-Locale = is-greatest-binary-lower-bound-meet-Large-Locale (powerset-Large-Locale A) is-large-suplattice-powerset-Large-Locale : is-large-suplattice-Large-Poset lzero (large-poset-powerset-Large-Locale A) is-large-suplattice-powerset-Large-Locale = is-large-suplattice-Large-Locale (powerset-Large-Locale A) sup-powerset-Large-Locale : {l2 l3 : Level} {J : UU l2} (x : J → type-powerset-Large-Locale A l3) → type-powerset-Large-Locale A (l2 ⊔ l3) sup-powerset-Large-Locale = sup-Large-Locale (powerset-Large-Locale A) is-least-upper-bound-sup-powerset-Large-Locale : {l2 l3 : Level} {J : UU l2} (x : J → type-powerset-Large-Locale A l3) → is-least-upper-bound-family-of-elements-Large-Poset ( large-poset-powerset-Large-Locale A) ( x) ( sup-powerset-Large-Locale x) is-least-upper-bound-sup-powerset-Large-Locale = is-least-upper-bound-sup-Large-Locale (powerset-Large-Locale A) distributive-meet-sup-powerset-Large-Locale : {l2 l3 l4 : Level} (x : type-powerset-Large-Locale A l2) {J : UU l3} (y : J → type-powerset-Large-Locale A l4) → meet-powerset-Large-Locale x (sup-powerset-Large-Locale y) = sup-powerset-Large-Locale (λ j → meet-powerset-Large-Locale x (y j)) distributive-meet-sup-powerset-Large-Locale = distributive-meet-sup-Large-Locale (powerset-Large-Locale A)
Recent changes
- 2024-04-20. Fredrik Bakke. chore: Remove redundant parentheses in universe level expressions (#1125).
- 2024-04-11. Fredrik Bakke. Strict symmetrizations of binary relations (#1025).
- 2023-09-21. Egbert Rijke and Gregor Perčič. The classification of cyclic rings (#757).
- 2023-09-15. Egbert Rijke. update contributors, remove unused imports (#772).
- 2023-06-25. Fredrik Bakke, louismntnu, fernabnor, Egbert Rijke and Julian KG. Posets are categories, and refactor binary relations (#665).