Other Agda modules in this section (7)
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# Functors into slices as functors out of joins For `lem:Functor_Categories_Into_Slices`, the tested slice pullback has a lower map that factors through the variable functor and the fixed functor `ψ`. The mapping-out square for the join is the pullback along the second factor. The nesting equivalence therefore gives the desired square. Its lower-left projection is the actual postcomposition by the slice projection, and its right-hand map restricts to the two join inclusions. ```agda {-# OPTIONS --safe --without-K #-} open import Agda.Primitive using (Level) open import Agda.Builtin.Nat using (Nat; suc) renaming (zero to zeroℕ) open import SCT.VolumeI.Chapter01.Theory using (Theory) import SCT.VolumeI.Chapter01.Section04.MappingAnimae as Mapping 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.Chapter01.Section07.FunctorCategories as Categories import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Interval import SCT.VolumeI.Chapter03.Section06.JoinAxiom as Axiom module SCT.VolumeI.Chapter03.Section07.FunctorsIntoSlices {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 𝒯) (J : Axiom.JoinAxiom 𝒯 M ℱ B P U I) where open import SCT.VolumeI.Chapter01.Section07.Setup 𝒯 M ℱ hiding (_⋆_) open Pullbacks.PullbackStructure P open import SCT.VolumeI.Chapter01.Section06.PullbackSquares 𝒯 P using (Cone; IsPullback; conePre; pullback-η; pullback-cone-invariant) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.Comparisons 𝒯 using (coneRetarget; coneRetarget-β) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeSymmetry 𝒯 using (coneSwap) open import SCT.VolumeI.Chapter01.Section06.PullbackSymmetry 𝒯 P using (pullback-swap) open import SCT.VolumeI.Chapter01.Section06.Pasting.UniversalNestedPullbacks 𝒯 P using (module Nested) open import SCT.VolumeI.Chapter03.Section06.Joins 𝒯 M ℱ B P U I J using (_⋆_) open import SCT.VolumeI.Chapter03.Section06.JoinMappingOut 𝒯 M ℱ B P U I J using (module MappingOut) open import SCT.VolumeI.Chapter03.Section07.MappingCalculus.SliceFunctorPullback 𝒯 M ℱ P I using (module Tested) open import SCT.VolumeI.Chapter03.Section07.Slices 𝒯 M ℱ P I using (module Slice) module SliceComparison (X : CAT) {Y C : CAT} (ψ : MAP Y C) where module Slice′ = Slice ψ using (category; projection) module Join = MappingOut X Y C using (cone; isPullback; restriction; cylinder-endpoints; boundary-projections) module Test = Tested X ψ using (cone; isPullback; fixed; projection; diagram) Source = Fun X Slice′.category inner = coneSwap Join.cone outer = coneSwap Test.cone abstract inner-isPullback : IsPullback inner inner-isPullback = pullback-swap Join.cone Join.isPullback outer-isPullback : IsPullback outer outer-isPullback = pullback-swap Test.cone Test.isPullback module Nested′ = Nested Test.fixed Join.boundary-projections Join.cylinder-endpoints inner inner-isPullback using (N; insert; insert-isEquiv; insertionCone; outerLeft) abstract factor : MAP Source Nested′.N factor = Nested′.insert ∘ pullbackLift outer factor-isEquiv : IsEquiv factor factor-isEquiv = equiv-compose (pullbackLift outer) Nested′.insert outer-isPullback Nested′.insert-isEquiv projection-comparison : (pullback₁ ∘ factor) =₁ Test.projection projection-comparison = pullbackLift-β₁ outer ∙ ((pullbackLift-β₁ Nested′.insertionCone ▷ pullbackLift outer) ∙ (comp-assoc (pullbackLift outer) Nested′.insert pullback₁) ⁻¹) functor : MAP Source (Fun (X ⋆ Y) C) functor = pullback₂ ∘ factor original = conePre factor (pullbackCone Test.fixed Join.restriction) before-swap : Cone Test.fixed Join.restriction Source before-swap = coneRetarget original Test.projection functor projection-comparison (idIso functor) cone : Cone Join.restriction Test.fixed Source cone = coneSwap before-swap abstract before-swap-isPullback : IsPullback before-swap before-swap-isPullback = pullback-cone-invariant (coneRetarget-β original Test.projection functor projection-comparison (idIso functor)) (equiv-transport ((pullback-η factor) ⁻¹) factor-isEquiv) isPullback : IsPullback cone isPullback = pullback-swap before-swap before-swap-isPullback ```