Closure operators on large posets
Content created by Egbert Rijke, Fredrik Bakke, Julian KG, Maša Žaucer, fernabnor, Gregor Perčič and louismntnu.
Created on 2023-06-08.
Last modified on 2024-04-11.
module order-theory.closure-operators-large-posets where
Imports
open import foundation.identity-types open import foundation.large-binary-relations open import foundation.propositions open import foundation.sets open import foundation.universe-levels open import order-theory.large-posets open import order-theory.large-subposets open import order-theory.large-subpreorders open import order-theory.order-preserving-maps-large-posets
Idea
A closure operator on a large poset P
consists of an order preserving map cl : P → P
such that
cl
is increasing, i.e.,x ≤ cl x
for eachx : P
, andcl
is idempotent, i.e.,cl (cl x) = cl x
for eachx : P
.
In other words, closure operators are idempotent monads on (large) posets.
Definitions
Closure operators on large posets
module _ {α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β) where record closure-operator-Large-Poset : UUω where field hom-closure-operator-Large-Poset : hom-Large-Poset (λ l → l) P P is-inflationary-closure-operator-Large-Poset : {l1 : Level} (x : type-Large-Poset P l1) → leq-Large-Poset P x ( map-hom-Large-Poset P P hom-closure-operator-Large-Poset x) is-idempotent-closure-operator-Large-Poset : {l1 : Level} (x : type-Large-Poset P l1) → map-hom-Large-Poset P P hom-closure-operator-Large-Poset ( map-hom-Large-Poset P P hom-closure-operator-Large-Poset x) = map-hom-Large-Poset P P hom-closure-operator-Large-Poset x open closure-operator-Large-Poset public module _ (cl : closure-operator-Large-Poset) where map-closure-operator-Large-Poset : {l1 : Level} → type-Large-Poset P l1 → type-Large-Poset P l1 map-closure-operator-Large-Poset = map-hom-Large-Poset P P (hom-closure-operator-Large-Poset cl) preserves-order-closure-operator-Large-Poset : {l1 l2 : Level} (x : type-Large-Poset P l1) (y : type-Large-Poset P l2) → leq-Large-Poset P x y → leq-Large-Poset P ( map-closure-operator-Large-Poset x) ( map-closure-operator-Large-Poset y) preserves-order-closure-operator-Large-Poset = preserves-order-hom-Large-Poset P P (hom-closure-operator-Large-Poset cl)
The large subposet of closed elements of a closure operator
module _ {α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β) (cl : closure-operator-Large-Poset P) where large-subpreorder-closure-operator-Large-Poset : Large-Subpreorder α (large-preorder-Large-Poset P) large-subpreorder-closure-operator-Large-Poset {l1} x = Id-Prop (set-Large-Poset P l1) (map-closure-operator-Large-Poset P cl x) x is-closed-element-closure-operator-Large-Poset : {l1 : Level} → type-Large-Poset P l1 → UU (α l1) is-closed-element-closure-operator-Large-Poset = is-in-Large-Subpreorder ( large-preorder-Large-Poset P) ( large-subpreorder-closure-operator-Large-Poset) is-prop-is-closed-element-closure-operator-Large-Poset : {l1 : Level} (x : type-Large-Poset P l1) → is-prop (is-closed-element-closure-operator-Large-Poset x) is-prop-is-closed-element-closure-operator-Large-Poset = is-prop-is-in-Large-Subpreorder ( large-preorder-Large-Poset P) ( large-subpreorder-closure-operator-Large-Poset) is-closed-element-leq-closure-operator-Large-Poset : {l1 : Level} (x : type-Large-Poset P l1) → leq-Large-Poset P (map-closure-operator-Large-Poset P cl x) x → is-closed-element-closure-operator-Large-Poset x is-closed-element-leq-closure-operator-Large-Poset x H = antisymmetric-leq-Large-Poset P ( map-closure-operator-Large-Poset P cl x) ( x) ( H) ( is-inflationary-closure-operator-Large-Poset cl x) closed-element-closure-operator-Large-Poset : (l1 : Level) → UU (α l1) closed-element-closure-operator-Large-Poset = type-Large-Subpreorder ( large-preorder-Large-Poset P) ( large-subpreorder-closure-operator-Large-Poset) is-closed-under-sim-closure-operator-Large-Poset : {l1 l2 : Level} (x : type-Large-Poset P l1) (y : type-Large-Poset P l2) → leq-Large-Poset P x y → leq-Large-Poset P y x → is-closed-element-closure-operator-Large-Poset x → is-closed-element-closure-operator-Large-Poset y is-closed-under-sim-closure-operator-Large-Poset x y H K c = is-closed-element-leq-closure-operator-Large-Poset y ( transitive-leq-Large-Poset P ( map-closure-operator-Large-Poset P cl y) ( map-closure-operator-Large-Poset P cl x) ( y) ( transitive-leq-Large-Poset P ( map-closure-operator-Large-Poset P cl x) ( x) ( y) ( H) ( leq-eq-Large-Poset P c)) ( preserves-order-closure-operator-Large-Poset P cl y x K)) large-subposet-closure-operator-Large-Poset : Large-Subposet α P large-subpreorder-Large-Subposet large-subposet-closure-operator-Large-Poset = large-subpreorder-closure-operator-Large-Poset is-closed-under-sim-Large-Subposet large-subposet-closure-operator-Large-Poset = is-closed-under-sim-closure-operator-Large-Poset large-poset-closure-operator-Large-Poset : Large-Poset α β large-poset-closure-operator-Large-Poset = large-poset-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) leq-prop-closed-element-closure-operator-Large-Poset : Large-Relation-Prop β closed-element-closure-operator-Large-Poset leq-prop-closed-element-closure-operator-Large-Poset = leq-prop-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) leq-closed-element-closure-operator-Large-Poset : Large-Relation β closed-element-closure-operator-Large-Poset leq-closed-element-closure-operator-Large-Poset = leq-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) is-prop-leq-closed-element-closure-operator-Large-Poset : is-prop-Large-Relation ( closed-element-closure-operator-Large-Poset) ( leq-closed-element-closure-operator-Large-Poset) is-prop-leq-closed-element-closure-operator-Large-Poset = is-prop-leq-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) refl-leq-closed-element-closure-operator-Large-Poset : is-reflexive-Large-Relation ( closed-element-closure-operator-Large-Poset) ( leq-closed-element-closure-operator-Large-Poset) refl-leq-closed-element-closure-operator-Large-Poset = refl-leq-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) antisymmetric-leq-closed-element-closure-operator-Large-Poset : is-antisymmetric-Large-Relation ( closed-element-closure-operator-Large-Poset) ( leq-closed-element-closure-operator-Large-Poset) antisymmetric-leq-closed-element-closure-operator-Large-Poset = antisymmetric-leq-Large-Subposet P ( large-subposet-closure-operator-Large-Poset) transitive-leq-closed-element-closure-operator-Large-Poset : is-transitive-Large-Relation ( closed-element-closure-operator-Large-Poset) ( leq-closed-element-closure-operator-Large-Poset) transitive-leq-closed-element-closure-operator-Large-Poset = transitive-leq-Large-Subposet P ( large-subposet-closure-operator-Large-Poset)
Recent changes
- 2024-04-11. Fredrik Bakke. Strict symmetrizations of binary relations (#1025).
- 2023-11-24. Egbert Rijke. Refactor precomposition (#937).
- 2023-11-24. Egbert Rijke. Abelianization (#877).
- 2023-10-19. Fredrik Bakke. Level-universe compatibility patch (#862).
- 2023-09-26. Fredrik Bakke and Egbert Rijke. Maps of categories, functor categories, and small subprecategories (#794).