Other Agda modules in this section (72)
- BaseChange.BaseChangeFamilyProjection
- BaseChange.BaseChangeNativePoints
- BaseChange.BaseChangeSubstitution
- BaseChange.BeckChevalley
- BaseChange.BeckChevalleyCones
- BaseChange.BeckChevalleyDomain
- BaseChange.BeckChevalleyEvaluation
- 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.
# The Beck–Chevalley comparison on whole families Restrict a family across the pullback pasting equivalence, or first base-change it and then enter the original evaluation domain. These operations agree over the old base. The proof combines the arbitrary cone-pasting calculation with the parameterized pasting comparison; no evaluation functor is needed for this geometric step. ```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.BeckChevalleyFamilies {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.ConeSymmetry 𝒯 using (coneSwap; coneIso-compose) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConePasting 𝒯 using (module PasteCones) open import SCT.VolumeI.Chapter01.Section06.PullbackSquares 𝒯 P using (IsPullback) 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.Evaluation.TriangleTransport 𝒯 M ℱ P using (compose-source-change) open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.BasePostcomposition 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeAction 𝒯 M ℱ P using (module Action) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.PullbackTriangles 𝒯 M ℱ P using (lift-triangle) 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.Section05.BaseChange.BaseChangeFamilyProjection 𝒯 M ℱ P using (module Change) open import SCT.VolumeI.Chapter03.Section05.Currying.ChangedConeAction 𝒯 M ℱ P using (module Changed) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.RestrictedConeLifts 𝒯 M ℱ P using (module Restriction) import SCT.VolumeI.Chapter03.Section05.Currying.ParameterizedPullbackPasting as ParameterPasting import SCT.VolumeI.Chapter03.Section05.BaseChange.BeckChevalleyCones as Cones module Family {S T S′ T′ D K X : CAT} (p : MAP S T) (b : MAP T′ T) (square : Cone p b S′) (square-isPullback : IsPullback square) (g : MAP D T) (k : MAP K T′) (u : FunctorOver (k ∘ pr₂ {C = X}) (pullback₂ {f = g} {b})) where h = Cone.left square p′ = Cone.right square t : MAP (Pullback g b) T′ t = pullback₂ module Parameters = ParameterPasting.Pasted 𝒯 M ℱ P p b square square-isPullback k X module Source = Families b g k v = Source.forward u native-v = Target.forward b g (k ∘ pr₂ {C = X}) u module New = Change.At p′ k t u module Old = Change.At p (b ∘ k) g v module Geometric = Cones.Pasted 𝒯 M ℱ P p b square g (k ∘ pr₂ {C = X}) u New.parameter-cone open Parameters using (H; N; O; rN; rO; flatten-over) J = comp-assoc (pr₂ {C = X} {D = N}) rN h α = comp-assoc (pr₂ {C = X} {D = K}) k b argument = Parameters.Arg.family X source-argument = change-source J argument target-cone = Geometric.target flattened = PasteCones.flatten (k ∘ pr₂ {C = X}) b (coneSwap square) New.parameter-cone restriction-cones : ConeIso (conePre H Old.acted-cone) target-cone restriction-cones = coneIso-compose (Changed.comparison p (α ⁻¹) native-v flattened) (coneIso-compose (Action.map-iso p v Parameters.comparison) (Action.restriction p v H Old.parameter-cone)) abstract restriction-right : ConeIso.rightIso restriction-cones =₂ FunctorLift.comparison source-argument restriction-right = isoComp-unitʳ-at (FunctorLift.comparison source-argument) ∙ isoComp-unitˡ-at (FunctorLift.comparison source-argument ∙ idIso (Cone.right Old.parameter-cone ∘ H)) restricted-lift : FunctorOverIso (compose-over (lift-triangle Old.acted-cone) source-argument) (lift-triangle target-cone) restricted-lift = Restriction.comparison Old.acted-cone target-cone source-argument restriction-cones restriction-right comparison : FunctorOverIso (change-source J (compose-over Old.pulled argument)) (compose-over Geometric.Dom.into-over (postbase h New.pulled)) comparison = compose-iso-over (inverse-iso-over (postwhisker-over Geometric.Dom.into-over (postbase-iso h New.action-comparison))) (compose-iso-over (inverse-iso-over Geometric.native-comparison) (compose-iso-over restricted-lift (compose-iso-over (inverse-iso-over (compose-source-change J argument (lift-triangle Old.acted-cone))) (change-source-iso J (prewhisker-over argument Old.action-comparison))))) ```