Other Agda modules in this section (72)
- BaseChange.BaseChangeFamilyProjection
- 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.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.
# Evaluating the base-change cone at a point The cone defining base change of a universal family restricts to the ordinary cone defining base change of its value at a point. The matching calculation uses the point-restriction square and naturality in the original cone's specified matching identification. ```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 import SCT.VolumeI.Chapter01.Section04.SquareCalculus.ProjectionSquares as Projections import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as PN import SCT.VolumeI.Chapter03.Section05.Currying.PointRestrictionOverBase as PointRestriction module SCT.VolumeI.Chapter03.Section05.Currying.PointPullbackCone {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 import SCT.VolumeI.Chapter01.Section06.Cones 𝒯 open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus 𝒯 using (pre-inverse) open import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductSecondCoordinate 𝒯 M using (restriction-over) open import SCT.VolumeI.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.Families.NativePointFamilies 𝒯 M ℱ P using (point-parameter) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.ConeAction 𝒯 M ℱ P using (module Action) open PN vocabulary terminal products productLaws composition vertical whiskering using (cancel-right) module PS = Projections 𝒯 module At {X C S T A : CAT} (z : Obj-abs X) {f : MAP C T} {p : MAP S T} (s : Cone f p A) where r : MAP A C r = Cone.left s q : MAP A S q = Cone.right s τ : (f ∘ r) =₁ (p ∘ q) τ = Cone.match s module Restriction = PointRestriction.Over 𝒯 M ℱ P z r f module Source = Restriction.Square.Source module Target = Restriction.Square.Target K : MAP A (X × A) K = Source.K R : MAP (X × A) (X × C) R = Restriction.Square.R br : ((f ∘ r) ∘ pr₂ {C = X}) =₁ (f ∘ (r ∘ pr₂)) br = comp-assoc pr₂ r f bq : ((p ∘ q) ∘ pr₂ {C = X}) =₁ (p ∘ (q ∘ pr₂)) bq = comp-assoc pr₂ q p bR : ((f ∘ pr₂) ∘ R) =₁ (f ∘ (r ∘ pr₂)) bR = restriction-over X r f parameterized : Cone (f ∘ pr₂ {C = X}) p (X × A) parameterized = record { left = R ; right = q ∘ pr₂ ; match = bq ∙ ((τ ▷ pr₂) ∙ ((br ⁻¹) ∙ bR)) } target : Cone (f ∘ pr₂ {C = X}) p A target = Action.value p (point-parameter f z) s κ : ((f ∘ pr₂) ∘ (R ∘ K)) =₁ (((f ∘ pr₂) ∘ R) ∘ K) κ = (comp-assoc K R (f ∘ pr₂)) ⁻¹ rq : (((p ∘ q) ∘ pr₂ {C = X}) ∘ K) =₁ (p ∘ q) rq = PS.lift-base p (q ∘ pr₂) K (Source.triangle q) ∙ (bq ▷ K) τi : (((f ∘ r) ∘ pr₂ {C = X}) ∘ K) =₁ (((p ∘ q) ∘ pr₂ {C = X}) ∘ K) τi = (τ ▷ pr₂) ▷ K lower : ((f ∘ (r ∘ pr₂ {C = X})) ∘ K) =₁ (f ∘ r) lower = PS.lift-base f (r ∘ pr₂) K (Source.triangle r) abstract match-at-point : (Cone.match parameterized ▷ K) =₂ ((bq ▷ K) ∙ (τi ∙ ((br ▷ K) ⁻¹ ∙ (bR ▷ K)))) match-at-point = isoComp-cong (idIso (bq ▷ K)) (isoComp-cong (idIso τi) (isoComp-cong (pre-inverse br K) (idIso (bR ▷ K)) ∙ preWhisker-isoComp-at (br ⁻¹) bR K) ∙ preWhisker-isoComp-at (τ ▷ pr₂) (br ⁻¹ ∙ bR) K) ∙ preWhisker-isoComp-at bq ((τ ▷ pr₂) ∙ (br ⁻¹ ∙ bR)) K regroup : ((p ◁ Source.triangle q) ∙ Cone.match (conePre K parameterized)) =₂ (rq ∙ (τi ∙ ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ)))) regroup = (isoComp-assoc-at (PS.lift-base p (q ∘ pr₂) K (Source.triangle q)) (bq ▷ K) (τi ∙ ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ)))) ⁻¹ ∙ (isoComp-cong (idIso (PS.lift-base p (q ∘ pr₂) K (Source.triangle q))) (isoComp-cong (idIso (bq ▷ K)) (isoComp-cong (idIso τi) (isoComp-assoc-at ((br ▷ K) ⁻¹) (bR ▷ K) κ) ∙ isoComp-assoc-at τi ((br ▷ K) ⁻¹ ∙ (bR ▷ K)) κ) ∙ isoComp-assoc-at (bq ▷ K) (τi ∙ ((br ▷ K) ⁻¹ ∙ (bR ▷ K))) κ) ∙ (isoComp-cong (idIso (PS.lift-base p (q ∘ pr₂) K (Source.triangle q))) (isoComp-cong match-at-point (idIso κ)) ∙ (isoComp-assoc-at (p ◁ Source.triangle q) (comp-assoc K (q ∘ pr₂) p) ((Cone.match parameterized ▷ K) ∙ κ)) ⁻¹)) right-normalization : ((p ◁ Source.triangle q) ∙ Cone.match (conePre K parameterized)) =₂ (τ ∙ Restriction.source) right-normalization = isoComp-cong (idIso τ) ((Restriction.source-normalization) ⁻¹) ∙ (isoComp-cong (idIso τ) (isoComp-cong (cancel-right (br ▷ K) lower ∙ isoComp-cong (Source.composite r f) (idIso ((br ▷ K) ⁻¹))) (idIso ((bR ▷ K) ∙ κ)) ∙ (isoComp-assoc-at (Source.triangle (f ∘ r)) ((br ▷ K) ⁻¹) ((bR ▷ K) ∙ κ)) ⁻¹) ∙ (isoComp-assoc-at τ (Source.triangle (f ∘ r)) ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ)) ∙ (isoComp-cong (Source.outer τ) (idIso ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ))) ∙ ((isoComp-assoc-at (Source.triangle (p ∘ q)) τi ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ))) ⁻¹ ∙ (isoComp-cong ((Source.composite q p) ⁻¹) (idIso (τi ∙ ((br ▷ K) ⁻¹ ∙ ((bR ▷ K) ∙ κ)))) ∙ regroup))))) comparison : ConeIso (conePre K parameterized) target comparison = record { leftIso = Restriction.Square.comparison ; rightIso = Source.triangle q ; compatible = right-normalization ⁻¹ ∙ (isoComp-cong (idIso τ) Restriction.projection ∙ isoComp-assoc-at τ Restriction.target ((f ∘ pr₂) ◁ Restriction.Square.comparison)) } ```