Other Agda modules in this section (135)
- ConeCalculus.BaseChangeInclusion
- ConeCalculus.ComparisonEquivalences
- ConeCalculus.ComparisonSquares
- ConeCalculus.Comparisons
- ConeCalculus.CompositePasting
- ConeCalculus.ConeAction
- ConeCalculus.ConeArrowChange
- ConeCalculus.ConeComparisonEncoding
- ConeCalculus.ConeIdentificationTransport
- ConeCalculus.ConePasting
- ConeCalculus.ConeRestriction
- ConeCalculus.ConeSymmetry
- ConeCalculus.ConeTransportPullbacks
- ConeCalculus.CospanAction
- ConeCalculus.CospanPullbacks
- ConeCalculus.CospanPullbacksLeft
- ConeCalculus.CospanRestriction
- ConeCalculus.CospanSymmetry
- ConeCalculus.FramedEdgeCones
- ConeCalculus.HigherComparisons
- ConeCalculus.HigherLifting
- ConeCalculus.HigherReflection
- ConeCalculus.InverseCalculus
- ConeCalculus.LeftLifts
- ConeCalculus.Operations
- ConeCalculus.ParameterizedCones
- ConeCalculus.ParameterizedPullbacks
- ConeCalculus.PointEvaluationNaturality
- ConeCalculus.PullbackLifting
- ConeCalculus.PullbackReindexing
- ConeCalculus.QuotientComparisons
- ConeCalculus.SplitComparisonLifts
- ConeCalculus.SplitRetractionMatching
- ConeCalculus.SquareRotation
- ConeCalculus.SquareTransport
- ConeCalculus.TriangleCones
- ConeCalculus.UniversalBaseChangeEquivalences
- ConeCalculus.UniversalConeComparison
- ConeCalculus.UniversalConeLifting
- ConeCalculus.UniversalFactorComparisons
- Cones
- Coordinates.BoundaryTransport
- Coordinates.DiagonalCoordinates
- Coordinates.DiagonalPullbacks
- Coordinates.DiagonalRestriction
- Coordinates.FramedProjectionRestriction
- Coordinates.PairedConeCoordinates
- Coordinates.PointDiagonalCoordinates
- Coordinates.PointDiagonalRestriction
- Coordinates.PointFrameRestriction
- Coordinates.PointProductSquares
- Coordinates.ProductConeFrames
- Coordinates.ProductCones
- Coordinates.ProductFamilyFrames
- Coordinates.ProductPullbacks
- Coordinates.ProductSquares
- Coordinates.ProjectedCones
- Coordinates.ProjectedSquareRestriction
- Coordinates.ProjectionFibers
- Coordinates.ProjectionRestriction
- Coordinates.UniversalConeProjectionCalculus
- CoproductCalculus.ContractibleCoproduct
- CoproductCalculus.CoproductCones
- CoproductCalculus.CoproductDescentSquare
- CoproductCalculus.InitialPullbacks
- CoproductCalculus.ParametrizedCases
- CoproductCalculus.UniversalCoproductDescent
- CoproductDescent
- Cospans.ConeAction
- Cospans.CospanCartesian
- Cospans.CospanEquivalences
- Cospans.EquivalentCospanCone
- Cospans.FamilyChange
- Cospans.FiberImageFamilyChange
- Cospans.FiberImages
- Cospans.FiberInterchange
- Cospans.FiberInterchangeProjections
- Cospans.FiberInterchangeSquare
- Cospans.Fibers
- Cospans.FixedBaseConeAction
- Cospans.FixedParameterConeAction
- Cospans.PairedMaps
- Cospans.PairedSquares
- Cospans.ProjectedImages
- Cospans.PullbackCubeFibers
- Cospans.SquareSubstitution
- DisjointCoproducts
- Distributivity
- EmbeddingCalculus.ConeLifting
- EmbeddingCalculus.CospanEmbeddings
- EmbeddingCalculus.EmbeddingCalculus
- EmbeddingCalculus.EmbeddingCancellation
- EmbeddingCalculus.EmbeddingConeInvariance
- EmbeddingCalculus.PrescribedLifting
- EmbeddingCalculus.PullbackProjections
- EmbeddingCharacterizations
- Embeddings
- Everything
- Fibers
- MappingCalculus.ConeCurrying
- MappingCalculus.ConeReflection
- MappingCalculus.ConeUncurrying
- MappingCalculus.ConeUncurryingNormalization
- MappingCalculus.ConeUncurryingPre
- MappingCalculus.EvaluationSubstitution
- MappingCalculus.MappedCones
- MappingCalculus.MappingCompatibility
- MappingCalculus.MappingProofs
- MappingCalculus.MappingSubstitution
- MappingCalculus.TerminalPullbackTest
- MappingPullbacks
- Pasting.BaseChangeConeRecovery
- Pasting.BaseChangeSquares
- Pasting.ComparisonCancellation
- Pasting.ComparisonPasting
- Pasting.FactoredComposition
- Pasting.NestedPullbacks
- Pasting.UniversalNestedPullbacks
- Pasting.VerticalPasting
- PastingLemma
- PullbackArrowChange
- PullbackAssociativity
- PullbackComparison
- PullbackCriterion
- PullbackData
- PullbackEquivalences
- PullbackFunctor
- PullbackLaws
- PullbackProducts
- PullbackSquares
- PullbackSymmetry
- Representability
- RepresentabilityDiagonal
- SectionBaseChange
- UniversalCoproducts
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Cones over a composite An outer cone for a composite base functor determines a cone for its second factor. This is the first operation in the proof of the pasting lemma. Its action on comparisons keeps the associators at both endpoints. ```agda {-# OPTIONS --safe --without-K #-} open import Agda.Primitive using (Level) open import SCT.VolumeI.Chapter01.Theory using (Theory) import SCT.VolumeI.Chapter01.Section04.Setup as Setup import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as PN import SCT.VolumeI.Chapter01.Section03.IdentificationCalculus.Structural as Structural import SCT.VolumeI.Chapter01.Section03.ProductCalculus.IteratedPairing as IP import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingUnits as PU module SCT.VolumeI.Chapter01.Section06.ConeCalculus.CompositeCones {c m a : Level} (𝒯 : Theory c m a) where open Setup 𝒯 open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeRestriction 𝒯 public open PN vocabulary terminal products productLaws composition vertical whiskering using (move-square) open Structural vocabulary terminal products productLaws composition whiskering using (postWhisker-comp-at) open IP vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (pentagon-whiskered) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus 𝒯 open PU vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (cancel-right-reflect) compositeCone : {A B X Z T : CAT} (f : MAP A B) (g : MAP B Z) {h : MAP X Z} → Cone (g ∘ f) h T → Cone g h T compositeCone f g s = record { left = f ∘ Cone.left s ; right = Cone.right s ; match = Cone.match s ∙ (comp-assoc (Cone.left s) f g) ⁻¹ } compositeConeIso : {A B X Z T : CAT} (f : MAP A B) (g : MAP B Z) {h : MAP X Z} {s t : Cone (g ∘ f) h T} → ConeIso s t → ConeIso (compositeCone f g s) (compositeCone f g t) compositeConeIso f g {h} {s} {t} Φ = record { leftIso = f ◁ ConeIso.leftIso Φ ; rightIso = ConeIso.rightIso Φ ; compatible = isoComp-assoc-at (h ◁ ConeIso.rightIso Φ) (Cone.match s) (As ⁻¹) ∙ (isoComp-cong (ConeIso.compatible Φ) (idIso (As ⁻¹)) ∙ ((isoComp-assoc-at (Cone.match t) ((g ∘ f) ◁ α) (As ⁻¹)) ⁻¹ ∙ (isoComp-cong (idIso (Cone.match t)) (move-square At ((g ∘ f) ◁ α) (g ◁ (f ◁ α)) As (postWhisker-comp-at α f g)) ∙ isoComp-assoc-at (Cone.match t) (At ⁻¹) (g ◁ (f ◁ α))))) } where α = ConeIso.leftIso Φ As = comp-assoc (Cone.left s) f g At = comp-assoc (Cone.left t) f g compositeCone-compatible : {A B X Z T : CAT} (f : MAP A B) (g : MAP B Z) {h : MAP X Z} (s t : Cone (g ∘ f) h T) (α : (Cone.left s) =₁ (Cone.left t)) (β : (Cone.right s) =₁ (Cone.right t)) → (Cone.match (compositeCone f g t) ∙ (g ◁ (f ◁ α))) =₂ ((h ◁ β) ∙ Cone.match (compositeCone f g s)) → ConeIso s t compositeCone-compatible f g {h} s t α β κ = record { leftIso = α ; rightIso = β ; compatible = cancel-right-reflect (As ⁻¹) ((isoComp-assoc-at (h ◁ β) (Cone.match s) (As ⁻¹)) ⁻¹ ∙ (κ ∙ ((isoComp-assoc-at (Cone.match t) (At ⁻¹) (g ◁ (f ◁ α))) ⁻¹ ∙ (isoComp-cong (idIso (Cone.match t)) ((move-square At ((g ∘ f) ◁ α) (g ◁ (f ◁ α)) As (postWhisker-comp-at α f g)) ⁻¹) ∙ isoComp-assoc-at (Cone.match t) ((g ∘ f) ◁ α) (As ⁻¹))))) } where As = comp-assoc (Cone.left s) f g At = comp-assoc (Cone.left t) f g compositeCone-pre : {A B X Z R T : CAT} (f : MAP A B) (g : MAP B Z) {h : MAP X Z} (r : MAP R T) (s : Cone (g ∘ f) h T) → ConeIso (conePre r (compositeCone f g s)) (compositeCone f g (conePre r s)) compositeCone-pre f g {h} r s = record { leftIso = comp-assoc r p f ; rightIso = idIso (q ∘ r) ; compatible = isoComp-cong ((postWhisker-idIso h (q ∘ r)) ⁻¹) (idIso source) ∙ ((isoComp-unitˡ-at source) ⁻¹ ∙ (step₉ ∙ (step₈ ∙ (step₇ ∙ (step₆ ∙ (step₅ ∙ (step₄ ∙ (step₃ ∙ (step₂ ∙ step₁))))))))) } where p = Cone.left s q = Cone.right s τ = Cone.match s A = comp-assoc p f g B = comp-assoc r (f ∘ p) g D = comp-assoc r p (g ∘ f) E = comp-assoc (p ∘ r) f g G = g ◁ comp-assoc r p f H = comp-assoc r q h u = τ ▷ r K = H ∙ (u ∙ D ⁻¹) source = Cone.match (conePre r (compositeCone f g s)) step₁ = isoComp-assoc-at K (E ⁻¹) G step₂ = isoComp-cong (idIso K) (move-square E D G (B ∙ (A ▷ r)) (pentagon-whiskered r p f g)) step₃ = (isoComp-assoc-at K D ((B ∙ (A ▷ r)) ⁻¹)) ⁻¹ cancelD = isoComp-unitʳ-at u ∙ (isoComp-cong (idIso u) (isoComp-inverseˡ-at D) ∙ isoComp-assoc-at u (D ⁻¹) D) step₄ = isoComp-cong (isoComp-cong (idIso H) cancelD ∙ isoComp-assoc-at H (u ∙ D ⁻¹) D) (idIso ((B ∙ (A ▷ r)) ⁻¹)) step₅ = isoComp-assoc-at H u ((B ∙ (A ▷ r)) ⁻¹) step₆ = isoComp-cong (idIso H) (isoComp-cong (idIso u) (inverse-composite B (A ▷ r))) step₇ = isoComp-cong (idIso H) ((isoComp-assoc-at u ((A ▷ r) ⁻¹) (B ⁻¹)) ⁻¹) step₈ = isoComp-cong (idIso H) (isoComp-cong (isoComp-cong (idIso u) ((pre-inverse A r) ⁻¹)) (idIso (B ⁻¹))) step₉ = isoComp-cong (idIso H) (isoComp-cong ((preWhisker-isoComp-at τ (A ⁻¹) r) ⁻¹) (idIso (B ⁻¹))) ```