diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index f63911de8f8..ae18de7a2f2 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -306,6 +306,7 @@ open import foundation.maps-in-global-subuniverses public open import foundation.maps-in-subuniverses public open import foundation.maximum-truncation-levels public open import foundation.maybe public +open import foundation.mere-decidable-embeddings public open import foundation.mere-embeddings public open import foundation.mere-equality public open import foundation.mere-equivalences public diff --git a/src/foundation/decidable-embeddings.lagda.md b/src/foundation/decidable-embeddings.lagda.md index 70856d62e23..631d14a8f48 100644 --- a/src/foundation/decidable-embeddings.lagda.md +++ b/src/foundation/decidable-embeddings.lagda.md @@ -219,8 +219,8 @@ is-decidable-emb-id : {l : Level} {A : UU l} → is-decidable-emb (id {A = A}) is-decidable-emb-id = (is-emb-id , is-decidable-map-id) -decidable-emb-id : {l : Level} {A : UU l} → A ↪ᵈ A -decidable-emb-id = (id , is-decidable-emb-id) +id-decidable-emb : {l : Level} {A : UU l} → A ↪ᵈ A +id-decidable-emb = (id , is-decidable-emb-id) is-decidable-prop-map-id : {l : Level} {A : UU l} → is-decidable-prop-map (id {A = A}) diff --git a/src/foundation/law-of-excluded-middle.lagda.md b/src/foundation/law-of-excluded-middle.lagda.md index a633ea32d6a..ba4acd50cdd 100644 --- a/src/foundation/law-of-excluded-middle.lagda.md +++ b/src/foundation/law-of-excluded-middle.lagda.md @@ -33,6 +33,9 @@ asserts that any [proposition](foundation-core.propositions.md) `P` is LEM : (l : Level) → UU (lsuc l) LEM l = (P : Prop l) → is-decidable (type-Prop P) +LEMω : UUω +LEMω = {l : Level} → LEM l + prop-LEM : (l : Level) → Prop (lsuc l) prop-LEM l = Π-Prop (Prop l) (is-decidable-Prop) ``` diff --git a/src/foundation/mere-decidable-embeddings.lagda.md b/src/foundation/mere-decidable-embeddings.lagda.md new file mode 100644 index 00000000000..7153fe862d8 --- /dev/null +++ b/src/foundation/mere-decidable-embeddings.lagda.md @@ -0,0 +1,75 @@ +# Mere decidable embeddings + +```agda +module foundation.mere-decidable-embeddings where +``` + +
Imports + +```agda +open import foundation.cantor-schroder-bernstein-decidable-embeddings +open import foundation.decidable-embeddings +open import foundation.functoriality-propositional-truncation +open import foundation.mere-equivalences +open import foundation.propositional-truncations +open import foundation.universe-levels +open import foundation.weak-limited-principle-of-omniscience + +open import foundation-core.propositions + +open import order-theory.large-preorders +``` + +
+ +## Idea + +A type `A` {{#concept "merely decidably embeds" Agda=mere-decidable-emb}} into a +type `B` if there [merely exists](foundation.propositional-truncations.md) a +[decidable embedding](foundation.decidable-embeddings.md) of `A` into `B`. + +## Definition + +```agda +mere-decidable-emb-Prop : {l1 l2 : Level} → UU l1 → UU l2 → Prop (l1 ⊔ l2) +mere-decidable-emb-Prop X Y = trunc-Prop (X ↪ᵈ Y) + +mere-decidable-emb : {l1 l2 : Level} → UU l1 → UU l2 → UU (l1 ⊔ l2) +mere-decidable-emb X Y = type-Prop (mere-decidable-emb-Prop X Y) + +is-prop-mere-decidable-emb : + {l1 l2 : Level} (X : UU l1) (Y : UU l2) → is-prop (mere-decidable-emb X Y) +is-prop-mere-decidable-emb X Y = is-prop-type-Prop (mere-decidable-emb-Prop X Y) +``` + +## Properties + +### Types equipped with mere decidable embeddings form a preordering + +```agda +refl-mere-decidable-emb : {l1 : Level} (X : UU l1) → mere-decidable-emb X X +refl-mere-decidable-emb X = unit-trunc-Prop id-decidable-emb + +transitive-mere-decidable-emb : + {l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} {Z : UU l3} → + mere-decidable-emb Y Z → mere-decidable-emb X Y → mere-decidable-emb X Z +transitive-mere-decidable-emb = map-binary-trunc-Prop comp-decidable-emb + +mere-decidable-emb-Large-Preorder : Large-Preorder lsuc (_⊔_) +mere-decidable-emb-Large-Preorder = + λ where + .type-Large-Preorder l → UU l + .leq-prop-Large-Preorder → mere-decidable-emb-Prop + .refl-leq-Large-Preorder → refl-mere-decidable-emb + .transitive-leq-Large-Preorder X Y Z → transitive-mere-decidable-emb +``` + +### Assuming WLPO, then types equipped with mere decidable embeddings form a partial ordering + +```agda +antisymmetric-mere-decidable-emb : + {l1 l2 : Level} {X : UU l1} {Y : UU l2} → level-WLPO (l1 ⊔ l2) → + mere-decidable-emb X Y → mere-decidable-emb Y X → mere-equiv X Y +antisymmetric-mere-decidable-emb wlpo = + map-binary-trunc-Prop (Cantor-Schröder-Bernstein-WLPO wlpo) +``` diff --git a/src/foundation/mere-embeddings.lagda.md b/src/foundation/mere-embeddings.lagda.md index 4fbccc13d40..76a114ddc71 100644 --- a/src/foundation/mere-embeddings.lagda.md +++ b/src/foundation/mere-embeddings.lagda.md @@ -9,6 +9,7 @@ module foundation.mere-embeddings where ```agda open import foundation.cantor-schroder-bernstein-escardo open import foundation.embeddings +open import foundation.functoriality-propositional-truncation open import foundation.law-of-excluded-middle open import foundation.mere-equivalences open import foundation.propositional-truncations @@ -21,6 +22,12 @@ open import order-theory.large-preorders +## Idea + +A type `A` {{#concept "merely embeds" Agda=mere-emb}} into a type `B` if there +[merely exists](foundation.propositional-truncations.md) an +[embedding](foundation-core.embeddings.md) of `A` into `B`. + ## Definition ```agda @@ -46,20 +53,15 @@ refl-mere-emb X = unit-trunc-Prop id-emb transitive-mere-emb : {l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} {Z : UU l3} → mere-emb Y Z → mere-emb X Y → mere-emb X Z -transitive-mere-emb g f = - apply-universal-property-trunc-Prop g - ( mere-emb-Prop _ _) - ( λ g' → - apply-universal-property-trunc-Prop f - ( mere-emb-Prop _ _) - ( λ f' → unit-trunc-Prop (comp-emb g' f'))) +transitive-mere-emb = map-binary-trunc-Prop comp-emb mere-emb-Large-Preorder : Large-Preorder lsuc (_⊔_) -type-Large-Preorder mere-emb-Large-Preorder l = UU l -leq-prop-Large-Preorder mere-emb-Large-Preorder = mere-emb-Prop -refl-leq-Large-Preorder mere-emb-Large-Preorder = refl-mere-emb -transitive-leq-Large-Preorder mere-emb-Large-Preorder X Y Z = - transitive-mere-emb +mere-emb-Large-Preorder = + λ where + .type-Large-Preorder l → UU l + .leq-prop-Large-Preorder → mere-emb-Prop + .refl-leq-Large-Preorder → refl-mere-emb + .transitive-leq-Large-Preorder X Y Z → transitive-mere-emb ``` ### Assuming excluded middle, if there are mere embeddings between `A` and `B` in both directions, then there is a mere equivalence between them @@ -68,11 +70,6 @@ transitive-leq-Large-Preorder mere-emb-Large-Preorder X Y Z = antisymmetric-mere-emb : {l1 l2 : Level} {X : UU l1} {Y : UU l2} → LEM (l1 ⊔ l2) → mere-emb X Y → mere-emb Y X → mere-equiv X Y -antisymmetric-mere-emb lem f g = - apply-universal-property-trunc-Prop f - ( mere-equiv-Prop _ _) - ( λ f' → - apply-universal-property-trunc-Prop g - ( mere-equiv-Prop _ _) - ( λ g' → unit-trunc-Prop (Cantor-Schröder-Bernstein-Escardó lem f' g'))) +antisymmetric-mere-emb lem = + map-binary-trunc-Prop (Cantor-Schröder-Bernstein-Escardó lem) ``` diff --git a/src/foundation/set-truncations.lagda.md b/src/foundation/set-truncations.lagda.md index 154cc2d2b55..30598163594 100644 --- a/src/foundation/set-truncations.lagda.md +++ b/src/foundation/set-truncations.lagda.md @@ -122,6 +122,50 @@ module _ (x : type-trunc-Set A) → type-Set (B x) apply-dependent-universal-property-trunc-Set' = map-inv-equiv (equiv-dependent-universal-property-trunc-Set B) f + +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : type-trunc-Set A → UU l2} + (C : (a : type-trunc-Set A) → type-trunc-Set (B a) → Set l3) + (f : + (x : A) (y : B (unit-trunc-Set x)) → + type-Set (C (unit-trunc-Set x) (unit-trunc-Set y))) + where + + apply-twice-dependent-universal-property-trunc-Set' : + (a : type-trunc-Set A) (b : type-trunc-Set (B a)) → type-Set (C a b) + apply-twice-dependent-universal-property-trunc-Set' = + apply-dependent-universal-property-trunc-Set' + ( λ x → Π-Set (trunc-Set (B x)) (C x)) + ( λ x → + apply-dependent-universal-property-trunc-Set' + ( C (unit-trunc-Set x)) + ( f x)) + +module _ + {l1 l2 l3 l4 : Level} {A : UU l1} {B : type-trunc-Set A → UU l2} + {C : (a : type-trunc-Set A) → type-trunc-Set (B a) → UU l3} + (D : + (a : type-trunc-Set A) (b : type-trunc-Set (B a)) → type-trunc-Set (C a b) → + Set l4) + (f : + (x : A) + (y : B (unit-trunc-Set x)) + (z : C (unit-trunc-Set x) (unit-trunc-Set y)) → + type-Set (D (unit-trunc-Set x) (unit-trunc-Set y) (unit-trunc-Set z))) + where + + apply-thrice-dependent-universal-property-trunc-Set' : + (a : type-trunc-Set A) + (b : type-trunc-Set (B a)) + (c : type-trunc-Set (C a b)) → + type-Set (D a b c) + apply-thrice-dependent-universal-property-trunc-Set' = + apply-twice-dependent-universal-property-trunc-Set' + ( λ x y → Π-Set (trunc-Set (C x y)) (D x y)) + ( λ x y → + apply-dependent-universal-property-trunc-Set' + ( D (unit-trunc-Set x) (unit-trunc-Set y)) + ( f x y)) ``` ### The universal property of set truncations diff --git a/src/set-theory.lagda.md b/src/set-theory.lagda.md index 6ce59643c86..391f523884b 100644 --- a/src/set-theory.lagda.md +++ b/src/set-theory.lagda.md @@ -38,7 +38,7 @@ set-level structure. In fact, assuming univalence, it is a proper In this module, we consider ideas historically related to the study of set theories both as foundations of set-level mathematics, but also as a study of hierarchies in mathematics. This includes ideas such as -[cardinality](set-theory.cardinalities.md) and +[cardinality](set-theory.cardinals.md) and [infinity](set-theory.infinite-sets.md), the [cumulative hierarchy](set-theory.cumulative-hierarchy.md) as a model of set theory, and [Russell's paradox](set-theory.russells-paradox.md). @@ -52,12 +52,15 @@ open import set-theory.baire-space public open import set-theory.bounded-increasing-binary-sequences public open import set-theory.cantor-space public open import set-theory.cantors-diagonal-argument public -open import set-theory.cardinalities public +open import set-theory.cardinals public +open import set-theory.complemented-inequality-cardinals public open import set-theory.countable-sets public open import set-theory.cumulative-hierarchy public +open import set-theory.equality-cardinals public open import set-theory.finite-elements-increasing-binary-sequences public open import set-theory.inclusion-natural-numbers-increasing-binary-sequences public open import set-theory.increasing-binary-sequences public +open import set-theory.inequality-cardinals public open import set-theory.inequality-increasing-binary-sequences public open import set-theory.infinite-sets public open import set-theory.positive-elements-increasing-binary-sequences public diff --git a/src/set-theory/cardinalities.lagda.md b/src/set-theory/cardinalities.lagda.md deleted file mode 100644 index 26956dc000c..00000000000 --- a/src/set-theory/cardinalities.lagda.md +++ /dev/null @@ -1,225 +0,0 @@ -# Cardinalities of sets - -```agda -module set-theory.cardinalities where -``` - -
Imports - -```agda -open import foundation.binary-relations -open import foundation.dependent-pair-types -open import foundation.equivalences -open import foundation.function-extensionality -open import foundation.functoriality-propositional-truncation -open import foundation.identity-types -open import foundation.large-binary-relations -open import foundation.law-of-excluded-middle -open import foundation.mere-embeddings -open import foundation.mere-equivalences -open import foundation.propositional-extensionality -open import foundation.propositions -open import foundation.set-truncations -open import foundation.sets -open import foundation.universe-levels -``` - -
- -## Idea - -The -{{#concept "cardinality" Disambiguation="of a set" Agda=cardinality WD="cardinality" WDID=Q4049983}} -of a [set](foundation-core.sets.md) is its -[isomorphism](category-theory.isomorphisms-in-categories.md) class. We take -isomorphism classes of sets by [set truncating](foundation.set-truncations.md) -the universe of sets of any given -[universe level](foundation.universe-levels.md). Note that this definition takes -advantage of the [univalence axiom](foundation.univalence.md): By the univalence -axiom [isomorphic sets](foundation.isomorphisms-of-sets.md) are -[equal](foundation-core.identity-types.md), and will be mapped to the same -element in the set truncation of the universe of all sets. - -## Definition - -### Cardinalities - -```agda -cardinal-Set : (l : Level) → Set (lsuc l) -cardinal-Set l = trunc-Set (Set l) - -cardinal : (l : Level) → UU (lsuc l) -cardinal l = type-Set (cardinal-Set l) - -cardinality : {l : Level} → Set l → cardinal l -cardinality A = unit-trunc-Set A -``` - -### Inequality of cardinalities - -```agda -leq-cardinality-Prop' : - {l1 l2 : Level} → Set l1 → cardinal l2 → Prop (l1 ⊔ l2) -leq-cardinality-Prop' {l1} {l2} X = - map-universal-property-trunc-Set - ( Prop-Set (l1 ⊔ l2)) - ( λ Y' → mere-emb-Prop (type-Set X) (type-Set Y')) - -compute-leq-cardinality-Prop' : - {l1 l2 : Level} (X : Set l1) (Y : Set l2) → - ( leq-cardinality-Prop' X (cardinality Y)) = - ( mere-emb-Prop (type-Set X) (type-Set Y)) -compute-leq-cardinality-Prop' {l1} {l2} X = - triangle-universal-property-trunc-Set - ( Prop-Set (l1 ⊔ l2)) - ( λ Y' → mere-emb-Prop (type-Set X) (type-Set Y')) - -leq-cardinality-Prop : - {l1 l2 : Level} → cardinal l1 → cardinal l2 → Prop (l1 ⊔ l2) -leq-cardinality-Prop {l1} {l2} = - map-universal-property-trunc-Set - ( hom-set-Set (cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) - ( leq-cardinality-Prop') - -leq-cardinality : - {l1 l2 : Level} → cardinal l1 → cardinal l2 → UU (l1 ⊔ l2) -leq-cardinality X Y = type-Prop (leq-cardinality-Prop X Y) - -is-prop-leq-cardinality : - {l1 l2 : Level} {X : cardinal l1} {Y : cardinal l2} → - is-prop (leq-cardinality X Y) -is-prop-leq-cardinality {X = X} {Y = Y} = - is-prop-type-Prop (leq-cardinality-Prop X Y) - -compute-leq-cardinality : - {l1 l2 : Level} (X : Set l1) (Y : Set l2) → - ( leq-cardinality (cardinality X) (cardinality Y)) ≃ - ( mere-emb (type-Set X) (type-Set Y)) -compute-leq-cardinality {l1} {l2} X Y = - equiv-eq-Prop - ( ( htpy-eq - ( triangle-universal-property-trunc-Set - ( hom-set-Set (cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) - ( leq-cardinality-Prop') X) (cardinality Y)) ∙ - ( compute-leq-cardinality-Prop' X Y)) - -unit-leq-cardinality : - {l1 l2 : Level} (X : Set l1) (Y : Set l2) → - mere-emb (type-Set X) (type-Set Y) → - leq-cardinality (cardinality X) (cardinality Y) -unit-leq-cardinality X Y = map-inv-equiv (compute-leq-cardinality X Y) - -inv-unit-leq-cardinality : - {l1 l2 : Level} (X : Set l1) (Y : Set l2) → - leq-cardinality (cardinality X) (cardinality Y) → - mere-emb (type-Set X) (type-Set Y) -inv-unit-leq-cardinality X Y = pr1 (compute-leq-cardinality X Y) - -refl-leq-cardinality : is-reflexive-Large-Relation cardinal leq-cardinality -refl-leq-cardinality {l} = - apply-dependent-universal-property-trunc-Set' - ( λ X → set-Prop (leq-cardinality-Prop X X)) - ( λ A → unit-leq-cardinality A A (refl-mere-emb (type-Set A))) - -transitive-leq-cardinality : - {l1 l2 l3 : Level} - (X : cardinal l1) - (Y : cardinal l2) - (Z : cardinal l3) → - leq-cardinality X Y → - leq-cardinality Y Z → - leq-cardinality X Z -transitive-leq-cardinality X Y Z = - apply-dependent-universal-property-trunc-Set' - ( λ u → - set-Prop - ( function-Prop - ( leq-cardinality u Y) - ( function-Prop (leq-cardinality Y Z) - ( leq-cardinality-Prop u Z)))) - ( λ a → - apply-dependent-universal-property-trunc-Set' - ( λ v → - set-Prop - (function-Prop - (leq-cardinality (cardinality a) v) - (function-Prop (leq-cardinality v Z) - (leq-cardinality-Prop (cardinality a) Z)))) - ( λ b → - apply-dependent-universal-property-trunc-Set' - ( λ w → - set-Prop - (function-Prop - (leq-cardinality (cardinality a) (cardinality b)) - (function-Prop (leq-cardinality (cardinality b) w) - (leq-cardinality-Prop (cardinality a) w)))) - ( λ c aImports + +```agda +open import foundation.equivalences +open import foundation.functoriality-propositional-truncation +open import foundation.identity-types +open import foundation.mere-equivalences +open import foundation.set-truncations +open import foundation.sets +open import foundation.universe-levels +``` + + + +## Idea + +The +{{#concept "cardinality" Disambiguation="of a set" Agda=cardinality WD="cardinality" WDID=Q4049983}} +of a [set](foundation-core.sets.md) is its +[isomorphism](category-theory.isomorphisms-in-categories.md) class. We take +isomorphism classes of sets by [set truncating](foundation.set-truncations.md) +the universe of sets of any given +[universe level](foundation.universe-levels.md), and such an isomorphism class +is called a +{{#concept "cardinal" Disambiguation="sets" WD="cardinal number" WDID=Q163875}}. + +Note that this definition takes advantage of the +[univalence axiom](foundation.univalence.md): By the univalence axiom +[isomorphic sets](foundation.isomorphisms-of-sets.md) are +[equal](foundation-core.identity-types.md), and will be mapped to the same +element in the set truncation of the universe of all sets. S + +## Definition + +### Cardinals + +```agda +Cardinal-Set : (l : Level) → Set (lsuc l) +Cardinal-Set l = trunc-Set (Set l) + +Cardinal : (l : Level) → UU (lsuc l) +Cardinal l = type-Set (Cardinal-Set l) + +is-set-Cardinal : {l : Level} → is-set (Cardinal l) +is-set-Cardinal {l} = is-set-type-Set (Cardinal-Set l) +``` + +### The cardinality of a set + +```agda +cardinality : {l : Level} → Set l → Cardinal l +cardinality A = unit-trunc-Set A +``` + +## External links + +- [Cardinality](https://en.wikipedia.org/wiki/Cardinality) at Wikipedia +- [cardinal number](https://ncatlab.org/nlab/show/cardinal+number) at $n$Lab diff --git a/src/set-theory/complemented-inequality-cardinals.lagda.md b/src/set-theory/complemented-inequality-cardinals.lagda.md new file mode 100644 index 00000000000..cc4bfe3abaf --- /dev/null +++ b/src/set-theory/complemented-inequality-cardinals.lagda.md @@ -0,0 +1,262 @@ +# Complemented inequality on cardinals + +```agda +module set-theory.complemented-inequality-cardinals where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.large-binary-relations +open import foundation.mere-decidable-embeddings +open import foundation.propositional-extensionality +open import foundation.propositions +open import foundation.set-truncations +open import foundation.sets +open import foundation.univalence +open import foundation.universe-levels +open import foundation.weak-limited-principle-of-omniscience + +open import order-theory.large-posets +open import order-theory.large-preorders + +open import set-theory.cardinals +open import set-theory.equality-cardinals +``` + +
+ +## Idea + +We may say a [cardinal](set-theory.cardinals.md) `X` is +{{#concept "less than or equal to" Agda=leq-complemented-Cardinal}} a cardinal +`Y` if any [set](foundation-core.sets.md) in the isomorphism class represented +by `X` [embeds](foundation-core.embeddings.md) as a +[complemented subtype](foundation.decidable-subtypes.md) into any set in the +isomorphism class represented by `Y`. In other words, if there is a +[decidable embedding](foundation.decidable-embeddings.md) from the first to the +second. This defines the +{{#concept "complemented ordering" Disambiguation="on cardinalities of sets"}} +on cardinalities of sets. + +Under the assumption of the +[weak limited principle of omniscience](foundation.weak-limited-principle-of-omniscience.md), +this relation is antisymmetric and hence defines a +[partial order](order-theory.posets.md) on cardinals. + +## Definition + +### Complemented boundedness of the cardinality of a set + +```agda +module _ + {l1 l2 : Level} (X : Set l1) + where + + leq-complemented-prop-Cardinal' : Cardinal l2 → Prop (l1 ⊔ l2) + leq-complemented-prop-Cardinal' = + map-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( λ Y' → mere-decidable-emb-Prop (type-Set X) (type-Set Y')) + + compute-leq-complemented-prop-Cardinal' : + (Y : Set l2) → + leq-complemented-prop-Cardinal' (cardinality Y) = + mere-decidable-emb-Prop (type-Set X) (type-Set Y) + compute-leq-complemented-prop-Cardinal' = + triangle-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( λ Y' → mere-decidable-emb-Prop (type-Set X) (type-Set Y')) +``` + +### Complemented inequality of cardinals + +```agda +module _ + {l1 l2 : Level} + where + + leq-complemented-prop-Cardinal : + Cardinal l1 → Cardinal l2 → Prop (l1 ⊔ l2) + leq-complemented-prop-Cardinal = + map-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( leq-complemented-prop-Cardinal') + + leq-complemented-Cardinal : + Cardinal l1 → Cardinal l2 → UU (l1 ⊔ l2) + leq-complemented-Cardinal X Y = + type-Prop (leq-complemented-prop-Cardinal X Y) + + is-prop-leq-complemented-Cardinal : + {X : Cardinal l1} {Y : Cardinal l2} → + is-prop (leq-complemented-Cardinal X Y) + is-prop-leq-complemented-Cardinal {X} {Y} = + is-prop-type-Prop (leq-complemented-prop-Cardinal X Y) +``` + +### Complemented inequality of cardinalities + +```agda +module _ + {l1 l2 : Level} (X : Set l1) (Y : Set l2) + where + + leq-complemented-prop-cardinality : Prop (l1 ⊔ l2) + leq-complemented-prop-cardinality = + leq-complemented-prop-Cardinal (cardinality X) (cardinality Y) + + leq-complemented-cardinality : UU (l1 ⊔ l2) + leq-complemented-cardinality = + leq-complemented-Cardinal (cardinality X) (cardinality Y) + + is-prop-leq-complemented-cardinality : + is-prop leq-complemented-cardinality + is-prop-leq-complemented-cardinality = + is-prop-leq-complemented-Cardinal + + compute-leq-complemented-prop-cardinality' : + leq-complemented-prop-cardinality = + mere-decidable-emb-Prop (type-Set X) (type-Set Y) + compute-leq-complemented-prop-cardinality' = + ( htpy-eq + ( triangle-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( leq-complemented-prop-Cardinal') X) (cardinality Y)) ∙ + ( compute-leq-complemented-prop-Cardinal' X Y) + + compute-leq-complemented-cardinality' : + leq-complemented-cardinality = + mere-decidable-emb (type-Set X) (type-Set Y) + compute-leq-complemented-cardinality' = + ap type-Prop compute-leq-complemented-prop-cardinality' + + compute-leq-complemented-cardinality : + leq-complemented-cardinality ≃ + mere-decidable-emb (type-Set X) (type-Set Y) + compute-leq-complemented-cardinality = + equiv-eq compute-leq-complemented-cardinality' + + unit-leq-complemented-cardinality : + mere-decidable-emb (type-Set X) (type-Set Y) → + leq-complemented-cardinality + unit-leq-complemented-cardinality = + map-inv-equiv compute-leq-complemented-cardinality + + inv-unit-leq-complemented-cardinality : + leq-complemented-cardinality → + mere-decidable-emb (type-Set X) (type-Set Y) + inv-unit-leq-complemented-cardinality = + pr1 compute-leq-complemented-cardinality +``` + +### Complemented inequality on cardinals is reflexive + +```agda +refl-leq-complemented-cardinality : + is-reflexive-Large-Relation Set leq-complemented-cardinality +refl-leq-complemented-cardinality A = + unit-leq-complemented-cardinality A A + ( refl-mere-decidable-emb (type-Set A)) + +refl-leq-complemented-Cardinal : + is-reflexive-Large-Relation Cardinal leq-complemented-Cardinal +refl-leq-complemented-Cardinal = + apply-dependent-universal-property-trunc-Set' + ( λ X → set-Prop (leq-complemented-prop-Cardinal X X)) + ( refl-leq-complemented-cardinality) +``` + +### Complemented inequality on cardinals is transitive + +```agda +module _ + {l1 l2 l3 : Level} + where + + transitive-leq-complemented-cardinality : + (X : Set l1) (Y : Set l2) (Z : Set l3) → + leq-complemented-cardinality Y Z → + leq-complemented-cardinality X Y → + leq-complemented-cardinality X Z + transitive-leq-complemented-cardinality X Y Z Y≤Z X≤Y = + unit-leq-complemented-cardinality X Z + ( transitive-mere-decidable-emb + ( inv-unit-leq-complemented-cardinality Y Z Y≤Z) + ( inv-unit-leq-complemented-cardinality X Y X≤Y)) + + transitive-leq-complemented-Cardinal : + (X : Cardinal l1) (Y : Cardinal l2) (Z : Cardinal l3) → + leq-complemented-Cardinal Y Z → + leq-complemented-Cardinal X Y → + leq-complemented-Cardinal X Z + transitive-leq-complemented-Cardinal = + apply-thrice-dependent-universal-property-trunc-Set' + ( λ X Y Z → + ( leq-complemented-Cardinal Y Z → + leq-complemented-Cardinal X Y → + leq-complemented-Cardinal X Z) , + ( is-set-function-type + ( is-set-function-type + ( is-set-is-prop is-prop-leq-complemented-Cardinal)))) + ( transitive-leq-complemented-cardinality) +``` + +## Properties + +### Assuming the weak limited principle of omniscience, then complemented inequality forms a partial order + +```agda +module _ + {l : Level} (wlpo : level-WLPO l) + where + + antisymmetric-leq-complemented-cardinality : + (X Y : Set l) → + leq-complemented-cardinality X Y → + leq-complemented-cardinality Y X → + cardinality X = cardinality Y + antisymmetric-leq-complemented-cardinality X Y X≤Y Y≤X = + eq-mere-equiv-cardinality X Y + ( antisymmetric-mere-decidable-emb + ( wlpo) + ( inv-unit-leq-complemented-cardinality X Y X≤Y) + ( inv-unit-leq-complemented-cardinality Y X Y≤X)) + + antisymmetric-leq-complemented-Cardinal : + (X Y : Cardinal l) → + leq-complemented-Cardinal X Y → leq-complemented-Cardinal Y X → X = Y + antisymmetric-leq-complemented-Cardinal = + apply-twice-dependent-universal-property-trunc-Set' + ( λ X Y → + set-Prop + ( function-Prop + ( leq-complemented-Cardinal X Y) + ( function-Prop + ( leq-complemented-Cardinal Y X) + ( Id-Prop (Cardinal-Set l) X Y)))) + ( antisymmetric-leq-complemented-cardinality) +``` + +### The large poset of cardinals under complemented inequality + +```agda +large-preorder-complemented-Cardinal : Large-Preorder lsuc (_⊔_) +large-preorder-complemented-Cardinal = + λ where + .type-Large-Preorder → Cardinal + .leq-prop-Large-Preorder → leq-complemented-prop-Cardinal + .refl-leq-Large-Preorder → refl-leq-complemented-Cardinal + .transitive-leq-Large-Preorder → transitive-leq-complemented-Cardinal + +large-poset-complemented-Cardinal : WLPO → Large-Poset lsuc (_⊔_) +large-poset-complemented-Cardinal wlpo = + λ where + .large-preorder-Large-Poset → large-preorder-complemented-Cardinal + .antisymmetric-leq-Large-Poset → antisymmetric-leq-complemented-Cardinal wlpo +``` diff --git a/src/set-theory/equality-cardinals.lagda.md b/src/set-theory/equality-cardinals.lagda.md new file mode 100644 index 00000000000..8eea5937e59 --- /dev/null +++ b/src/set-theory/equality-cardinals.lagda.md @@ -0,0 +1,318 @@ +# Equality of cardinals + +```agda +module set-theory.equality-cardinals where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.function-extensionality +open import foundation.functoriality-propositional-truncation +open import foundation.identity-types +open import foundation.large-equivalence-relations +open import foundation.large-similarity-relations +open import foundation.mere-equivalences +open import foundation.propositional-extensionality +open import foundation.propositions +open import foundation.set-truncations +open import foundation.sets +open import foundation.univalence +open import foundation.universe-levels + +open import set-theory.cardinals +``` + +
+ +## Idea + +Two [cardinals of sets](set-theory.cardinals.md) `X` and `Y` are +{{#concept "similar" Disambiguation="cardinals" Agda=sim-Cardinal}} if there +[merely](foundation.inhabited-types.md) is an +[equivalence](foundation-core.equivalences.md) between any two representing two +types. This characterizes [equality](foundation-core.identity-types.md) of +cardinals. + +## Definition + +### The underlying similarity of cardinalities + +```agda +module _ + {l1 l2 : Level} (X : Set l1) (Y : Set l2) + where + + sim-prop-cardinality' : Prop (l1 ⊔ l2) + sim-prop-cardinality' = mere-equiv-Prop (type-Set X) (type-Set Y) + + sim-cardinality' : UU (l1 ⊔ l2) + sim-cardinality' = mere-equiv (type-Set X) (type-Set Y) + + is-prop-sim-sim-cardinality' : is-prop sim-cardinality' + is-prop-sim-sim-cardinality' = is-prop-mere-equiv (type-Set X) (type-Set Y) + +refl-sim-cardinality' : {l : Level} (X : Set l) → sim-cardinality' X X +refl-sim-cardinality' X = refl-mere-equiv (type-Set X) + +transitive-sim-cardinality' : + {l1 l2 l3 : Level} (X : Set l1) (Y : Set l2) (Z : Set l3) → + sim-cardinality' Y Z → sim-cardinality' X Y → sim-cardinality' X Z +transitive-sim-cardinality' X Y Z = + transitive-mere-equiv (type-Set X) (type-Set Y) (type-Set Z) + +symmetric-sim-cardinality' : + {l1 l2 : Level} (X : Set l1) (Y : Set l2) → + sim-cardinality' X Y → sim-cardinality' Y X +symmetric-sim-cardinality' X Y = + symmetric-mere-equiv (type-Set X) (type-Set Y) +``` + +### Similarity of cardinalities with a cardinal + +```agda +module _ + {l1 l2 : Level} (X : Set l1) + where + + sim-prop-Cardinal' : Cardinal l2 → Prop (l1 ⊔ l2) + sim-prop-Cardinal' = + map-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( sim-prop-cardinality' X) + + sim-Cardinal' : Cardinal l2 → UU (l1 ⊔ l2) + sim-Cardinal' Y = type-Prop (sim-prop-Cardinal' Y) + + is-prop-sim-sim-Cardinal' : (Y : Cardinal l2) → is-prop (sim-Cardinal' Y) + is-prop-sim-sim-Cardinal' Y = is-prop-type-Prop (sim-prop-Cardinal' Y) + + eq-compute-sim-prop-Cardinal' : + (Y : Set l2) → + sim-prop-Cardinal' (cardinality Y) = sim-prop-cardinality' X Y + eq-compute-sim-prop-Cardinal' = + triangle-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( sim-prop-cardinality' X) + + eq-compute-sim-Cardinal' : + (Y : Set l2) → + sim-Cardinal' (cardinality Y) = sim-cardinality' X Y + eq-compute-sim-Cardinal' Y = + ap type-Prop (eq-compute-sim-prop-Cardinal' Y) +``` + +### Similarity of cardinals + +```agda +module _ + {l1 l2 : Level} (X : Cardinal l1) (Y : Cardinal l2) + where + + sim-prop-Cardinal : Prop (l1 ⊔ l2) + sim-prop-Cardinal = + map-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( sim-prop-Cardinal') + ( X) + ( Y) + + sim-Cardinal : UU (l1 ⊔ l2) + sim-Cardinal = type-Prop sim-prop-Cardinal + + is-prop-sim-sim-Cardinal : is-prop sim-Cardinal + is-prop-sim-sim-Cardinal = is-prop-type-Prop sim-prop-Cardinal + + sim-set-Cardinal : Set (l1 ⊔ l2) + sim-set-Cardinal = set-Prop sim-prop-Cardinal +``` + +### Similarity of cardinalities + +```agda +module _ + {l1 l2 : Level} (X : Set l1) (Y : Set l2) + where + + sim-prop-cardinality : Prop (l1 ⊔ l2) + sim-prop-cardinality = sim-prop-Cardinal (cardinality X) (cardinality Y) + + sim-cardinality : UU (l1 ⊔ l2) + sim-cardinality = type-Prop sim-prop-cardinality + + is-prop-sim-sim-cardinality : is-prop sim-cardinality + is-prop-sim-sim-cardinality = is-prop-type-Prop sim-prop-cardinality + + eq-compute-sim-prop-cardinality : + sim-prop-cardinality = mere-equiv-Prop (type-Set X) (type-Set Y) + eq-compute-sim-prop-cardinality = + ( htpy-eq + ( triangle-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( sim-prop-Cardinal') + ( X)) + ( cardinality Y)) ∙ + ( eq-compute-sim-prop-Cardinal' X Y) + + eq-compute-sim-cardinality : + sim-cardinality = mere-equiv (type-Set X) (type-Set Y) + eq-compute-sim-cardinality = + ap type-Prop eq-compute-sim-prop-cardinality + + compute-sim-cardinality : + sim-cardinality ≃ mere-equiv (type-Set X) (type-Set Y) + compute-sim-cardinality = equiv-eq eq-compute-sim-cardinality + + unit-sim-cardinality : + mere-equiv (type-Set X) (type-Set Y) → sim-cardinality + unit-sim-cardinality = map-inv-equiv compute-sim-cardinality + + inv-unit-sim-cardinality : + sim-cardinality → mere-equiv (type-Set X) (type-Set Y) + inv-unit-sim-cardinality = pr1 compute-sim-cardinality +``` + +## Properties + +### Equality of cardinalities is equivalent to mere equivalence + +```agda +is-effective-cardinality : + {l : Level} (X Y : Set l) → + (cardinality X = cardinality Y) ≃ mere-equiv (type-Set X) (type-Set Y) +is-effective-cardinality X Y = + ( equiv-trunc-Prop (extensionality-Set X Y)) ∘e + ( is-effective-unit-trunc-Set (Set _) X Y) + +eq-mere-equiv-cardinality : + {l : Level} (X Y : Set l) → + mere-equiv (type-Set X) (type-Set Y) → cardinality X = cardinality Y +eq-mere-equiv-cardinality X Y = map-inv-equiv (is-effective-cardinality X Y) +``` + +### Similarity of cardinals is reflexive + +```agda +refl-sim-cardinality : {l : Level} (X : Set l) → sim-cardinality X X +refl-sim-cardinality X = unit-sim-cardinality X X (refl-mere-equiv (type-Set X)) + +refl-sim-Cardinal : {l : Level} (X : Cardinal l) → sim-Cardinal X X +refl-sim-Cardinal = + apply-dependent-universal-property-trunc-Set' + ( λ X → sim-set-Cardinal X X) + ( refl-sim-cardinality) +``` + +### Similarity of cardinals is symmetric + +```agda +symmetric-sim-cardinality : + {l1 l2 : Level} + (X : Set l1) (Y : Set l2) → + sim-cardinality X Y → sim-cardinality Y X +symmetric-sim-cardinality X Y p = + unit-sim-cardinality Y X + ( symmetric-sim-cardinality' X Y (inv-unit-sim-cardinality X Y p)) + +abstract + symmetric-sim-Cardinal : + {l1 l2 : Level} + (X : Cardinal l1) (Y : Cardinal l2) → + sim-Cardinal X Y → sim-Cardinal Y X + symmetric-sim-Cardinal = + apply-twice-dependent-universal-property-trunc-Set' + ( λ X Y → hom-set-Set (sim-set-Cardinal X Y) (sim-set-Cardinal Y X)) + ( symmetric-sim-cardinality) +``` + +### Similarity of cardinals is transitive + +```agda +transitive-sim-cardinality : + {l1 l2 l3 : Level} + (X : Set l1) (Y : Set l2) (Z : Set l3) → + sim-cardinality Y Z → sim-cardinality X Y → sim-cardinality X Z +transitive-sim-cardinality X Y Z p q = + unit-sim-cardinality X Z + ( transitive-sim-cardinality' X Y Z + ( inv-unit-sim-cardinality Y Z p) + ( inv-unit-sim-cardinality X Y q)) + +abstract + transitive-sim-Cardinal : + {l1 l2 l3 : Level} + (X : Cardinal l1) (Y : Cardinal l2) (Z : Cardinal l3) → + sim-Cardinal Y Z → sim-Cardinal X Y → sim-Cardinal X Z + transitive-sim-Cardinal = + apply-thrice-dependent-universal-property-trunc-Set' + ( λ X Y Z → + hom-set-Set + ( sim-set-Cardinal Y Z) + ( hom-set-Set (sim-set-Cardinal X Y) (sim-set-Cardinal X Z))) + ( transitive-sim-cardinality) +``` + +### Similarity of cardinals is extensional + +```agda +module _ + {l : Level} + where + + sim-eq-Cardinal : + (X Y : Cardinal l) → X = Y → sim-Cardinal X Y + sim-eq-Cardinal X .X refl = refl-sim-Cardinal X + + sim-eq-cardinality : + (X Y : Set l) → cardinality X = cardinality Y → sim-cardinality X Y + sim-eq-cardinality X Y = sim-eq-Cardinal (cardinality X) (cardinality Y) + + eq-sim-cardinality : + (X Y : Set l) → sim-cardinality X Y → cardinality X = cardinality Y + eq-sim-cardinality X Y p = + eq-mere-equiv-cardinality X Y (inv-unit-sim-cardinality X Y p) + + abstract + eq-sim-Cardinal : + (X Y : Cardinal l) → sim-Cardinal X Y → X = Y + eq-sim-Cardinal = + apply-twice-dependent-universal-property-trunc-Set' + ( λ X Y → + hom-set-Set + ( sim-set-Cardinal X Y) + ( set-Prop (Id-Prop (Cardinal-Set l) X Y))) + ( eq-sim-cardinality) + + abstract + antisymmetric-sim-Cardinal : + (X Y : Cardinal l) → sim-Cardinal X Y → sim-Cardinal Y X → X = Y + antisymmetric-sim-Cardinal X Y p _ = eq-sim-Cardinal X Y p +``` + +### Similarity of cardinals is a large similarity relation + +```agda +large-equivalence-relation-Cardinal : Large-Equivalence-Relation (_⊔_) Cardinal +large-equivalence-relation-Cardinal = + λ where + .sim-prop-Large-Equivalence-Relation → sim-prop-Cardinal + .refl-sim-Large-Equivalence-Relation → refl-sim-Cardinal + .symmetric-sim-Large-Equivalence-Relation → symmetric-sim-Cardinal + .transitive-sim-Large-Equivalence-Relation → transitive-sim-Cardinal + +large-similarity-relation-Cardinal : Large-Similarity-Relation (_⊔_) Cardinal +large-similarity-relation-Cardinal = + λ where + .large-equivalence-relation-Large-Similarity-Relation → + large-equivalence-relation-Cardinal + .eq-sim-Large-Similarity-Relation → + eq-sim-Cardinal +``` + +## External links + +- [Cardinality](https://en.wikipedia.org/wiki/Cardinality) at Wikipedia +- [cardinal number](https://ncatlab.org/nlab/show/cardinal+number) at $n$Lab diff --git a/src/set-theory/inequality-cardinals.lagda.md b/src/set-theory/inequality-cardinals.lagda.md new file mode 100644 index 00000000000..a12e340c19a --- /dev/null +++ b/src/set-theory/inequality-cardinals.lagda.md @@ -0,0 +1,242 @@ +# Inequality on cardinals + +```agda +module set-theory.inequality-cardinals where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.large-binary-relations +open import foundation.law-of-excluded-middle +open import foundation.mere-embeddings +open import foundation.propositional-extensionality +open import foundation.propositions +open import foundation.set-truncations +open import foundation.sets +open import foundation.univalence +open import foundation.universe-levels + +open import order-theory.large-posets +open import order-theory.large-preorders + +open import set-theory.cardinals +open import set-theory.equality-cardinals +``` + +
+ +## Idea + +We say a [cardinal of sets](set-theory.cardinals.md) `X` is +{{#concept "less than or equal to" Agda=leq-Cardinal}} a cardinal `Y` if any +[set](foundation-core.sets.md) in the isomorphism class represented by `X` +embeds into any set in the isomorphism class represented by `Y`. This defines +the {{#concept "standard ordering" Disambiguation="on cardinalities of sets"}} +on cardinalities of sets. + +Under the assumption of the +[law of excluded middle](foundation.law-of-excluded-middle.md), this relation is +antisymmetric and hence defines a [partial order](order-theory.posets.md) on +cardinalites. + +## Definition + +### Boundedness of the cardinality of a set + +```agda +module _ + {l1 l2 : Level} (X : Set l1) + where + + leq-prop-Cardinal' : Cardinal l2 → Prop (l1 ⊔ l2) + leq-prop-Cardinal' = + map-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( λ Y' → mere-emb-Prop (type-Set X) (type-Set Y')) + + compute-leq-prop-Cardinal' : + (Y : Set l2) → + leq-prop-Cardinal' (cardinality Y) = + mere-emb-Prop (type-Set X) (type-Set Y) + compute-leq-prop-Cardinal' = + triangle-universal-property-trunc-Set + ( Prop-Set (l1 ⊔ l2)) + ( λ Y' → mere-emb-Prop (type-Set X) (type-Set Y')) +``` + +### Inequality of cardinals + +```agda +module _ + {l1 l2 : Level} + where + + leq-prop-Cardinal : Cardinal l1 → Cardinal l2 → Prop (l1 ⊔ l2) + leq-prop-Cardinal = + map-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( leq-prop-Cardinal') + + leq-Cardinal : Cardinal l1 → Cardinal l2 → UU (l1 ⊔ l2) + leq-Cardinal X Y = type-Prop (leq-prop-Cardinal X Y) + + is-prop-leq-Cardinal : + {X : Cardinal l1} {Y : Cardinal l2} → is-prop (leq-Cardinal X Y) + is-prop-leq-Cardinal {X} {Y} = is-prop-type-Prop (leq-prop-Cardinal X Y) +``` + +### Inequality of cardinalities + +```agda +module _ + {l1 l2 : Level} (X : Set l1) (Y : Set l2) + where + + leq-prop-cardinality : Prop (l1 ⊔ l2) + leq-prop-cardinality = leq-prop-Cardinal (cardinality X) (cardinality Y) + + leq-cardinality : UU (l1 ⊔ l2) + leq-cardinality = leq-Cardinal (cardinality X) (cardinality Y) + + is-prop-leq-cardinality : is-prop leq-cardinality + is-prop-leq-cardinality = is-prop-leq-Cardinal + + eq-compute-leq-prop-cardinality : + leq-prop-cardinality = mere-emb-Prop (type-Set X) (type-Set Y) + eq-compute-leq-prop-cardinality = + ( htpy-eq + ( triangle-universal-property-trunc-Set + ( hom-set-Set (Cardinal-Set l2) (Prop-Set (l1 ⊔ l2))) + ( leq-prop-Cardinal') X) (cardinality Y)) ∙ + ( compute-leq-prop-Cardinal' X Y) + + eq-compute-leq-cardinality : + leq-cardinality = mere-emb (type-Set X) (type-Set Y) + eq-compute-leq-cardinality = + ap type-Prop eq-compute-leq-prop-cardinality + + compute-leq-cardinality : + leq-cardinality ≃ mere-emb (type-Set X) (type-Set Y) + compute-leq-cardinality = equiv-eq eq-compute-leq-cardinality + + unit-leq-cardinality : + mere-emb (type-Set X) (type-Set Y) → leq-cardinality + unit-leq-cardinality = map-inv-equiv compute-leq-cardinality + + inv-unit-leq-cardinality : + leq-cardinality → mere-emb (type-Set X) (type-Set Y) + inv-unit-leq-cardinality = pr1 compute-leq-cardinality +``` + +### Inequality on cardinals is reflexive + +```agda +refl-leq-cardinality : is-reflexive-Large-Relation Set leq-cardinality +refl-leq-cardinality A = unit-leq-cardinality A A (refl-mere-emb (type-Set A)) + +refl-leq-Cardinal : is-reflexive-Large-Relation Cardinal leq-Cardinal +refl-leq-Cardinal = + apply-dependent-universal-property-trunc-Set' + ( λ X → set-Prop (leq-prop-Cardinal X X)) + ( refl-leq-cardinality) +``` + +### Inequality on cardinals is transitive + +```agda +module _ + {l1 l2 l3 : Level} + where + + transitive-leq-cardinality : + (X : Set l1) (Y : Set l2) (Z : Set l3) → + leq-cardinality Y Z → leq-cardinality X Y → leq-cardinality X Z + transitive-leq-cardinality X Y Z Y≤Z X≤Y = + unit-leq-cardinality X Z + ( transitive-mere-emb + ( inv-unit-leq-cardinality Y Z Y≤Z) + ( inv-unit-leq-cardinality X Y X≤Y)) + + transitive-leq-Cardinal : + (X : Cardinal l1) (Y : Cardinal l2) (Z : Cardinal l3) → + leq-Cardinal Y Z → leq-Cardinal X Y → leq-Cardinal X Z + transitive-leq-Cardinal = + apply-thrice-dependent-universal-property-trunc-Set' + ( λ X Y Z → + ( leq-Cardinal Y Z → leq-Cardinal X Y → leq-Cardinal X Z) , + ( is-set-function-type + ( is-set-function-type + ( is-set-is-prop is-prop-leq-Cardinal)))) + ( transitive-leq-cardinality) +``` + +## Properties + +### Assuming excluded middle, then inequality is antisymmetric + +Using that mere equivalence characterizes equality of cardinals we can conclude +by the Cantor–Schröder–Bernstein theorem, assuming the law of excluded middle, +that `leq-Cardinal` is antisymmetric and hence a partial order. + +```agda +module _ + {l : Level} (lem : LEM l) + where + + antisymmetric-leq-cardinality : + (X Y : Set l) → + leq-cardinality X Y → + leq-cardinality Y X → + cardinality X = cardinality Y + antisymmetric-leq-cardinality X Y X≤Y Y≤X = + eq-mere-equiv-cardinality X Y + ( antisymmetric-mere-emb + ( lem) + ( inv-unit-leq-cardinality X Y X≤Y) + ( inv-unit-leq-cardinality Y X Y≤X)) + + antisymmetric-leq-Cardinal : + (X Y : Cardinal l) → + leq-Cardinal X Y → leq-Cardinal Y X → X = Y + antisymmetric-leq-Cardinal = + apply-twice-dependent-universal-property-trunc-Set' + ( λ X Y → + set-Prop + ( function-Prop + ( leq-Cardinal X Y) + ( function-Prop (leq-Cardinal Y X) (Id-Prop (Cardinal-Set l) X Y)))) + ( antisymmetric-leq-cardinality) +``` + +### The large poset of cardinals + +```agda +large-preorder-Cardinal : Large-Preorder lsuc (_⊔_) +large-preorder-Cardinal = + λ where + .type-Large-Preorder → Cardinal + .leq-prop-Large-Preorder → leq-prop-Cardinal + .refl-leq-Large-Preorder → refl-leq-Cardinal + .transitive-leq-Large-Preorder → transitive-leq-Cardinal + +large-poset-Cardinal : LEMω → Large-Poset lsuc (_⊔_) +large-poset-Cardinal lem = + λ where + .large-preorder-Large-Poset → large-preorder-Cardinal + .antisymmetric-leq-Large-Poset → antisymmetric-leq-Cardinal lem +``` + +## See also + +- [Complemented inequality of cardinals](set-theory.complemented-inequality-cardinals.md) + +## External links + +- [Cardinality](https://en.wikipedia.org/wiki/Cardinality) at Wikipedia +- [cardinal number](https://ncatlab.org/nlab/show/cardinal+number) at $n$Lab diff --git a/src/set-theory/infinite-sets.lagda.md b/src/set-theory/infinite-sets.lagda.md index d94e6be82f9..0016b645382 100644 --- a/src/set-theory/infinite-sets.lagda.md +++ b/src/set-theory/infinite-sets.lagda.md @@ -24,7 +24,7 @@ open import univalent-combinatorics.standard-finite-types A [set](foundation-core.sets.md) `A` is said to be {{#concept "infinite" Disambiguation="set" WD="infinite set" WDID=Q205140}} if -it contains arbitrarily [large](set-theory.cardinalities.md) +it contains arbitrarily [large](set-theory.cardinals.md) [finite](univalent-combinatorics.finite-types.md) [subsets](foundation-core.subtypes.md). diff --git a/src/univalent-combinatorics/complements-isolated-elements.lagda.md b/src/univalent-combinatorics/complements-isolated-elements.lagda.md index c993815344f..2a12c8eb1fb 100644 --- a/src/univalent-combinatorics/complements-isolated-elements.lagda.md +++ b/src/univalent-combinatorics/complements-isolated-elements.lagda.md @@ -27,7 +27,7 @@ open import univalent-combinatorics.finite-types ## Idea For any element `x` in a [finite type](univalent-combinatorics.finite-types.md) -`X` of [cardinality](set-theory.cardinalities.md) `n+1`, we can construct its +`X` of [cardinality](set-theory.cardinals.md) `n+1`, we can construct its **complement**, which is a type of cardinality `n`. ## Definition diff --git a/src/univalent-combinatorics/ferrers-diagrams.lagda.md b/src/univalent-combinatorics/ferrers-diagrams.lagda.md index 57d99eae92a..4d2809e13ea 100644 --- a/src/univalent-combinatorics/ferrers-diagrams.lagda.md +++ b/src/univalent-combinatorics/ferrers-diagrams.lagda.md @@ -40,7 +40,7 @@ ferrers diagram of a [finite type](univalent-combinatorics.finite-types.md) `A` consists of a finite type `X` and a family `Y` of inhabited finite types over `X` such that `Σ X Y` is merely equivalent to `A`. The number of finite Ferrers diagrams of `A` is the [partition number](univalent-combinatorics.partitions.md) -of the [cardinality](set-theory.cardinalities.md) of `A`. +of the [cardinality](set-theory.cardinals.md) of `A`. ## Definition diff --git a/src/univalent-combinatorics/kuratowski-finite-sets.lagda.md b/src/univalent-combinatorics/kuratowski-finite-sets.lagda.md index 7e7423d0377..d8e33ac8d4e 100644 --- a/src/univalent-combinatorics/kuratowski-finite-sets.lagda.md +++ b/src/univalent-combinatorics/kuratowski-finite-sets.lagda.md @@ -22,7 +22,9 @@ open import foundation.sets open import foundation.surjective-maps open import foundation.universe-levels -open import set-theory.cardinalities +open import set-theory.cardinals +open import set-theory.equality-cardinals +open import set-theory.inequality-cardinals open import univalent-combinatorics.dedekind-finite-sets open import univalent-combinatorics.dedekind-finite-types @@ -167,7 +169,7 @@ module _ ```agda cardinality-Kuratowski-Finite-Set : - {l : Level} → Kuratowski-Finite-Set l → cardinal l + {l : Level} → Kuratowski-Finite-Set l → Cardinal l cardinality-Kuratowski-Finite-Set X = cardinality (set-Kuratowski-Finite-Set X) @@ -177,11 +179,11 @@ module _ antisymmetric-leq-cardinality-Kuratowski-Finite-Set : leq-cardinality - ( cardinality-Kuratowski-Finite-Set X) - ( cardinality-Kuratowski-Finite-Set Y) → + ( set-Kuratowski-Finite-Set X) + ( set-Kuratowski-Finite-Set Y) → leq-cardinality - ( cardinality-Kuratowski-Finite-Set Y) - ( cardinality-Kuratowski-Finite-Set X) → + ( set-Kuratowski-Finite-Set Y) + ( set-Kuratowski-Finite-Set X) → cardinality-Kuratowski-Finite-Set X = cardinality-Kuratowski-Finite-Set Y antisymmetric-leq-cardinality-Kuratowski-Finite-Set p q =