Other Agda modules in this section (135)
- ConeCalculus.BaseChangeInclusion
- ConeCalculus.ComparisonEquivalences
- ConeCalculus.ComparisonSquares
- ConeCalculus.Comparisons
- ConeCalculus.CompositeCones
- 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
- PullbackSquares
- PullbackSymmetry
- Representability
- RepresentabilityDiagonal
- SectionBaseChange
- UniversalCoproducts
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# Pullbacks over the terminal category The two projections give the equivalence with the product asserted in `exercise:Pullback_Over_Terminal_Category`. Compatibility of leg comparisons follows from the terminal axiom on isomorphism animae. ```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.Section06.PullbackLaws as Laws module SCT.VolumeI.Chapter01.Section06.PullbackProducts {c m a : Level} (𝒯 : Theory c m a) (P : Laws.PullbackStructure 𝒯) where open Setup 𝒯 open Laws.PullbackStructure P open import SCT.VolumeI.Chapter01.Section06.PullbackSquares 𝒯 P open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.PullbackLifting 𝒯 P coneIso-over-One : {C D T : CAT} {f : MAP C One} {g : MAP D One} (s t : Cone f g T) → (Cone.left s) =₁ (Cone.left t) → (Cone.right s) =₁ (Cone.right t) → ConeIso s t coneIso-over-One s t α β = record { leftIso = α ; rightIso = β ; compatible = equiv-reflect (terminalIso-isEquiv _ _) _ _ (terminal-iso _ _) } module TerminalBase {C D : CAT} (f : MAP C One) (g : MAP D One) where productCone : Cone f g (C × D) productCone = record { left = pr₁ ; right = pr₂ ; match = terminal-iso _ _ } toProduct : MAP (Pullback f g) (C × D) toProduct = pair pullback₁ pullback₂ fromProduct : MAP (C × D) (Pullback f g) fromProduct = pullbackLift productCone to-from : (toProduct ∘ fromProduct) =₁ (id (C × D)) to-from = pair-projections ∙ (pair-cong (pullbackLift-β₁ productCone) (pullbackLift-β₂ productCone) ∙ pair-pre pullback₁ pullback₂ fromProduct) from-to : (fromProduct ∘ toProduct) =₁ (id (Pullback f g)) from-to = pullback-reflect _ _ (coneIso-over-One _ _ ((comp-unitʳ pullback₁) ⁻¹ ∙ (pair-β₁ pullback₁ pullback₂ ∙ ((pullbackLift-β₁ productCone ▷ toProduct) ∙ (comp-assoc toProduct fromProduct pullback₁) ⁻¹))) ((comp-unitʳ pullback₂) ⁻¹ ∙ (pair-β₂ pullback₁ pullback₂ ∙ ((pullbackLift-β₂ productCone ▷ toProduct) ∙ (comp-assoc toProduct fromProduct pullback₂) ⁻¹)))) toProduct-isEquiv : IsEquiv toProduct toProduct-isEquiv = record { inverse = fromProduct ; sectionIso = from-to ⁻¹ ; retractionIso = to-from ⁻¹ } productCone-isPullback : IsPullback productCone productCone-isPullback = record { inverse = toProduct ; sectionIso = to-from ⁻¹ ; retractionIso = from-to ⁻¹ } toSwapped : MAP (Pullback f g) (D × C) toSwapped = pair pullback₂ pullback₁ fromSwapped : MAP (D × C) (Pullback f g) fromSwapped = fromProduct ∘ swap {D} {C} toSwapped-isEquiv : IsEquiv toSwapped toSwapped-isEquiv = equiv-transport (pair-cong (pair-β₂ pullback₁ pullback₂) (pair-β₁ pullback₁ pullback₂) ∙ pair-pre pr₂ pr₁ toProduct) (equiv-compose toProduct (swap {C} {D}) toProduct-isEquiv (swap-isEquiv C D)) fromSwapped-isEquiv : IsEquiv fromSwapped fromSwapped-isEquiv = equiv-compose (swap {D} {C}) fromProduct (swap-isEquiv D C) productCone-isPullback fromSwapped-β₁ : (pullback₁ ∘ fromSwapped) =₁ (pr₂ {D} {C}) fromSwapped-β₁ = pair-β₁ pr₂ pr₁ ∙ ((pullbackLift-β₁ productCone ▷ swap {D} {C}) ∙ (comp-assoc (swap {D} {C}) fromProduct pullback₁) ⁻¹) fromSwapped-β₂ : (pullback₂ ∘ fromSwapped) =₁ (pr₁ {D} {C}) fromSwapped-β₂ = pair-β₂ pr₂ pr₁ ∙ ((pullbackLift-β₂ productCone ▷ swap {D} {C}) ∙ (comp-assoc (swap {D} {C}) fromProduct pullback₂) ⁻¹) module PullbackProduct (C D : CAT) = TerminalBase (terminate C) (terminate D) ```