Other Agda modules in this section (12)
- Factorization.FullSubcategoryEquivalences
- Factorization.FullSubcategoryFactorization
- Factorization.ObjectCollectionClosure
- Factorization.ObjectFactorizationFamilies
- Factorization.ProductEmbeddings
- FullSubcategories
- FullSubcategoryCharacterization
- FullSubcategoryProducts
- FullSubcategoryPullbacks
- ObjectCollections
- SpannedFunctoriality
- SpannedSubcategories
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# The core of a spanned subcategory For `lem:Core_Full_Subcategory`, the identity of an object supplies its image in the chosen object collection. Conversely, the collection maps into the subcategory by the object-factorization criterion. Embedding of the collection and the subcategory inclusion proves the two are equivalent over the ambient core. ```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 module SCT.VolumeI.Chapter03.Section02.SpannedCore {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) where open import SCT.VolumeI.Chapter01.Section05.Setup π― M open Walking.WalkingMorphism I open import SCT.VolumeI.Chapter02.Section01.EvaluationCalculus.CoreInclusions π― M open import SCT.VolumeI.Chapter01.Section04.EquivalenceDetection π― M using (mapPost-reflect) open import SCT.VolumeI.Chapter01.Section06.EmbeddingCalculus.EmbeddingCalculus π― P using (IsEmbedding; embedding-reflect; embedding-cong; embedding-with-section; module LeftCancellation) open import SCT.VolumeI.Chapter01.Section06.EmbeddingCharacterizations π― M P using (map-preserves-embedding) open import SCT.VolumeI.Chapter03.Section01.MappingCalculus.MappingCommutation π― M using (mapPre-mapPost) open import SCT.VolumeI.Chapter03.Section01.SubcategoryAxiom π― M β± P I E S using (SubcategoryPresentation) open import SCT.VolumeI.Chapter03.Section01.Lifting.PresentationConsequences π― M β± P I E S using (module Presented) open import SCT.VolumeI.Chapter03.Section02.ObjectCollections π― M P I open import SCT.VolumeI.Chapter03.Section02.Factorization.ObjectCollectionClosure π― M β± P I E S using (module Closure) open import SCT.VolumeI.Chapter03.Section02.SpannedSubcategories π― M β± P I E S using (module FactorFromObjects) core-reflect : {X C : CAT} β isAn X β (f g : MAP X (Core C)) β (coreInclusion C β f) =β (coreInclusion C β g) β f =β g core-reflect {X} {C} xAn = mapPost-reflect (coreInclusion C) (core-universal X C xAn) core-of-core-map : {X C : CAT} (h : MAP X (Core C)) β mapPost {C = One} (coreInclusion C β h) =β (h β coreInclusion X) core-of-core-map {X} {C} h = core-reflect (core-isAn X) _ _ (comp-assoc (coreInclusion X) h (coreInclusion C) β coreInclusion-natural (coreInclusion C β h)) module CoreComparison {C : CAT} (V : ObjectCollection C) (A : SubcategoryPresentation (SpannedMorphisms.collectionOfMorphisms V)) where X = ObjectCollection.collection V j = ObjectCollection.inclusion V j-embedding = ObjectCollection.inclusion-isEmbedding V G = SubcategoryPresentation.subcategory A i = SubcategoryPresentation.inclusion A a = FunctorLift.lift (SubcategoryPresentation.arrows A) Ξ² = FunctorLift.comparison (SubcategoryPresentation.arrows A) e = mapPre {D = G} (terminate [1]) source = Closure.sourceObject V comparison : MAP (Core G) X comparison = (source β a) β e identity-source : (mapPre {D = G} zero β e) =β id (Core G) identity-source = mapPre-id One G β (mapPre-cong (terminal-iso (terminate [1] β zero) (id One)) β mapPre-comp zero (terminate [1])) source-on-arrows : (j β (source β a)) =β (mapPre zero β mapPost i) source-on-arrows = (mapPre zero β Ξ²) β (comp-assoc a (SpannedMorphisms.morphisms-inclusion V) (mapPre zero) β ((Closure.source-frame V β»ΒΉ β· a) β (comp-assoc a source j) β»ΒΉ)) over-core : (j β comparison) =β mapPost {C = One} i over-core = comp-unitΚ³ (mapPost i) β ((mapPost i β identity-source) β (comp-assoc e (mapPre zero) (mapPost i) β ((mapPre-mapPost zero i β· e) β ((source-on-arrows β· e) β (comp-assoc e (source β a) j) β»ΒΉ)))) objects : FunctorLift j (mapPost {C = One} (coreInclusion C β j)) objects = record { lift = coreInclusion X ; comparison = (core-of-core-map j) β»ΒΉ } lifted = FactorFromObjects.factorization V A (coreInclusion C β j) objects module Reverse = CoreLift (ObjectCollection.collection-isAn V) (FunctorLift.lift lifted) inverse : MAP X (Core G) inverse = Reverse.lift inverse-over-core : (mapPost i β inverse) =β j inverse-over-core = core-reflect (ObjectCollection.collection-isAn V) _ _ ((FunctorLift.comparison lifted) β ((i β Reverse.comparison) β (comp-assoc inverse (coreInclusion G) i β ((coreInclusion-natural i β· inverse) β (comp-assoc inverse (mapPost i) (coreInclusion C)) β»ΒΉ)))) abstract comparison-isEmbedding : IsEmbedding comparison comparison-isEmbedding = LeftCancellation.cancel comparison j j-embedding (embedding-cong (over-core β»ΒΉ) (map-preserves-embedding One i (Presented.inclusion-isEmbedding _ A))) section : (comparison β inverse) =β id X section = embedding-reflect j j-embedding _ _ ((comp-unitΚ³ j) β»ΒΉ β (inverse-over-core β ((over-core β· inverse) β (comp-assoc inverse comparison j) β»ΒΉ))) comparison-isEquiv : IsEquiv comparison comparison-isEquiv = embedding-with-section comparison comparison-isEmbedding inverse section ```