Other Agda modules in this section (72)
- BaseChange.BaseChangeFamilyProjection
- BaseChange.BaseChangeNativePoints
- BaseChange.BaseChangeSubstitution
- BaseChange.BeckChevalley
- 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.
# Pasting the Beck–Chevalley evaluation cone Apply a relative functor to a cone, lift into the new evaluation domain, and then pass to the original domain. The resulting cone agrees with first pasting across the base-change square and then applying the projected relative functor. The comparison retains both projections. ```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.BeckChevalleyCones {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; coneIso-inverse; coneIso-pre; conePre-assoc) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConePasting 𝒯 using (module PasteCones) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus 𝒯 using (inverse-identity) open import SCT.VolumeI.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.Identifications 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeAction 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.BasePostcomposition 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.NativePullbackTargets 𝒯 M ℱ P using (module Target) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConePasting 𝒯 M ℱ P using (module Pasting) open import SCT.VolumeI.Chapter03.Section05.BaseChange.BeckChevalleyDomain 𝒯 M ℱ P using (module Domain) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.PullbackTriangles 𝒯 M ℱ P using (lift-triangle; module ToCone) module Pasted {S T S′ T′ D K X : CAT} (p : MAP S T) (b : MAP T′ T) (square : Cone p b S′) (g : MAP D T) (k : MAP K T′) (u : FunctorOver k (pullback₂ {f = g} {b})) (s : Cone k (Cone.right square) X) where module Dom = Domain p b square g open Dom using (h; p′; t; j₂; projected; into; into-over) module PasteK = PasteCones k b (coneSwap square) module PasteT = PasteCones t b (coneSwap square) lifted-cone = Action.value p′ u s ℓ = pullbackLift lifted-cone β = pullbackLift-β₂ lifted-cone target = Action.value p (Target.forward b g k u) (PasteK.flatten s) over = compose-over into-over (postbase h (lift-triangle lifted-cone)) first = coneIso-compose (coneIso-pre ℓ (pullbackLift-β Dom.cone)) (coneIso-inverse (conePre-assoc ℓ into (pullbackCone g p))) normalized = coneIso-compose (coneIso-pre ℓ Dom.normalization) first restricted = coneIso-compose (Action.restriction p projected ℓ (PasteT.flatten (pullbackCone t p′))) normalized pasted = coneIso-compose (Action.map-iso p projected (PasteT.flatten-pre ℓ (pullbackCone t p′))) restricted lifted = coneIso-compose (Action.map-iso p projected (PasteT.flatten-iso (pullbackLift-β lifted-cone))) pasted acted = coneIso-compose (Action.map-iso p projected (Pasting.flatten-action p b (coneSwap square) u s)) lifted composed = coneIso-compose (coneIso-inverse (compose-action p (postbase b u) projected (PasteK.flatten s))) acted cones : ConeIso (conePre (into ∘ ℓ) (pullbackCone g p)) target cones = coneIso-compose (action-identification p (inverse-iso-over (Target.forward-normalization b g k u)) (PasteK.flatten s)) composed private tail = (pullbackLift-β₂ Dom.cone ▷ ℓ) ∙ (comp-assoc ℓ into (pullback₂ {f = g} {p})) ⁻¹ assoc = comp-assoc ℓ j₂ h θ = FunctorLift.comparison over abstract normalized-right : ConeIso.rightIso normalized =₂ tail normalized-right = isoComp-unitˡ-at tail ∙ isoComp-cong (preWhisker-idIso (h ∘ j₂) ℓ) (idIso tail) restricted-right : ConeIso.rightIso restricted =₂ tail restricted-right = normalized-right ∙ isoComp-unitˡ-at (ConeIso.rightIso normalized) pasted-right : ConeIso.rightIso pasted =₂ (assoc ∙ tail) pasted-right = isoComp-cong (idIso assoc) restricted-right lifted-right : ConeIso.rightIso lifted =₂ θ lifted-right = (isoComp-assoc-at (h ◁ β) assoc tail) ⁻¹ ∙ isoComp-cong (idIso (h ◁ β)) pasted-right acted-right : ConeIso.rightIso acted =₂ θ acted-right = lifted-right ∙ isoComp-unitˡ-at (ConeIso.rightIso lifted) composed-right : ConeIso.rightIso composed =₂ θ composed-right = acted-right ∙ (isoComp-unitˡ-at (ConeIso.rightIso acted) ∙ isoComp-cong (inverse-identity (h ∘ Cone.right s)) (idIso (ConeIso.rightIso acted))) right-comparison : ConeIso.rightIso cones =₂ θ right-comparison = composed-right ∙ isoComp-unitˡ-at (ConeIso.rightIso composed) native-comparison : FunctorOverIso over (lift-triangle target) native-comparison = ToCone.comparison target over cones right-comparison ```