Other Agda modules in this chapter (87)

Complete compiler-highlighted source. Follow a symbol to its declaration.

# Cones associated to relative interval diagrams

A transformation over the composite base map `g ∘ q` gives an interval
cone with constant right leg `q`. Its endpoint identifications are whole
cone comparisons. The right projection is the chosen constant boundary;
its compatibility follows from the relative endpoint triangle and the
composition law for constant boundaries.

```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 Laws
import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Walking
import SCT.VolumeI.Chapter02.Section01.IntervalEndpoints as Endpoints
import SCT.VolumeI.Chapter02.Section02.SegalAxiom as Segal

module SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.RelativeIntervalCones
  {c m a : Level} (𝒯 : Theory c m a) (M : Mapping.MappingAnimae 𝒯)
  (β„± : Categories.FunctorCategories 𝒯 M) (P : Laws.PullbackStructure 𝒯)
  (I : Walking.WalkingMorphism 𝒯) (E : Endpoints.IntervalEndpoints 𝒯 M β„± P I)
  (S : Segal.SegalAxiom 𝒯 M β„± P I E) where

open import SCT.VolumeI.Chapter03.RelativeCategories.Morphisms 𝒯 M β„± P I E S public
open import SCT.VolumeI.Chapter03.RelativeCategories.Identifications 𝒯 M β„± P using (FunctorOverIso)
open import SCT.VolumeI.Chapter01.Section06.PullbackSquares 𝒯 P
open import SCT.VolumeI.Chapter01.Section04.ProductCalculus.ProductAssociativity 𝒯 M using (cancel-inverse-tail)
open import SCT.VolumeI.Chapter01.Section04.SquareCalculus.SplitProjectionCalculus 𝒯 using (section-comp)
open import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingUnits
  vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (cancel-right-reflect)
import SCT.VolumeI.Chapter03.RelativeCategories.MorphismDiagrams as Diagrams
import SCT.VolumeI.Chapter03.RelativeCategories.DiagramMorphisms as Morphisms

module At {C D B Ξ“ : CAT} (f : MAP C B) (g : MAP D B) (q : MAP Ξ“ D)
  {u v : FunctorOver (g ∘ q) f} (α : Over.MorphismOver (g ∘ q) f u v) where
  module Diagram = Diagrams.Diagram 𝒯 M β„± P I E S Ξ±
    using (family; module Source; module Target)
  H = FunctorLift.lift Diagram.family
  ρ = FunctorLift.comparison Diagram.family
  aH = comp-assoc (pr₁ {C = Ξ“} {D = [1]}) q g
  value : Cone f g (Ξ“ Γ— [1])
  value = record { left = H ; right = q ∘ pr₁ ; match = aH βˆ™ ρ }
  at-endpoint : FunctorOver (g ∘ q) f β†’ Cone f g Ξ“
  at-endpoint w = record { left = FunctorLift.lift w ; right = q ; match = FunctorLift.comparison w }
  module Converted = Morphisms.FromDiagram 𝒯 M β„± P I E S Diagram.family u v
    using (insertion; module Endpoint)

  module Endpoint (z : Obj-abs [1]) (w : FunctorOver (g ∘ q) f)
    (ΞΎ : FunctorOverIso (compose-over Diagram.family (Converted.insertion z)) w) where
    module Old = Converted.Endpoint z w ΞΎ using (boundary; comparison)
    i = insert {X = Ξ“} z
    af = comp-assoc i H f
    ag = comp-assoc i (q ∘ pr₁) g
    ai = aH β–· i
    ri = ρ β–· i
    end = identity-boundary z q
    endBase = identity-boundary z (g ∘ q)
    outer = g ◁ end
    matching = Cone.match (conePre i value)
    Ο„ = FunctorLift.comparison w
    edge = f ◁ Old.boundary

    abstract
      right-normal : ((outer βˆ™ matching) βˆ™ af) =β‚‚ (endBase βˆ™ ri)
      right-normal = isoComp-cong ((section-comp pr₁ i (pair-β₁ _ _) q g) ⁻¹) (idIso ri) βˆ™
        (isoComp-assoc-at (outer βˆ™ ag) ai ri ⁻¹ βˆ™
        (isoComp-assoc-at outer ag (ai βˆ™ ri) ⁻¹ βˆ™
        (isoComp-cong (idIso outer)
          (isoComp-cong (idIso ag) (preWhisker-isoComp-at aH ρ i)) βˆ™
        (isoComp-cong (idIso outer)
          (cancel-inverse-tail (ag βˆ™ ((aH βˆ™ ρ) β–· i)) af βˆ™
            isoComp-cong (isoComp-assoc-at ag ((aH βˆ™ ρ) β–· i) (af ⁻¹) ⁻¹) (idIso af)) βˆ™
          isoComp-assoc-at outer matching af))))

      compatible : (Ο„ βˆ™ edge) =β‚‚ (outer βˆ™ matching)
      compatible = cancel-right-reflect af
        (right-normal ⁻¹ βˆ™ (Old.comparison ⁻¹ βˆ™ isoComp-assoc-at Ο„ edge af))

    comparison : ConeIso (conePre i value) (at-endpoint w)
    comparison = record { leftIso = Old.boundary ; rightIso = end ; compatible = compatible }

  module Source = Endpoint zero u Diagram.Source.comparison
  module Target = Endpoint one v Diagram.Target.comparison
```