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.MappingCommutation
- MappingCalculus.MappingPrecomposition
- MappingCalculus.MappingRestriction
- MappingCalculus.MappingSegal
- MorphismCollections
- RecoveringSubcategories
- Subcategories
- SubcategoryAxiom
- SubcategoryClosure
- SubcategoryEquivalences
- SubcategoryFunctoriality
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# The action of a functor on mapping animae This is `cons:Post_Composition_On_Mapping_Spaces`. We curry internal composition to obtain the map sending a functor to its action on mapping animae. The comparisons below identify its specialization with ordinary postcomposition and construct the naturality square used in the definition of a subcategory. ```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 module SCT.VolumeI.Chapter03.Section01.MappingCalculus.MappingAction {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) where open import SCT.VolumeI.Chapter01.Section04.Setup π― open Mapping.MappingAnimae M open import SCT.VolumeI.Chapter01.Section04.Currying π― M open import SCT.VolumeI.Chapter01.Section04.Composition π― M open import SCT.VolumeI.Chapter01.Section04.Functoriality π― M open import SCT.VolumeI.Chapter01.Section04.Points π― M using (nameMap; decodeMap; oneProduct-in; nameMapIso; name-decode) open import SCT.VolumeI.Chapter01.Section04.CompositionCalculus.InternalCoherence π― M using (evaluate-compose) open import SCT.VolumeI.Chapter01.Section04.Core π― M using (coreInclusion; core-evaluation) mappingAction : (E C D : CAT) β MAP (Map C D) (Map (Map E C) (Map E D)) mappingAction E C D = mapCurry (map-isAn C D) mapComp mappingAction-Ξ² : (E C D : CAT) β mapUncurry (mappingAction E C D) =β mapComp mappingAction-Ξ² E C D = mapCurry-Ξ² (map-isAn C D) mapComp apply-mapPost : {Ξ E C D : CAT} (f : MAP C D) (g : MAP Ξ (Map E C)) (x : MAP Ξ E) β applyTerm (mapPost f β g) x =β (f β applyTerm g x) apply-mapPost f g x = comp-assoc (pair g x) mapEval f β ((mapPost-Ξ² f β· pair g x) β (mapUncurry-at (mapPost f) g x) β»ΒΉ) apply-nameMap : {Ξ C D : CAT} (f : MAP C D) (x : MAP Ξ C) β applyTerm (const (nameMap f)) x =β (f β x) apply-nameMap {Ξ} f x = (f β pair-Ξ²β (terminate Ξ) x) β (comp-assoc (pair (terminate Ξ) x) prβ f β ((mapCurry-Ξ² one-isAn (f β prβ) β· pair (terminate Ξ) x) β (mapUncurry-at (nameMap f) (terminate Ξ) x) β»ΒΉ)) mapPost-compose : {Ξ E C D F : CAT} (f : MAP D F) (g : MAP Ξ (Map C D)) (h : MAP Ξ (Map E C)) β isAn Ξ β (mapPost f β composeTerm g h) =β composeTerm (mapPost f β g) h mapPost-compose f g h Ξ-an = mapReflect Ξ-an _ _ (right β»ΒΉ β left) where left = (f β evaluate-compose g h) β mapPost-uncurry f (composeTerm g h) right = apply-mapPost f (g β prβ) (applyTerm (h β prβ) prβ) β (applyTerm-cong (comp-assoc prβ g (mapPost f)) (idIso (applyTerm (h β prβ) prβ)) β evaluate-compose (mapPost f β g) h) mapComp-projections : {E C D : CAT} β composeTerm (prβ {Map C D} {Map E C}) prβ =β mapComp mapComp-projections = comp-unitΚ³ mapComp β (mapComp β pair-projections) mapComp-post : {E C D F : CAT} (f : MAP D F) β (mapPost f β mapComp {E} {C} {D}) =β (mapComp β productMap (mapPost f) (id (Map E C))) mapComp-post {E} {C} {D} f = (mapComp β pair-cong (idIso (mapPost f β prβ)) (comp-unitΛ‘ prβ)) β»ΒΉ β (mapPost-compose f prβ prβ (product-isAn (map-isAn C D) (map-isAn E C)) β (mapPost f β mapComp-projections β»ΒΉ)) mappingAction-natural : {A C : CAT} (E D : CAT) (f : MAP A C) β (mapPost (mapPost {C = E} f) β mappingAction E D A) =β (mappingAction E D C β mapPost f) mappingAction-natural {A} {C} E D f = mapReflect (map-isAn D A) _ _ (right β»ΒΉ β (mapComp-post f β left)) where left = (mapPost f β mappingAction-Ξ² E D A) β mapPost-uncurry (mapPost f) (mappingAction E D A) right = (mappingAction-Ξ² E D C β· productMap (mapPost f) (id (Map E D))) β mapUncurry-restrict (mappingAction E D C) (mapPost f) compose-nameMap : {Ξ E C D : CAT} (f : MAP C D) (g : MAP Ξ (Map E C)) β isAn Ξ β composeTerm (const (nameMap f)) g =β (mapPost f β g) compose-nameMap f g Ξ-an = mapReflect Ξ-an _ _ (right β»ΒΉ β left) where left = apply-nameMap f (applyTerm (g β prβ) prβ) β (applyTerm-cong (const-pre (nameMap f) prβ) (idIso (applyTerm (g β prβ) prβ)) β evaluate-compose (const (nameMap f)) g) right = (f β mapUncurry-as-apply g) β mapPost-uncurry f g mappingAction-at : {Ξ E C D : CAT} (g : MAP Ξ (Map C D)) (h : MAP Ξ (Map E C)) β applyTerm (mappingAction E C D β g) h =β composeTerm g h mappingAction-at {E = E} {C} {D} g h = (mappingAction-Ξ² E C D β· pair g h) β (mapUncurry-at (mappingAction E C D) g h) β»ΒΉ mappingAction-specialize : {C D : CAT} (E : CAT) (f : MAP C D) β decodeMap (mappingAction E C D β nameMap f) =β mapPost {C = E} f mappingAction-specialize {C} {D} E f = comp-unitΚ³ (mapPost f) β (compose-nameMap f (id (Map E C)) (map-isAn E C) β (mappingAction-at (const (nameMap f)) (id (Map E C)) β (applyTerm-cong (comp-assoc (terminate (Map E C)) (nameMap f) (mappingAction E C D)) (idIso (id (Map E C))) β mapUncurry-at (mappingAction E C D β nameMap f) (terminate (Map E C)) (id (Map E C))))) mappingAction-name : {C D : CAT} (E : CAT) (f : MAP C D) β (mappingAction E C D β nameMap f) =β nameMap (mapPost {C = E} f) mappingAction-name {C} {D} E f = nameMapIso (mappingAction-specialize E f) β (name-decode (mappingAction E C D β nameMap f)) β»ΒΉ apply-mapPre : {Ξ B C D : CAT} (f : MAP B C) (g : MAP Ξ (Map C D)) (x : MAP Ξ B) β applyTerm (mapPre f β g) x =β applyTerm g (f β x) apply-mapPre f g x = (mapEval β (pair-cong (comp-unitΛ‘ g) (idIso (f β x)) β productMap-pair (id _) f g x)) β (comp-assoc (pair g x) (productMap (id _) f) mapEval β ((mapPre-Ξ² f β· pair g x) β (mapUncurry-at (mapPre f) g x) β»ΒΉ)) compose-named-right : {Ξ B C D : CAT} (f : MAP B C) (g : MAP Ξ (Map C D)) β isAn Ξ β composeTerm g (const (nameMap f)) =β (mapPre f β g) compose-named-right f g Ξ-an = mapReflect Ξ-an _ _ (right β»ΒΉ β left) where inner = apply-nameMap f prβ β applyTerm-cong (const-pre (nameMap f) prβ) (idIso prβ) left = applyTerm-cong (idIso (g β prβ)) inner β evaluate-compose g (const (nameMap f)) right = apply-mapPre f (g β prβ) prβ β (applyTerm-cong (comp-assoc prβ g (mapPre f)) (idIso prβ) β mapUncurry-as-apply (mapPre f β g)) evaluate-mapPre : {Ξ C D : CAT} (x : Obj-abs C) (f : MAP Ξ (Map C D)) β (coreInclusion D β (mapPre x β f)) =β applyTerm f (const x) evaluate-mapPre {Ξ} x f = applyTerm-cong (comp-unitΚ³ f) (idIso (const x)) β (apply-mapPre x (f β id Ξ) (terminate Ξ) β (applyTerm-cong (comp-assoc (id Ξ) f (mapPre x)) (idIso (terminate Ξ)) β (mapUncurry-at (mapPre x β f) (id Ξ) (terminate Ξ) β (core-evaluation (mapPre x β f)) β»ΒΉ))) mappingAction-restrict-point : {Ξ B C D : CAT} (f : MAP B C) (g : MAP Ξ (Map C D)) β isAn Ξ β (coreInclusion (Map B D) β (mapPre (nameMap f) β (mappingAction B C D β g))) =β (mapPre f β g) mappingAction-restrict-point f g Ξ-an = compose-named-right f g Ξ-an β (mappingAction-at g (const (nameMap f)) β evaluate-mapPre (nameMap f) (mappingAction _ _ _ β g)) ```