Finitely enumerable subtypes
Content created by Louis Wasserman.
Created on 2025-08-10.
Last modified on 2025-09-11.
module univalent-combinatorics.finitely-enumerable-subtypes where
Imports
open import foundation.action-on-identifications-functions open import foundation.cartesian-product-types open import foundation.cartesian-products-subtypes open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.existential-quantification open import foundation.fibers-of-maps open import foundation.function-types open import foundation.identity-types open import foundation.images open import foundation.images-subtypes open import foundation.inhabited-subtypes open import foundation.propositional-truncations open import foundation.propositions open import foundation.subtypes open import foundation.surjective-maps open import foundation.universe-levels open import univalent-combinatorics.finitely-enumerable-types
Idea
A subtype S
of a type X
is
finitely enumerable¶
if it is
finitely enumerable as a
type.
Definition
module _ {l1 l2 : Level} {X : UU l1} (S : subtype l2 X) where finite-enumeration-subtype : UU (l1 ⊔ l2) finite-enumeration-subtype = finite-enumeration (type-subtype S) is-finitely-enumerable-prop-subtype : Prop (l1 ⊔ l2) is-finitely-enumerable-prop-subtype = is-finitely-enumerable-prop (type-subtype S) is-finitely-enumerable-subtype : UU (l1 ⊔ l2) is-finitely-enumerable-subtype = is-finitely-enumerable (type-subtype S) finitely-enumerable-subtype : {l1 : Level} (l2 : Level) (X : UU l1) → UU (l1 ⊔ lsuc l2) finitely-enumerable-subtype l2 X = type-subtype (is-finitely-enumerable-prop-subtype {l2 = l2} {X = X}) module _ {l1 l2 : Level} {X : UU l1} (S : finitely-enumerable-subtype l2 X) where subtype-finitely-enumerable-subtype : subtype l2 X subtype-finitely-enumerable-subtype = pr1 S is-finitely-enumerable-subtype-finitely-enumerable-subtype : is-finitely-enumerable-subtype subtype-finitely-enumerable-subtype is-finitely-enumerable-subtype-finitely-enumerable-subtype = pr2 S type-finitely-enumerable-subtype : UU (l1 ⊔ l2) type-finitely-enumerable-subtype = type-subtype subtype-finitely-enumerable-subtype finitely-enumerable-type-finitely-enumerable-subtype : Finitely-Enumerable-Type (l1 ⊔ l2) finitely-enumerable-type-finitely-enumerable-subtype = ( type-finitely-enumerable-subtype , is-finitely-enumerable-subtype-finitely-enumerable-subtype) inclusion-finitely-enumerable-subtype : type-finitely-enumerable-subtype → X inclusion-finitely-enumerable-subtype = pr1
Properties
The property of being an inhabited finitely enumerable subtype
module _ {l1 l2 : Level} {X : UU l1} (S : finitely-enumerable-subtype l2 X) where is-inhabited-prop-finitely-enumerable-subtype : Prop (l1 ⊔ l2) is-inhabited-prop-finitely-enumerable-subtype = is-inhabited-subtype-Prop (subtype-finitely-enumerable-subtype S) is-inhabited-finitely-enumerable-subtype : UU (l1 ⊔ l2) is-inhabited-finitely-enumerable-subtype = is-inhabited-subtype (subtype-finitely-enumerable-subtype S)
The image of a finitely enumerable subtype under a map is finitely enumerable
module _ {l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} (f : X → Y) (S : finitely-enumerable-subtype l3 X) where subtype-im-finitely-enumerable-subtype : subtype (l1 ⊔ l2 ⊔ l3) Y subtype-im-finitely-enumerable-subtype = im-subtype f (subtype-finitely-enumerable-subtype S) abstract is-finitely-enumerable-subtype-im-finitely-enumerable-subtype : is-finitely-enumerable-subtype subtype-im-finitely-enumerable-subtype is-finitely-enumerable-subtype-im-finitely-enumerable-subtype = is-finitely-enumerable-im-Finitely-Enumerable-Type ( finitely-enumerable-type-finitely-enumerable-subtype S) ( f ∘ inclusion-finitely-enumerable-subtype S) im-finitely-enumerable-subtype : finitely-enumerable-subtype (l1 ⊔ l2 ⊔ l3) Y im-finitely-enumerable-subtype = ( subtype-im-finitely-enumerable-subtype , is-finitely-enumerable-subtype-im-finitely-enumerable-subtype)
Cartesian products of finitely enumerable subtypes
module _ {l1 l2 l3 l4 : Level} {X : UU l1} {Y : UU l2} (S : finitely-enumerable-subtype l3 X) (T : finitely-enumerable-subtype l4 Y) where product-finitely-enumerable-subtype : finitely-enumerable-subtype (l3 ⊔ l4) (X × Y) product-finitely-enumerable-subtype = let subS = subtype-finitely-enumerable-subtype S subT = subtype-finitely-enumerable-subtype T in ( product-subtype subS subT , is-finitely-enumerable-equiv ( inv-equiv ( equiv-product-subtype subS subT)) ( is-finitely-enumerable-product ( is-finitely-enumerable-subtype-finitely-enumerable-subtype S) ( is-finitely-enumerable-subtype-finitely-enumerable-subtype T)))
Recent changes
- 2025-09-11. Louis Wasserman. Inhabited totally bounded subspaces of metric spaces (#1542).
- 2025-09-06. Louis Wasserman. Inhabited finitely enumerable subtypes (#1530).
- 2025-08-31. Louis Wasserman. The image of a totally bounded metric space under a uniformly continuous function is totally bounded (#1513).
- 2025-08-10. Louis Wasserman. Finitely enumerable types (#1473).