Other Agda modules in this chapter (87)
- RelativeCategories.BaseChange.BaseChange
- RelativeCategories.BaseChange.BaseChangeComparisonFamilies
- RelativeCategories.BaseChange.BaseChangeHigherIdentifications
- RelativeCategories.BaseChange.BasePostcomposition
- RelativeCategories.BaseChange.Identifications
- RelativeCategories.BaseChange.NativeProductBaseChange
- RelativeCategories.BaseChange.PulledFamilies
- RelativeCategories.BaseChange.SourceChange
- RelativeCategories.BaseChange.StructureChange
- RelativeCategories.Composition.EvaluatedPrecomposition
- RelativeCategories.Composition.Postcomposition
- RelativeCategories.Composition.PostcompositionEquivalences
- RelativeCategories.Composition.PostcompositionLaws
- RelativeCategories.Composition.PostcompositionReflection
- RelativeCategories.Composition.PrecompositionCompatibility
- RelativeCategories.ConeCalculus.ConeAction
- RelativeCategories.ConeCalculus.ConePasting
- RelativeCategories.ConeCalculus.ConeUncurrying
- RelativeCategories.ConeCalculus.EvaluatedRelativeCones
- RelativeCategories.ConeCalculus.NativePullbackTargets
- RelativeCategories.ConeCalculus.ProductTriangleCones
- RelativeCategories.ConeCalculus.PullbackRelativeComparisons
- RelativeCategories.ConeCalculus.PullbackTargets
- RelativeCategories.ConeCalculus.PullbackTriangles
- RelativeCategories.ConeCalculus.RelativeIntervalCones
- RelativeCategories.ConeCalculus.RestrictedConeLifts
- RelativeCategories.CoproductCalculus.CoproductDescent
- RelativeCategories.CoproductCalculus.CoproductFamilies
- RelativeCategories.CoproductCalculus.CoproductMapping
- RelativeCategories.Coproducts
- RelativeCategories.DecodedMorphisms
- RelativeCategories.DiagramMorphisms
- RelativeCategories.Equivalences
- RelativeCategories.Evaluation.BaseIdentityTriangles
- RelativeCategories.Evaluation.Evaluation
- RelativeCategories.Evaluation.EvaluationRestriction
- RelativeCategories.Evaluation.EvaluationUnitCoherence
- RelativeCategories.Evaluation.PointComputations
- RelativeCategories.Evaluation.PointReductionCoherence
- RelativeCategories.Evaluation.ProductDependentEvaluation
- RelativeCategories.Evaluation.ProductUncurryingTriangles
- RelativeCategories.Evaluation.RestrictionEquivalences
- RelativeCategories.Evaluation.UncurriedBaseTriangles
- RelativeCategories.Evaluation.UncurriedTriangles
- RelativeCategories.Evaluation.Uncurrying
- RelativeCategories.Evaluation.UncurryingComposition
- RelativeCategories.Evaluation.UncurryingRestriction
- RelativeCategories.Evaluation.UncurryingSubstitution
- RelativeCategories.Families.AbsolutePointFamilies
- RelativeCategories.Families.ArgumentFamilies
- RelativeCategories.Families.DecodedFamilies
- RelativeCategories.Families.Families
- RelativeCategories.Families.FamilyReflection
- RelativeCategories.Families.IdentificationFamilies
- RelativeCategories.Families.IntervalParameters
- RelativeCategories.Families.NativePointFamilies
- RelativeCategories.Functors
- RelativeCategories.IdentificationCalculus.ComparisonAlgebra
- RelativeCategories.IdentificationCalculus.ComparisonEncoding
- RelativeCategories.IdentificationCalculus.ComparisonLifting
- RelativeCategories.IdentificationCalculus.ComparisonRestriction
- RelativeCategories.IdentificationCalculus.ConstantNameChange
- RelativeCategories.IdentificationCalculus.ConstantNameNaturality
- RelativeCategories.IdentificationCalculus.ConstantNameRestriction
- RelativeCategories.IdentificationCalculus.ConstantNameUnit
- RelativeCategories.IdentificationCalculus.EquivalenceReflectionComputation
- RelativeCategories.IdentificationCalculus.FixedBoundaryComparisons
- RelativeCategories.IdentificationCalculus.HigherEncoding
- RelativeCategories.IdentificationCalculus.NamedPointEvaluation
- RelativeCategories.IdentificationCalculus.NamingCoherence
- RelativeCategories.IdentificationCalculus.NamingComparisons
- RelativeCategories.IdentificationCalculus.NamingIdentifications
- RelativeCategories.IdentificationCalculus.NamingLaws
- RelativeCategories.IdentificationCalculus.PostNamingCoherence
- RelativeCategories.Identifications
- RelativeCategories.MorphismDiagramRecovery
- RelativeCategories.MorphismDiagrams
- RelativeCategories.MorphismPostcomposition
- RelativeCategories.MorphismRetargeting
- RelativeCategories.MorphismTriangles
- RelativeCategories.MorphismWhiskering
- RelativeCategories.Morphisms
- RelativeCategories.NamedMorphisms
- RelativeCategories.Products
- RelativeCategories.PullbackMorphismLifting
- RelativeCategories.PullbackMorphisms
- RelativeCategories.TerminalBase
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Cancelling an intermediate change of structure Changing the target structure of a functor and the source structure of the next functor by inverse identifications cancels in their composite. The proof retains the prewhiskered identification and the associator. It is used when a base-changed functor is regarded over the original base. ```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.Section02.Isomorphisms as Isomorphisms module SCT.VolumeI.Chapter03.RelativeCategories.Evaluation.TriangleTransport {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.ConeCalculus.InverseCalculus 𝒯 using (pre-inverse) 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 Isomorphisms vocabulary terminal products productLaws composition vertical whiskering using (cancel-inverse) change-target-back : {C D S : CAT} {f : MAP C S} {g g′ : MAP D S} → g′ =₁ g → FunctorOver f g → FunctorOver f g′ change-target-back γ u = record { lift = FunctorLift.lift u ; comparison = FunctorLift.comparison u ∙ (γ ▷ FunctorLift.lift u) } abstract source-change-composite : {C D S : CAT} {f f′ f″ : MAP C S} {g : MAP D S} (β : f′ =₁ f″) (α : f =₁ f′) (u : FunctorOver f g) → FunctorOverIso (change-source β (change-source α u)) (change-source (β ∙ α) u) source-change-composite β α u = triangle-identification _ _ _ ((isoComp-assoc-at β α (FunctorLift.comparison u)) ⁻¹) compose-source-change : {B C D S : CAT} {f f′ : MAP B S} {g : MAP C S} {h : MAP D S} (α : f =₁ f′) (u : FunctorOver f g) (v : FunctorOver g h) → FunctorOverIso (compose-over v (change-source α u)) (change-source α (compose-over v u)) compose-source-change {h = h} α u v = triangle-identification _ _ _ (isoComp-assoc-at α (FunctorLift.comparison u) ((FunctorLift.comparison v ▷ FunctorLift.lift u) ∙ (comp-assoc (FunctorLift.lift u) (FunctorLift.lift v) h) ⁻¹)) compose-source-change-underlying : {B C D S : CAT} {f f′ : MAP B S} {g : MAP C S} {h : MAP D S} (α : f =₁ f′) (u : FunctorOver f g) (v : FunctorOver g h) → FunctorOverIso.underlying (compose-source-change α u v) =₂ idIso (FunctorLift.lift v ∘ FunctorLift.lift u) compose-source-change-underlying α u v = idIso _ module Cancellation {B C D S : CAT} {f : MAP B S} {g g′ : MAP C S} {h : MAP D S} (γ : g′ =₁ g) (u : FunctorOver f g) (v : FunctorOver g h) where k = FunctorLift.lift u j = FunctorLift.lift v θu = FunctorLift.comparison u θv = FunctorLift.comparison v δ = γ ▷ k τ = θv ▷ k assoc = comp-assoc k j h abstract matching : FunctorLift.comparison (compose-over (change-source (γ ⁻¹) v) (change-target-back γ u)) =₂ FunctorLift.comparison (compose-over v u) matching = isoComp-cong (idIso θu) (cancel-inverse δ (τ ∙ assoc ⁻¹)) ∙ (isoComp-assoc-at θu δ (δ ⁻¹ ∙ (τ ∙ assoc ⁻¹)) ∙ (isoComp-cong (idIso (θu ∙ δ)) (isoComp-assoc-at (δ ⁻¹) τ (assoc ⁻¹)) ∙ isoComp-cong (idIso (θu ∙ δ)) (isoComp-cong (isoComp-cong (pre-inverse γ k) (idIso τ) ∙ preWhisker-isoComp-at (γ ⁻¹) θv k) (idIso (assoc ⁻¹))))) comparison : FunctorOverIso (compose-over (change-source (γ ⁻¹) v) (change-target-back γ u)) (compose-over v u) comparison = triangle-identification _ _ _ matching abstract compose-target-change : {B C D S : CAT} {f : MAP B S} {g g′ : MAP C S} {h : MAP D S} (α : g =₁ g′) (u : FunctorOver f g′) (v : FunctorOver g h) → FunctorOverIso (compose-over (change-source α v) u) (compose-over v (change-target-back α u)) compose-target-change {h = h} α u v = triangle-identification _ _ _ ((isoComp-assoc-at (FunctorLift.comparison u) (α ▷ FunctorLift.lift u) ((FunctorLift.comparison v ▷ FunctorLift.lift u) ∙ (comp-assoc (FunctorLift.lift u) (FunctorLift.lift v) h) ⁻¹)) ⁻¹ ∙ isoComp-cong (idIso (FunctorLift.comparison u)) (isoComp-assoc-at (α ▷ FunctorLift.lift u) (FunctorLift.comparison v ▷ FunctorLift.lift u) ((comp-assoc (FunctorLift.lift u) (FunctorLift.lift v) h) ⁻¹) ∙ isoComp-cong (preWhisker-isoComp-at α (FunctorLift.comparison v) (FunctorLift.lift u)) (idIso ((comp-assoc (FunctorLift.lift u) (FunctorLift.lift v) h) ⁻¹)))) ```