Other Agda modules in this section (24)
- ClosureCalculus.CompositionClosure
- ClosureCalculus.EmbeddingImageClosure
- ClosureCalculus.IsomorphismClosure
- GeneratedMorphisms
- IsomorphismCollections
- Lifting.CoconeLifting
- Lifting.CoproductLifting
- Lifting.EmbeddingLifting
- Lifting.EmbeddingRecognition
- Lifting.EndpointPullbacks
- Lifting.PresentationConsequences
- Lifting.TriangleLifting
- MappingCalculus.FiniteMappingLifts
- MappingCalculus.MappingAction
- MappingCalculus.MappingCommutation
- MappingCalculus.MappingPrecomposition
- MappingCalculus.MappingRestriction
- MappingCalculus.MappingSegal
- RecoveringSubcategories
- Subcategories
- SubcategoryAxiom
- SubcategoryClosure
- SubcategoryEquivalences
- SubcategoryFunctoriality
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# Collections of morphisms A collection is an anima embedded in `Map [1] C` (`def:Collection_Of_Morphisms`). Membership means factorization of the point representing an arrow, as in `conv:Morphisms_In_A_Collection`. It does not mean being a morphism internal to the collection's anima. ```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.Section06.PullbackLaws as Pullbacks import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Walking module SCT.VolumeI.Chapter03.Section01.MorphismCollections {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (P : Pullbacks.PullbackStructure π―) (I : Walking.WalkingMorphism π―) where open import SCT.VolumeI.Chapter01.Section04.Setup π― open Mapping.MappingAnimae M open Walking.WalkingMorphism I open import SCT.VolumeI.Chapter01.Section04.Points π― M using (nameMap) open import SCT.VolumeI.Chapter01.Section04.Functoriality π― M using (mapPost; mapPost-id; mapPost-comp; mapPre) open import SCT.VolumeI.Chapter01.Section06.EmbeddingCalculus.EmbeddingCalculus π― P using (IsEmbedding; embedding-reflect; equivalence-isEmbedding) open import SCT.VolumeI.Chapter03.Section01.Subcategories π― M P I using (IsSubcategory) record MorphismCollection (C : CAT) : Set (c β m β a) where field collection : CAT collection-isAn : isAn collection inclusion : MAP collection (Map [1] C) inclusion-isEmbedding : IsEmbedding inclusion Contains : MAP [1] C β Set m Contains f = FunctorLift inclusion (nameMap f) membership-unique : (f : MAP [1] C) (u v : Contains f) β FunctorLift.lift u =β FunctorLift.lift v membership-unique f u v = embedding-reflect inclusion inclusion-isEmbedding _ _ ((FunctorLift.comparison v) β»ΒΉ β FunctorLift.comparison u) abstract all-morphisms-inclusion-isEmbedding : (C : CAT) β IsEmbedding (id (Map [1] C)) all-morphisms-inclusion-isEmbedding C = equivalence-isEmbedding _ (id-isEquiv _) allMorphisms : (C : CAT) β MorphismCollection C allMorphisms C = record { collection = Map [1] C ; collection-isAn = map-isAn [1] C ; inclusion = id (Map [1] C) ; inclusion-isEmbedding = all-morphisms-inclusion-isEmbedding C } subcategoryMorphisms : {A C : CAT} (f : MAP A C) β IsSubcategory f β MorphismCollection C subcategoryMorphisms {A} f sub = record { collection = Map [1] A ; collection-isAn = map-isAn [1] A ; inclusion = mapPost f ; inclusion-isEmbedding = IsSubcategory.morphisms-isEmbedding sub } record ClosedUnderIdentities {C : CAT} (W : MorphismCollection C) : Set m where open MorphismCollection W field source-identity : FunctorLift inclusion (mapPre (const zero) β inclusion) target-identity : FunctorLift inclusion (mapPre (const one) β inclusion) ``` A functor preserves collections when its action on arrows factors through the specified target collection (`def:Functor_Preserving_Morphisms`). The factorization retains its comparison with the inclusions. ```agda PreservesMorphisms : {C D : CAT} β MAP C D β MorphismCollection C β MorphismCollection D β Set m PreservesMorphisms f V W = FunctorLift (MorphismCollection.inclusion W) (mapPost f β MorphismCollection.inclusion V) identity-preserves : {C : CAT} (W : MorphismCollection C) β PreservesMorphisms (id C) W W identity-preserves {C} W = record { lift = id (MorphismCollection.collection W) ; comparison = (comp-unitΛ‘ inclusion β (mapPost-id [1] C β· inclusion)) β»ΒΉ β comp-unitΚ³ inclusion } where open MorphismCollection W composition-preserves : {C D E : CAT} (f : MAP C D) (g : MAP D E) {U : MorphismCollection C} {V : MorphismCollection D} {W : MorphismCollection E} β PreservesMorphisms f U V β PreservesMorphisms g V W β PreservesMorphisms (g β f) U W composition-preserves f g {U} {V} {W} F G = record { lift = FunctorLift.lift G β FunctorLift.lift F ; comparison = (mapPost-comp f g β· MorphismCollection.inclusion U) β ((comp-assoc (MorphismCollection.inclusion U) (mapPost f) (mapPost g)) β»ΒΉ β ((mapPost g β FunctorLift.comparison F) β (comp-assoc (FunctorLift.lift F) (MorphismCollection.inclusion V) (mapPost g) β ((FunctorLift.comparison G β· FunctorLift.lift F) β (comp-assoc (FunctorLift.lift F) (FunctorLift.lift G) (MorphismCollection.inclusion W)) β»ΒΉ)))) } ```