@@ -8,28 +8,37 @@ module foundation.set-quotients where
88
99``` agda
1010open import foundation.action-on-identifications-functions
11+ open import foundation.contractible-maps
12+ open import foundation.contractible-types
1113open import foundation.dependent-pair-types
1214open import foundation.effective-maps-equivalence-relations
1315open import foundation.embeddings
16+ open import foundation.equality-dependent-pair-types
1417open import foundation.equivalence-classes
1518open import foundation.equivalences
19+ open import foundation.fibers-of-maps
1620open import foundation.function-extensionality
21+ open import foundation.function-types
22+ open import foundation.functoriality-dependent-pair-types
23+ open import foundation.homotopies
1724open import foundation.identity-types
1825open import foundation.inhabited-subtypes
26+ open import foundation.logical-equivalences
1927open import foundation.reflecting-maps-equivalence-relations
2028open import foundation.sets
2129open import foundation.slice
2230open import foundation.surjective-maps
31+ open import foundation.torsorial-type-families
32+ open import foundation.transport-along-identifications
33+ open import foundation.type-arithmetic-dependent-pair-types
2334open import foundation.uniqueness-set-quotients
2435open import foundation.universal-property-image
2536open import foundation.universal-property-set-quotients
2637open import foundation.universe-levels
2738open import foundation.whiskering-homotopies-composition
2839
2940open import foundation-core.equivalence-relations
30- open import foundation-core.function-types
3141open import foundation-core.functoriality-dependent-function-types
32- open import foundation-core.homotopies
3342open import foundation-core.propositions
3443open import foundation-core.small-types
3544open import foundation-core.subtypes
@@ -152,7 +161,37 @@ module _
152161 ( is-surjective-quotient-map)
153162```
154163
155- ### The map ` class : A → equivalence-class R ` is an effective quotient map
164+ ## Properties
165+
166+ ### Any element is in the class of its quotient
167+
168+ ``` agda
169+ module _
170+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
171+ (x : A)
172+ where
173+
174+ is-in-equivalence-class-quotient-map-set-quotient :
175+ is-in-equivalence-class-set-quotient
176+ ( R)
177+ ( quotient-map R x)
178+ ( x)
179+ is-in-equivalence-class-quotient-map-set-quotient =
180+ is-in-equivalence-class-eq-equivalence-class
181+ ( R)
182+ ( x)
183+ ( equivalence-class-set-quotient R (quotient-map R x))
184+ ( inv
185+ ( is-retraction-equivalence-class-set-quotient R (class R x)))
186+
187+ inhabitant-equivalence-class-quotient-map-set-quotient :
188+ type-subtype
189+ ( subtype-set-quotient R (quotient-map R x))
190+ inhabitant-equivalence-class-quotient-map-set-quotient =
191+ (x , is-in-equivalence-class-quotient-map-set-quotient)
192+ ```
193+
194+ ### The map ` class : A → set-quotient R ` is an effective quotient map
156195
157196``` agda
158197module _
@@ -417,6 +456,135 @@ module _
417456 B f Uf
418457```
419458
459+ ### Any quotient class containing a given element ` x ` is equal to ` quotient-map x `
460+
461+ ``` agda
462+ module _
463+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
464+ where
465+
466+ eq-set-quotient-equivalence-class-set-quotient :
467+ (X : set-quotient R) {x : A} →
468+ is-in-equivalence-class-set-quotient R X x →
469+ quotient-map R x = X
470+ eq-set-quotient-equivalence-class-set-quotient X {x} H =
471+ ( ap
472+ ( set-quotient-equivalence-class R)
473+ ( eq-class-equivalence-class
474+ ( R)
475+ ( equivalence-class-set-quotient R X)
476+ ( H))) ∙
477+ ( is-section-equivalence-class-set-quotient R X)
478+ ```
479+
480+ ### Two quotient classes that contain similar elements are equal
481+
482+ ``` agda
483+ module _
484+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
485+ where
486+
487+ eq-set-quotient-sim-element-set-quotient :
488+ (X : set-quotient R) {x : A} →
489+ (Y : set-quotient R) {y : A} →
490+ is-in-equivalence-class-set-quotient R X x →
491+ is-in-equivalence-class-set-quotient R Y y →
492+ sim-equivalence-relation R x y →
493+ X = Y
494+ eq-set-quotient-sim-element-set-quotient X {x} Y {y} x∈X y∈Y x~y =
495+ ( ( inv (eq-set-quotient-equivalence-class-set-quotient R X x∈X)) ∙
496+ ( apply-effectiveness-quotient-map' R x~y) ∙
497+ ( eq-set-quotient-equivalence-class-set-quotient R Y y∈Y))
498+ ```
499+
500+ ### Two elements in the same quotient class are similar
501+
502+ ``` agda
503+ module _
504+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
505+ where
506+
507+ sim-is-in-equivalence-class-set-quotient :
508+ (X : set-quotient R) {x y : A} →
509+ is-in-equivalence-class-set-quotient R X x →
510+ is-in-equivalence-class-set-quotient R X y →
511+ sim-equivalence-relation R x y
512+ sim-is-in-equivalence-class-set-quotient X {x} {y} x∈X y∈X =
513+ apply-effectiveness-quotient-map
514+ ( R)
515+ ( ( eq-set-quotient-equivalence-class-set-quotient R X x∈X) ∙
516+ ( inv (eq-set-quotient-equivalence-class-set-quotient R X y∈X)))
517+ ```
518+
519+ ### Any element in the quotient class of another is similar to it
520+
521+ ``` agda
522+ module _
523+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
524+ where
525+
526+ sim-is-in-equivalence-class-quotient-map-set-quotient :
527+ (x y : A) →
528+ is-in-equivalence-class-set-quotient
529+ ( R)
530+ ( quotient-map R x)
531+ ( y) →
532+ sim-equivalence-relation R x y
533+ sim-is-in-equivalence-class-quotient-map-set-quotient x y =
534+ sim-is-in-equivalence-class-set-quotient
535+ ( R)
536+ ( quotient-map R x)
537+ ( is-in-equivalence-class-quotient-map-set-quotient R x)
538+ ```
539+
540+ ### Σ-decompositions of types induced by set quotients
541+
542+ ``` agda
543+ module _
544+ {l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
545+ where
546+
547+ abstract
548+ is-torsorial-is-in-equivalence-class-set-quotient :
549+ (x : A) →
550+ is-contr
551+ ( Σ ( set-quotient R)
552+ ( λ X → is-in-equivalence-class-set-quotient R X x))
553+ is-torsorial-is-in-equivalence-class-set-quotient x =
554+ is-contr-equiv'
555+ ( Σ (equivalence-class R) (λ X → is-in-equivalence-class R X x))
556+ ( equiv-Σ
557+ ( λ X → is-in-equivalence-class-set-quotient R X x)
558+ ( compute-set-quotient R)
559+ ( λ X →
560+ equiv-iff-is-prop
561+ ( is-prop-is-in-equivalence-class R X x)
562+ ( is-prop-is-in-equivalence-class-set-quotient
563+ ( R)
564+ ( set-quotient-equivalence-class R X)
565+ ( x))
566+ ( λ x∈X →
567+ inv-tr
568+ ( λ Y → is-in-equivalence-class R Y x)
569+ ( is-retraction-equivalence-class-set-quotient R X)
570+ ( x∈X))
571+ ( λ x∈X →
572+ tr
573+ ( λ Y → is-in-equivalence-class R Y x)
574+ ( is-retraction-equivalence-class-set-quotient R X)
575+ ( x∈X))))
576+ ( is-torsorial-is-in-equivalence-class R x)
577+
578+ equiv-total-set-quotient :
579+ Σ ( set-quotient R)
580+ ( type-subtype ∘ is-in-equivalence-class-set-quotient-Prop R) ≃
581+ ( A)
582+ equiv-total-set-quotient =
583+ ( right-unit-law-Σ-is-contr
584+ ( is-torsorial-is-in-equivalence-class-set-quotient)) ∘e
585+ ( equiv-left-swap-Σ)
586+ ```
587+
420588## See also
421589
422590- [ Set coequalizers] ( foundation.set-coequalizers.md ) for an equivalent notion
0 commit comments