Other Agda modules in this section (72)
- BaseChange.BaseChangeFamilyProjection
- BaseChange.BaseChangeNativePoints
- BaseChange.BaseChangeSubstitution
- BaseChange.BeckChevalley
- BaseChange.BeckChevalleyCones
- 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.
# The evaluation-domain cone in base change The expanded cone defining Beck–Chevalley is the pasting of the source pullback with the given square, followed by projection from the target pullback. This identification changes only the association of the specified matching paths. ```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.BeckChevalleyDomain {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; cone-match-change) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConePasting 𝒯 using (module PasteCones) open import SCT.VolumeI.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeAction 𝒯 M ℱ P using (module Action) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.NativePullbackTargets 𝒯 M ℱ P using (module Target) module Domain {S T S′ T′ D : CAT} (p : MAP S T) (b : MAP T′ T) (square : Cone p b S′) (g : MAP D T) where h = Cone.left square p′ = Cone.right square E = Pullback g b t : MAP E T′ t = pullback₂ source = Pullback t p′ j₁ : MAP source E j₁ = pullback₁ j₂ : MAP source S′ j₂ = pullback₂ π : MAP E D π = pullback₁ projected : FunctorOver (b ∘ t) g projected = record { lift = π ; comparison = pullbackMatch } module Paste = PasteCones t b (coneSwap square) cone : Cone g p source cone = record { left = π ∘ j₁ ; right = h ∘ j₂ ; match = comp-assoc j₂ h p ∙ ((Cone.match square ⁻¹ ▷ j₂) ∙ ((comp-assoc j₂ p′ b) ⁻¹ ∙ ((b ◁ pullbackMatch {f = t} {p′}) ∙ (comp-assoc j₁ t b ∙ ((pullbackMatch {f = g} {b} ▷ j₁) ∙ (comp-assoc j₁ π g) ⁻¹))))) } pasted = Action.value p projected (Paste.flatten (pullbackCone t p′)) into : MAP source (Pullback g p) into = pullbackLift cone into-over : FunctorOver (h ∘ j₂) (pullback₂ {f = g} {p}) into-over = record { lift = into ; comparison = pullbackLift-β₂ cone } private A = comp-assoc j₂ h p s = Cone.match square ⁻¹ ▷ j₂ B = (comp-assoc j₂ p′ b) ⁻¹ ρ = b ◁ pullbackMatch {f = t} {p′} J = comp-assoc j₁ t b tail = (pullbackMatch {f = g} {b} ▷ j₁) ∙ (comp-assoc j₁ π g) ⁻¹ ν = A ∙ (s ∙ B) ζ = ρ ∙ J rest = ρ ∙ (J ∙ tail) abstract matching : Cone.match pasted =₂ Cone.match cone matching = isoComp-cong (idIso A) (isoComp-assoc-at s B rest) ∙ (isoComp-assoc-at A (s ∙ B) rest ∙ (isoComp-cong (idIso ν) (isoComp-assoc-at ρ J tail) ∙ isoComp-assoc-at ν ζ tail)) normalization : ConeIso cone pasted normalization = cone-match-change _ _ _ _ (matching ⁻¹) ```