Other Agda modules in this section (27)
- CoconeCalculus.CoconeBridgeReversal
- CoconeCalculus.CoconeCoreExtensions
- CoconeCalculus.CoconeCoreLifting
- CoconeCalculus.CoconePostAssociativity
- CoconeCalculus.CoconeRestrictionLifting
- CoconeCalculus.CoconeRestrictionPostcomposition
- CoconeCalculus.CoconeRestrictionUniversality
- CoconeCalculus.CoconeSpanRestriction
- CoconeCalculus.CoconeSquareRestriction
- CoconeCalculus.DiagramInterchange
- CoconeCalculus.RealizationCoconeComparison
- EmptyCore
- EmptySubcategory
- FundamentalGroupoids
- GeometricRealization
- GeometricRealizationCriteria
- GroupoidCriterion
- IsomorphismSubcategoryCore
- ObjectwiseNaturalIsomorphisms
- RealizationOfGroupoids
- RealizationOfInterval
- RealizationPushouts
- RecognitionCalculus.ConstantFullSubcategory
- RecognitionCalculus.GroupoidRealizationInterval
- RecognitionCalculus.InvertingFromGroupoids
- RecognitionCalculus.InvertingInterval
- RecognitionCalculus.RealizationComparisons
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Why the realization is a groupoid This is `(7) β (1)` in `prop:Equivalent_Conditions_Geometric_Realization`. The localization factors through the subcategory of isomorphisms in its target. If that subcategory is the core, it therefore factors through the core. This factor still inverts all source arrows, so extends across the localization. Uniqueness after restriction makes the extension a section of the core inclusion. That inclusion is an embedding, hence an equivalence. ```agda {-# OPTIONS --safe --without-K #-} open import Agda.Primitive using (Level) open import SCT.VolumeI.Chapter01.Theory using (Theory) import SCT.VolumeI.Chapter01.Section04.MappingAnimae as Mapping import SCT.VolumeI.Chapter01.Section07.FunctorCategories as Categories import SCT.VolumeI.Chapter01.Section06.PullbackLaws as Pullbacks import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Walking import SCT.VolumeI.Chapter02.Section01.IntervalEndpoints as Endpoints import SCT.VolumeI.Chapter02.Section02.SegalAxiom as Segal import SCT.VolumeI.Chapter02.Section01.CommutativeSquareAxiom as Squares import SCT.VolumeI.Chapter02.Section03.RezkAxiom as Rezk import SCT.VolumeI.Chapter02.Section05.Recognition as Recognition module SCT.VolumeI.Chapter03.Section04.RealizationGroupoidCriterion {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) (P : Pullbacks.PullbackStructure π―) (I : Walking.WalkingMorphism π―) (E : Endpoints.IntervalEndpoints π― M β± P I) (S : Segal.SegalAxiom π― M β± P I E) (Q : Squares.CommutativeSquareAxiom π― M β± P I E) (R : Rezk.RezkAxiom π― M β± P I E) (N : Recognition.RecognitionAxiom π― M β± P I E R) where open import SCT.VolumeI.Chapter01.Section05.Setup π― M open Walking.WalkingMorphism I open import SCT.VolumeI.Chapter01.Section04.Core π― M using (Core; coreInclusion; core-isAn) open import SCT.VolumeI.Chapter01.Section06.Embeddings π― P using (embedding-with-section) open import SCT.VolumeI.Chapter02.Section04.BasicClosure π― M β± P I E R using (IsGroupoid; equivalence-preserves-groupoid) open Recognition.RecognitionAxiom N using (anima-isGroupoid) open import SCT.VolumeI.Chapter02.Section05.PullbackAnimae π― M β± P I E S Q R N using (coreInclusion-isEmbedding) open import SCT.VolumeI.Chapter03.Section01.MorphismCollections π― M P I using (allMorphisms) open import SCT.VolumeI.Chapter03.Section01.IsomorphismCollections π― M β± P I E S Q using (isomorphisms; isomorphismInclusion) open import SCT.VolumeI.Chapter03.Section01.SubcategoryAxiom π― M β± P I E S using (SubcategoryAxiom; SubcategoryPresentation) open import SCT.VolumeI.Chapter03.Section01.Lifting.PresentationConsequences π― M β± P I E S using (module Presented) open import SCT.VolumeI.Chapter03.Section03.InvertingFunctors π― M β± P I E S Q using (Inverts) open import SCT.VolumeI.Chapter03.Section03.MappingCalculus.InvertingGroupoids π― M β± P I E S Q R using (isomorphisms-of-groupoid) open import SCT.VolumeI.Chapter03.Section03.Localizations π― M β± P I E S Q R using (module WithSubcategories) open import SCT.VolumeI.Chapter03.Section03.LocalizationUniversal π― M β± P I E S Q R using (module Universal) module FromCore (L : SubcategoryAxiom) {C T : CAT} (l : MAP C T) (localization : WithSubcategories.IsLocalization L (allMorphisms C) l) (A : SubcategoryPresentation (isomorphisms T)) (h : MAP (Core T) (SubcategoryPresentation.subcategory A)) (equivalent : IsEquiv h) (over : (SubcategoryPresentation.inclusion A β h) =β coreInclusion T) where open WithSubcategories L using (IsLocalization) i = SubcategoryPresentation.inclusion A inverts : FunctorLift (isomorphismInclusion T) (mapPost {C = [1]} l) inverts = record { lift = FunctorLift.lift (IsLocalization.inverts localization) ; comparison = comp-unitΚ³ (mapPost l) β FunctorLift.comparison (IsLocalization.inverts localization) } module Factor = Presented.Factor (isomorphisms T) A l inverts using (factor; comparison) chosen = equiv-lift equivalent Factor.factor core-factor : MAP C (Core T) core-factor = FunctorLift.lift chosen core-factor-over : (coreInclusion T β core-factor) =β l core-factor-over = Factor.comparison β ((i β FunctorLift.comparison chosen) β (comp-assoc core-factor h i β (over β»ΒΉ β· core-factor))) core-factor-inverts : Inverts core-factor (allMorphisms C) core-factor-inverts = equiv-lift (isomorphisms-of-groupoid (Core T) (anima-isGroupoid (core-isAn T))) (mapPost core-factor β id (Map [1] C)) module UP = Universal L (allMorphisms C) l localization using (module Factor; restriction-reflects) module Extension = UP.Factor core-factor core-factor-inverts using (factor; comparison) section : MAP T (Core T) section = Extension.factor section-law : (coreInclusion T β section) =β id T section-law = UP.restriction-reflects _ _ ((comp-unitΛ‘ l) β»ΒΉ β (core-factor-over β ((coreInclusion T β Extension.comparison) β comp-assoc l section (coreInclusion T)))) abstract core-inclusion-isEquiv : IsEquiv (coreInclusion T) core-inclusion-isEquiv = embedding-with-section (coreInclusion T) (coreInclusion-isEmbedding T) section section-law realization-isGroupoid : IsGroupoid T realization-isGroupoid = equivalence-preserves-groupoid (coreInclusion T) core-inclusion-isEquiv (anima-isGroupoid (core-isAn T)) ```