Other Agda modules in this section (21)
- BoundaryCalculus.BoundaryCore
- BoundaryCalculus.JoinBoundary
- BoundaryCalculus.JoinBoundaryCoordinates
- JoinAxiom
- JoinFunctoriality
- JoinMappingIn
- JoinMappingOut
- JoinOfPoints
- JoinPushoutAction
- JoinUnits
- Joins
- PushoutCalculus.CoconeUniversalTransport
- PushoutCalculus.CoproductAttachment
- PushoutCalculus.CoproductPushouts
- PushoutCalculus.JoinSpan
- PushoutCalculus.JoinSpanCoordinates
- PushoutCalculus.NormalizedJoinPushout
- PushoutCalculus.PushoutUniqueness
- PushoutCalculus.SpanEquivalence
- PushoutCalculus.TriangleCollapsePushouts
- TriangleJoins
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# The core of a join For `prop:core_of_join`, take cores of the specified boundary pullback. The core of the weakened boundary inclusion is an equivalence, so the same holds for the core of the join inclusion. Combining this with the coproduct comparison gives the canonical equivalence on cores. This proof also works for the absolute relative join over any base. It uses the dependent-product axiom's boundary pullback clause, not contextual coproducts or the pushout clause over that 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.Section05.Coproducts as Coproducts import SCT.VolumeI.Chapter01.Section06.PullbackLaws as Pullbacks import SCT.VolumeI.Chapter01.Section06.UniversalCoproducts as Universality import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Interval import SCT.VolumeI.Chapter02.Section01.IntervalCore as IntervalCore import SCT.VolumeI.Chapter03.Section06.JoinAxiom as Axiom module SCT.VolumeI.Chapter03.Section06.CoreOfJoin {c m a : Level} (𝒯 : Theory c m a) (M : Mapping.MappingAnimae 𝒯) (ℱ : Categories.FunctorCategories 𝒯 M) (B : Coproducts.CoproductStructure 𝒯 M) (P : Pullbacks.PullbackStructure 𝒯) (U : Universality.CoproductUniversality 𝒯 M B P) (I : Interval.WalkingMorphism 𝒯) (K : IntervalCore.IntervalCoreAxiom 𝒯 M B I) (J : Axiom.JoinAxiom 𝒯 M ℱ B P U I) where open import SCT.VolumeI.Chapter01.Section05.Setup 𝒯 M open Coproducts.CoproductStructure B open import SCT.VolumeI.Chapter01.Section05.CoproductCalculus 𝒯 M B open import SCT.VolumeI.Chapter01.Section04.Core 𝒯 M using (Core) open import SCT.VolumeI.Chapter01.Section06.MappingPullbacks 𝒯 M P using (mappedCone; map-preserves-pullback) open import SCT.VolumeI.Chapter01.Section06.PullbackEquivalences 𝒯 P using (degenerate-pullback-converse) open import SCT.VolumeI.Chapter02.Section01.CoreCoproducts 𝒯 M B P U I K using (coreCopair; coreCopair-isEquiv) open import SCT.VolumeI.Chapter03.Section06.BoundaryCalculus.BoundaryCore 𝒯 M B P U I K using (weakened-boundary-core-isEquiv) open Axiom 𝒯 M ℱ B P U I open JoinAxiom J module RelativeCore {C D Γ : CAT} (p : MAP C Γ) (q : MAP D Γ) where module Boundary = BoundaryComparison dataJoin p q abstract inclusion-core-isEquiv : IsEquiv (mapPost {C = One} (inclusion p q)) inclusion-core-isEquiv = degenerate-pullback-converse (weakened-boundary-core-isEquiv Γ) (mappedCone One Boundary.cone) (map-preserves-pullback One Boundary.cone (boundary-isEquiv p q)) comparison : MAP (Core C ⊔ Core D) (Core (JoinOver p q)) comparison = copair (mapPost (inclusion p q ∘ in₁)) (mapPost (inclusion p q ∘ in₂)) abstract comparison-factorization : (mapPost (inclusion p q) ∘ coreCopair C D) =₁ comparison comparison-factorization = copair-cong (mapPost-comp in₁ (inclusion p q)) (mapPost-comp in₂ (inclusion p q)) ∙ copair-post (mapPost in₁) (mapPost in₂) (mapPost (inclusion p q)) comparison-isEquiv : IsEquiv comparison comparison-isEquiv = equiv-transport comparison-factorization (equiv-compose (coreCopair C D) (mapPost (inclusion p q)) (coreCopair-isEquiv C D) inclusion-core-isEquiv) ```