Small ∞-groups
Content created by Egbert Rijke.
Created on 2024-03-23.
Last modified on 2024-03-23.
module higher-group-theory.small-higher-groups where
Imports
open import foundation.0-connected-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.identity-types open import foundation.images open import foundation.locally-small-types open import foundation.propositional-truncations open import foundation.propositions open import foundation.replacement open import foundation.small-types open import foundation.type-arithmetic-dependent-pair-types open import foundation.unit-type open import foundation.universe-levels open import higher-group-theory.equivalences-higher-groups open import higher-group-theory.higher-groups open import structured-types.pointed-equivalences open import structured-types.pointed-types open import structured-types.small-pointed-types
Idea
An ∞-group G
is said to be
small¶ with respect
to a universe 𝒰
if its underlying type is 𝒰
-small. By the
type theoretic replacement principle it follows
that G
is small if and only if its classifying type BG
is small. This
observation implies that an ∞-group G
is small if and only if it is
structurally small¶
in the sense that it comes equipped with an element of type
Σ (H : ∞-Group), G ≃ H,
where the type G ≃ H
is the type of
equivalences of ∞-groups.
Finally, we also introduce the notion of pointed small ∞-group. An ∞-group G
is said to be
pointed small¶
if its classifying pointed type BG
is
pointed small.
Definitions
The predicate of being a small ∞-group
module _ {l1 : Level} (l2 : Level) (G : ∞-Group l1) where is-small-prop-∞-Group : Prop (l1 ⊔ lsuc l2) is-small-prop-∞-Group = is-small-Prop l2 (type-∞-Group G) is-small-∞-Group : UU (l1 ⊔ lsuc l2) is-small-∞-Group = is-small l2 (type-∞-Group G) is-prop-is-small-∞-Group : is-prop is-small-∞-Group is-prop-is-small-∞-Group = is-prop-is-small l2 (type-∞-Group G)
The predicate of being a structurally small ∞-group
module _ {l1 : Level} (l2 : Level) (G : ∞-Group l1) where is-structurally-small-∞-Group : UU (l1 ⊔ lsuc l2) is-structurally-small-∞-Group = Σ (∞-Group l2) (equiv-∞-Group G) abstract is-prop-is-structurally-small-∞-Group : is-prop is-structurally-small-∞-Group is-prop-is-structurally-small-∞-Group = is-prop-equiv ( equiv-right-swap-Σ) ( is-prop-Σ ( is-prop-is-pointed-small-Pointed-Type ( classifying-pointed-type-∞-Group G)) ( λ H → is-prop-is-0-connected _)) is-structurally-small-prop-∞-Group : Prop (l1 ⊔ lsuc l2) pr1 is-structurally-small-prop-∞-Group = is-structurally-small-∞-Group pr2 is-structurally-small-prop-∞-Group = is-prop-is-structurally-small-∞-Group module _ {l1 l2 : Level} (G : ∞-Group l1) (H : is-structurally-small-∞-Group l2 G) where ∞-group-is-structurally-small-∞-Group : ∞-Group l2 ∞-group-is-structurally-small-∞-Group = pr1 H type-∞-group-is-structurally-small-∞-Group : UU l2 type-∞-group-is-structurally-small-∞-Group = type-∞-Group ∞-group-is-structurally-small-∞-Group equiv-∞-group-is-structurally-small-∞-Group : equiv-∞-Group G ∞-group-is-structurally-small-∞-Group equiv-∞-group-is-structurally-small-∞-Group = pr2 H equiv-is-structurally-small-∞-Group : type-∞-Group G ≃ type-∞-group-is-structurally-small-∞-Group equiv-is-structurally-small-∞-Group = equiv-equiv-∞-Group G ( ∞-group-is-structurally-small-∞-Group) ( equiv-∞-group-is-structurally-small-∞-Group)
The predicate of being a pointed small ∞-group
module _ {l1 : Level} (l2 : Level) (G : ∞-Group l1) where is-pointed-small-prop-∞-Group : Prop (l1 ⊔ lsuc l2) is-pointed-small-prop-∞-Group = is-pointed-small-prop-Pointed-Type l2 (classifying-pointed-type-∞-Group G) is-pointed-small-∞-Group : UU (l1 ⊔ lsuc l2) is-pointed-small-∞-Group = is-pointed-small-Pointed-Type l2 (classifying-pointed-type-∞-Group G) is-prop-is-pointed-small-∞-Group : is-prop is-pointed-small-∞-Group is-prop-is-pointed-small-∞-Group = is-prop-is-pointed-small-Pointed-Type (classifying-pointed-type-∞-Group G)
Properties
The classifying type of any small ∞-group is locally small
module _ {l1 l2 : Level} (G : ∞-Group l1) (H : is-small-∞-Group l2 G) where abstract is-locally-small-classifying-type-is-small-∞-Group' : (x y : classifying-type-∞-Group G) → shape-∞-Group G = x → shape-∞-Group G = y → is-small l2 (x = y) is-locally-small-classifying-type-is-small-∞-Group' ._ ._ refl refl = H abstract is-locally-small-classifying-type-is-small-∞-Group : is-locally-small l2 (classifying-type-∞-Group G) is-locally-small-classifying-type-is-small-∞-Group x y = apply-twice-universal-property-trunc-Prop ( mere-eq-classifying-type-∞-Group G (shape-∞-Group G) x) ( mere-eq-classifying-type-∞-Group G (shape-∞-Group G) y) ( is-small-Prop l2 (x = y)) ( is-locally-small-classifying-type-is-small-∞-Group' x y)
An ∞-group is small if and only if its classifying type is small
module _ {l1 l2 : Level} (G : ∞-Group l1) where abstract is-small-classifying-type-is-small-∞-Group : is-small-∞-Group l2 G → is-small l2 (classifying-type-∞-Group G) is-small-classifying-type-is-small-∞-Group H = is-small-equiv' ( im (point-∞-Group G)) ( compute-im-point-∞-Group G) ( replacement ( point-∞-Group G) ( is-small-unit) ( is-locally-small-classifying-type-is-small-∞-Group G H)) abstract is-small-is-small-classifying-type-∞-Group : is-small l2 (classifying-type-∞-Group G) → is-small-∞-Group l2 G is-small-is-small-classifying-type-∞-Group H = is-locally-small-is-small H (shape-∞-Group G) (shape-∞-Group G)
An ∞-group is small if and only if it is pointed small
module _ {l1 l2 : Level} (G : ∞-Group l1) where abstract is-pointed-small-is-small-∞-Group : is-small-∞-Group l2 G → is-pointed-small-∞-Group l2 G is-pointed-small-is-small-∞-Group H = is-pointed-small-is-small-Pointed-Type ( classifying-pointed-type-∞-Group G) ( is-small-classifying-type-is-small-∞-Group G H)
An ∞-group is small if and only if it is structurally small
module _ {l1 l2 : Level} (G : ∞-Group l1) where classifying-pointed-type-is-small-∞-Group : is-small-∞-Group l2 G → Pointed-Type l2 classifying-pointed-type-is-small-∞-Group H = pointed-type-is-pointed-small-Pointed-Type ( classifying-pointed-type-∞-Group G) ( is-pointed-small-is-small-∞-Group G H) classifying-type-is-small-∞-Group : is-small-∞-Group l2 G → UU l2 classifying-type-is-small-∞-Group H = type-is-pointed-small-Pointed-Type ( classifying-pointed-type-∞-Group G) ( is-pointed-small-is-small-∞-Group G H) abstract is-0-connected-classifying-type-is-small-∞-Group : (H : is-small-∞-Group l2 G) → is-0-connected (classifying-type-is-small-∞-Group H) is-0-connected-classifying-type-is-small-∞-Group H = is-0-connected-equiv' ( equiv-is-pointed-small-Pointed-Type ( classifying-pointed-type-∞-Group G) ( is-pointed-small-is-small-∞-Group G H)) ( is-0-connected-classifying-type-∞-Group G) ∞-group-is-small-∞-Group : is-small-∞-Group l2 G → ∞-Group l2 pr1 (∞-group-is-small-∞-Group H) = classifying-pointed-type-is-small-∞-Group H pr2 (∞-group-is-small-∞-Group H) = is-0-connected-classifying-type-is-small-∞-Group H pointed-type-∞-group-is-small-∞-Group : is-small-∞-Group l2 G → Pointed-Type l2 pointed-type-∞-group-is-small-∞-Group H = pointed-type-∞-Group (∞-group-is-small-∞-Group H) type-∞-group-is-small-∞-Group : is-small-∞-Group l2 G → UU l2 type-∞-group-is-small-∞-Group H = type-∞-Group (∞-group-is-small-∞-Group H) equiv-∞-group-is-small-∞-Group : (H : is-small-∞-Group l2 G) → equiv-∞-Group G (∞-group-is-small-∞-Group H) equiv-∞-group-is-small-∞-Group H = pointed-equiv-is-pointed-small-Pointed-Type ( classifying-pointed-type-∞-Group G) ( is-pointed-small-is-small-∞-Group G H) pointed-equiv-equiv-∞-group-is-small-∞-Group : (H : is-small-∞-Group l2 G) → pointed-type-∞-Group G ≃∗ pointed-type-∞-group-is-small-∞-Group H pointed-equiv-equiv-∞-group-is-small-∞-Group H = pointed-equiv-equiv-∞-Group G ( ∞-group-is-small-∞-Group H) ( equiv-∞-group-is-small-∞-Group H) equiv-equiv-∞-group-is-small-∞-Group : (H : is-small-∞-Group l2 G) → type-∞-Group G ≃ type-∞-group-is-small-∞-Group H equiv-equiv-∞-group-is-small-∞-Group H = equiv-equiv-∞-Group G ( ∞-group-is-small-∞-Group H) ( equiv-∞-group-is-small-∞-Group H) abstract is-structurally-small-is-small-∞-Group : is-small-∞-Group l2 G → is-structurally-small-∞-Group l2 G pr1 (is-structurally-small-is-small-∞-Group H) = ∞-group-is-small-∞-Group H pr2 (is-structurally-small-is-small-∞-Group H) = equiv-∞-group-is-small-∞-Group H abstract is-small-is-structurally-small-∞-Group : is-structurally-small-∞-Group l2 G → is-small-∞-Group l2 G pr1 (is-small-is-structurally-small-∞-Group H) = type-∞-group-is-structurally-small-∞-Group G H pr2 (is-small-is-structurally-small-∞-Group H) = equiv-is-structurally-small-∞-Group G H abstract is-small-∞-group-is-small-∞-Group : (H : is-small-∞-Group l2 G) → is-small-∞-Group l1 (∞-group-is-small-∞-Group H) pr1 (is-small-∞-group-is-small-∞-Group H) = type-∞-Group G pr2 (is-small-∞-group-is-small-∞-Group H) = inv-equiv (equiv-equiv-∞-group-is-small-∞-Group H)
Recent changes
- 2024-03-23. Egbert Rijke. Deloopings and Eilenberg-Mac Lane spaces (#1079).