Other Agda modules in this chapter (87)
- RelativeCategories.BaseChange.BaseChangeComparisonFamilies
- RelativeCategories.BaseChange.BaseChangeHigherIdentifications
- RelativeCategories.BaseChange.BasePostcomposition
- RelativeCategories.BaseChange.Identifications
- RelativeCategories.BaseChange.NativeProductBaseChange
- RelativeCategories.BaseChange.PulledFamilies
- RelativeCategories.BaseChange.SourceChange
- RelativeCategories.BaseChange.StructureChange
- RelativeCategories.Composition.EvaluatedPrecomposition
- RelativeCategories.Composition.Postcomposition
- RelativeCategories.Composition.PostcompositionEquivalences
- RelativeCategories.Composition.PostcompositionLaws
- RelativeCategories.Composition.PostcompositionReflection
- RelativeCategories.Composition.PrecompositionCompatibility
- RelativeCategories.ConeCalculus.ConeAction
- RelativeCategories.ConeCalculus.ConePasting
- RelativeCategories.ConeCalculus.ConeUncurrying
- RelativeCategories.ConeCalculus.EvaluatedRelativeCones
- RelativeCategories.ConeCalculus.NativePullbackTargets
- RelativeCategories.ConeCalculus.ProductTriangleCones
- RelativeCategories.ConeCalculus.PullbackRelativeComparisons
- RelativeCategories.ConeCalculus.PullbackTargets
- RelativeCategories.ConeCalculus.PullbackTriangles
- RelativeCategories.ConeCalculus.RelativeIntervalCones
- RelativeCategories.ConeCalculus.RestrictedConeLifts
- RelativeCategories.CoproductCalculus.CoproductDescent
- RelativeCategories.CoproductCalculus.CoproductFamilies
- RelativeCategories.CoproductCalculus.CoproductMapping
- RelativeCategories.Coproducts
- RelativeCategories.DecodedMorphisms
- RelativeCategories.DiagramMorphisms
- RelativeCategories.Equivalences
- RelativeCategories.Evaluation.BaseIdentityTriangles
- RelativeCategories.Evaluation.Evaluation
- RelativeCategories.Evaluation.EvaluationRestriction
- RelativeCategories.Evaluation.EvaluationUnitCoherence
- RelativeCategories.Evaluation.PointComputations
- RelativeCategories.Evaluation.PointReductionCoherence
- RelativeCategories.Evaluation.ProductDependentEvaluation
- RelativeCategories.Evaluation.ProductUncurryingTriangles
- RelativeCategories.Evaluation.RestrictionEquivalences
- RelativeCategories.Evaluation.TriangleTransport
- RelativeCategories.Evaluation.UncurriedBaseTriangles
- RelativeCategories.Evaluation.UncurriedTriangles
- RelativeCategories.Evaluation.Uncurrying
- RelativeCategories.Evaluation.UncurryingComposition
- RelativeCategories.Evaluation.UncurryingRestriction
- RelativeCategories.Evaluation.UncurryingSubstitution
- RelativeCategories.Families.AbsolutePointFamilies
- RelativeCategories.Families.ArgumentFamilies
- RelativeCategories.Families.DecodedFamilies
- RelativeCategories.Families.Families
- RelativeCategories.Families.FamilyReflection
- RelativeCategories.Families.IdentificationFamilies
- RelativeCategories.Families.IntervalParameters
- RelativeCategories.Families.NativePointFamilies
- RelativeCategories.Functors
- RelativeCategories.IdentificationCalculus.ComparisonAlgebra
- RelativeCategories.IdentificationCalculus.ComparisonEncoding
- RelativeCategories.IdentificationCalculus.ComparisonLifting
- RelativeCategories.IdentificationCalculus.ComparisonRestriction
- RelativeCategories.IdentificationCalculus.ConstantNameChange
- RelativeCategories.IdentificationCalculus.ConstantNameNaturality
- RelativeCategories.IdentificationCalculus.ConstantNameRestriction
- RelativeCategories.IdentificationCalculus.ConstantNameUnit
- RelativeCategories.IdentificationCalculus.EquivalenceReflectionComputation
- RelativeCategories.IdentificationCalculus.FixedBoundaryComparisons
- RelativeCategories.IdentificationCalculus.HigherEncoding
- RelativeCategories.IdentificationCalculus.NamedPointEvaluation
- RelativeCategories.IdentificationCalculus.NamingCoherence
- RelativeCategories.IdentificationCalculus.NamingComparisons
- RelativeCategories.IdentificationCalculus.NamingIdentifications
- RelativeCategories.IdentificationCalculus.NamingLaws
- RelativeCategories.IdentificationCalculus.PostNamingCoherence
- RelativeCategories.Identifications
- RelativeCategories.MorphismDiagramRecovery
- RelativeCategories.MorphismDiagrams
- RelativeCategories.MorphismPostcomposition
- RelativeCategories.MorphismRetargeting
- RelativeCategories.MorphismTriangles
- RelativeCategories.MorphismWhiskering
- RelativeCategories.Morphisms
- RelativeCategories.NamedMorphisms
- RelativeCategories.Products
- RelativeCategories.PullbackMorphismLifting
- RelativeCategories.PullbackMorphisms
- RelativeCategories.TerminalBase
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# Base change of the relative functor category For `con:Base_Change_Of_Functor_Categories`, apply pullback functoriality to the universal family of triangles over the base. Currying the resulting family gives the functor on relative functor categories. Taking cores gives its action on relative mapping animae. ```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 module SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.BaseChange {c m a : Level} (𝒯 : Theory c m a) (M : Mapping.MappingAnimae 𝒯) (ℱ : Categories.FunctorCategories 𝒯 M) (P : Pullbacks.PullbackStructure 𝒯) where open import SCT.VolumeI.Chapter01.Section05.Setup 𝒯 M open Pullbacks.PullbackStructure P open import SCT.VolumeI.Chapter01.Section06.Cones 𝒯 open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeAction 𝒯 using (cone-action) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeRestriction 𝒯 using (coneIso-compose; coneIso-inverse; coneIso-pre; conePre-assoc) open import SCT.VolumeI.Chapter01.Section07.Currying 𝒯 M ℱ open import SCT.VolumeI.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.Evaluation.Evaluation 𝒯 M ℱ P using (module Evaluation; module Curry) open import SCT.VolumeI.Chapter03.RelativeCategories.Evaluation.PointComputations 𝒯 M ℱ P using (module Family) open import SCT.VolumeI.Chapter03.RelativeCategories.Identifications 𝒯 M ℱ P using (FunctorOverIso) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeUncurrying 𝒯 M ℱ P using (module CurriedTriangle) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.EvaluatedRelativeCones 𝒯 M ℱ P using (EvaluatedCone) open import SCT.VolumeI.Chapter01.Section07.AbsoluteObjects 𝒯 M ℱ using (nameFun) open import SCT.VolumeI.Chapter01.Section07.Functoriality 𝒯 M ℱ using (funPost) open import SCT.VolumeI.Chapter03.RelativeCategories.Families.NativePointFamilies 𝒯 M ℱ P using (module CurriedFamily) open import SCT.VolumeI.Chapter03.RelativeCategories.Families.Families 𝒯 M ℱ P using (universal) import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.PulledFamilies as PulledFamilies module BaseChange {C D S T : CAT} (p : MAP S T) (f : MAP C T) (g : MAP D T) where X = FunOver f g C′ = Pullback f p D′ = Pullback g p f′ : MAP C′ S f′ = pullback₂ g′ : MAP D′ S g′ = pullback₂ module UniversalFamily = PulledFamilies.Change.At 𝒯 M ℱ P {C = C} {D = D} {S = S} {T = T} p f g {X = X} (universal f g) using (R; cone; pulled) parameter : MAP (X × C′) (X × C) parameter = UniversalFamily.R cone : Cone g p (X × C′) cone = UniversalFamily.cone evaluated : FunctorOver (f′ ∘ pr₂ {C = X}) g′ evaluated = UniversalFamily.pulled evaluation : MAP (X × C′) D′ evaluation = FunctorLift.lift evaluated evaluation-over : (g′ ∘ evaluation) =₁ (f′ ∘ pr₂) evaluation-over = FunctorLift.comparison evaluated module Curried = Curry f′ g′ evaluation evaluation-over using (functor; comparison; evaluation) abstract functor : MAP (FunOver f g) (FunOver f′ g′) functor = Curried.functor maps : MAP (MapOver f g) (MapOver f′ g′) maps = mapPost functor maps-as-core : maps =₁ mapPost functor maps-as-core = idIso maps family-comparison : FunctorOverIso (EvaluatedCone (conePre functor (pullbackCone (funPost g′) (nameFun f′)))) evaluated family-comparison = record { underlying = CurriedTriangle.evaluation-with-image f′ g′ evaluation evaluation-over ; compatible = CurriedTriangle.native-beta f′ g′ evaluation evaluation-over } evaluation-comparison : ConeIso (conePre (funUncurry (Over.forget f′ g′ ∘ functor)) (pullbackCone g p)) cone evaluation-comparison = coneIso-compose (pullbackLift-β cone) (cone-action (pullbackCone g p) Curried.evaluation) on-points-cone : (x : Obj-abs (MapOver f g)) → ConeIso (conePre (FunctorLift.lift (Over.decode-over f′ g′ (maps ∘ x))) (pullbackCone g p)) (conePre (Family.parameter f′ g′ functor x) cone) on-points-cone x = coneIso-compose (coneIso-pre (Family.parameter f′ g′ functor x) evaluation-comparison) (coneIso-compose (coneIso-inverse (conePre-assoc (Family.parameter f′ g′ functor x) (funUncurry (Over.forget f′ g′ ∘ functor)) (pullbackCone g p))) (cone-action (pullbackCone g p) (Family.comparison f′ g′ functor x))) on-points-over : (x : Obj-abs (MapOver f g)) → FunctorOverIso (Over.decode-over f′ g′ (maps ∘ x)) (compose-over evaluated (CurriedFamily.Evaluated.parameter f′ g′ evaluated x)) on-points-over x = CurriedFamily.comparison f′ g′ evaluated x ``` `on-points-over` retains the native triangle when evaluating the curried pullback family at a relative mapping point. `evaluation-comparison` compares the entire evaluated pullback cone. In particular, base change retains the original triangle's specified commutativity identification when constructing the new functor.