Other Agda modules in this section (72)
- BaseChange.BaseChangeNativePoints
- BaseChange.BaseChangeSubstitution
- BaseChange.BeckChevalley
- BaseChange.BeckChevalleyCones
- BaseChange.BeckChevalleyDomain
- BaseChange.BeckChevalleyEvaluation
- BaseChange.BeckChevalleyFamilies
- BaseChange.BeckChevalleyMapping
- BaseChange.BeckChevalleyUncurrying
- BaseChange.DependentProductSourceTransport
- BaseChange.DependentProductTargetTransport
- BaseChange.EvaluatedBaseChange
- BaseChange.ProductBaseChangeFamilies
- BaseChange.PullbackTargetsBaseChange
- ConstantFamilyEvaluation
- ConstantFamilyUniversalProperty
- Currying.ActedConeRestriction
- Currying.ChangedConeAction
- Currying.ConeRestrictionTriangles
- Currying.ConstantBaseFunctoriality
- Currying.CurryingPostcomposition
- Currying.DependentUncurryingFamilies
- Currying.EvaluatedPullbackTargets
- Currying.EvaluatedRelativeExponentialLaw
- Currying.FamilyProjection
- Currying.ParameterizedConeComparison
- Currying.ParameterizedPullbackPasting
- Currying.PointParameterProjection
- Currying.PointPullbackCone
- Currying.PointRestrictionOverBase
- Currying.PointRestrictionSquare
- Currying.ProjectedRelativeEvaluation
- Currying.PullbackTargetFamilies
- Currying.RelativeCurrying
- Currying.RelativeEvaluationFamilies
- Currying.RelativeTransposition
- Currying.SourceChangeFamilies
- Currying.TargetChangeIdentifications
- Currying.UncurriedFamilyProjection
- Currying.UncurriedFamilySubstitution
- Currying.UncurriedParameterComparison
- Currying.UncurriedTriangleComposition
- DependentProductAction
- DependentProductActionLaws
- DependentProductEmbeddings
- DependentProductUniqueness
- DependentProducts
- DependentProductsBaseChange
- ExponentiabilityCriterion
- ExponentiableFunctors
- InternalFunctorCalculus.ConstantFamilyInternalFunctors
- InternalFunctorCalculus.ConstantFamilyNativeEvaluation
- InternalFunctorCalculus.ConstantFamilyReassociation
- InternalFunctorCalculus.InternalEvaluation
- InternalFunctorCalculus.InternalProductFamily
- InternalFunctorCalculus.RelativeInternalFunctors
- InternalFunctorFibers
- InternalFunctorSections
- InternalFunctors
- InternalFunctorsBaseChange
- ProductCalculus.DependentProductActionIdentifications
- ProductCalculus.FunctorCategoryUncurrying
- ProductCalculus.ProductDependentProducts
- ProductCalculus.ProductDependentUncurrying
- ProductCalculus.ProductEvaluationComposition
- ProductCalculus.ProductEvaluationFamilies
- ProductCalculus.ProductFamilyProjection
- ProductCalculus.ProductFamilyReassociation
- ProductCalculus.ProductParameterCones
- ProductCalculus.ReassociatedProductLifting
- SectionsOfDependentProducts
- TerminalExponentiability
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Projecting a base-changed family After projection from the target pullback, base change is restriction along the first projection from the source pullback. The comparison includes the pullback matching identification and both source associators. This calculation applies to an arbitrary family. ```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.Section05.BaseChange.BaseChangeFamilyProjection {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.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.Identifications 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.StructureChange 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.Families.ArgumentFamilies 𝒯 M ℱ P using (module Argument) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.NativePullbackTargets 𝒯 M ℱ P using (module Target) open import SCT.VolumeI.Chapter03.Section05.Currying.PullbackTargetFamilies 𝒯 M ℱ P using (module Families) open import SCT.VolumeI.Chapter03.RelativeCategories.Families.Families 𝒯 M ℱ P using (universal) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeAction 𝒯 M ℱ P using (module Action) open import SCT.VolumeI.Chapter03.RelativeCategories.Evaluation.TriangleTransport 𝒯 M ℱ P using (compose-source-change) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.PullbackTriangles 𝒯 M ℱ P using (lift-triangle) import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.PulledFamilies as PulledFamilies module Change {C D S T : CAT} (p : MAP S T) (f : MAP C T) (g : MAP D T) where C′ = Pullback f p D′ = Pullback g p f′ : MAP C′ S f′ = pullback₂ g′ : MAP D′ S g′ = pullback₂ projection : FunctorOver (p ∘ f′) f projection = record { lift = pullback₁ ; comparison = pullbackMatch } module Arg = Argument projection module Project = Families p g f′ module At {X : CAT} (v : FunctorOver (f ∘ pr₂ {C = X}) g) where module Raw = PulledFamilies.Change.At 𝒯 M ℱ P {C = C} {D = D} {S = S} {T = T} p f g {X = X} v using (R; h; θ; Z; d; A; b; κ; tail; cone; pulled) open Raw public restricted = compose-over v (Arg.family X) raw : FunctorOver (p ∘ (f′ ∘ pr₂ {C = X})) g raw = record { lift = h ∘ R ; comparison = Cone.match cone } parameter-triangle : FunctorOver (p ∘ (f′ ∘ pr₂ {C = X})) (f ∘ pr₂ {C = X}) parameter-triangle = change-source Z (Arg.family X) parameter-cone : Cone (f ∘ pr₂ {C = X}) p (X × C′) parameter-cone = record { left = R ; right = f′ ∘ pr₂ ; match = FunctorLift.comparison parameter-triangle } acted-cone = Action.value p v parameter-cone abstract normalized : Cone.match cone =₂ (Z ∙ FunctorLift.comparison restricted) normalized = isoComp-cong (idIso Z) ((isoComp-assoc-at d ((A ⁻¹) ∙ (b ∙ κ)) tail) ⁻¹ ∙ (isoComp-cong (idIso d) ((isoComp-assoc-at (A ⁻¹) (b ∙ κ) tail) ⁻¹) ∙ isoComp-cong (idIso d) (isoComp-cong (idIso (A ⁻¹)) ((isoComp-assoc-at b κ tail) ⁻¹)))) raw-comparison : FunctorOverIso raw (change-source Z restricted) raw-comparison = triangle-identification _ _ _ normalized projection-comparison : FunctorOverIso (Project.forward pulled) restricted projection-comparison = compose-iso-over (source-change-inverse Z restricted) (change-source-iso (Z ⁻¹) (compose-iso-over raw-comparison (Target.forward-backward p g (f′ ∘ pr₂) raw))) abstract action-comparison : FunctorOverIso pulled (lift-triangle acted-cone) action-comparison = Target.backward-identification p g (f′ ∘ pr₂) (compose-iso-over (inverse-iso-over (compose-source-change Z (Arg.family X) v)) raw-comparison) ``` ## Identifications of base-changed families ```agda module Identification {C D S T : CAT} (p : MAP S T) (f : MAP C T) (g : MAP D T) where module Native = Change p f g abstract comparison : {X : CAT} {u v : FunctorOver (f ∘ pr₂ {C = X}) g} → FunctorOverIso u v → FunctorOverIso (Native.At.pulled u) (Native.At.pulled v) comparison {X} {u} {v} Φ = Native.Project.reflect _ _ (compose-iso-over (inverse-iso-over (Native.At.projection-comparison v)) (compose-iso-over (prewhisker-over (Native.Arg.family X) Φ) (Native.At.projection-comparison u))) ```