Other Agda modules in this section (52)
# Endpoint frames from a recovered projection comparison
A prescribed comparison of one edge determines its vertex frame. This
calculation retains the projection image of the recovered pullback
identification and both chosen beta triangles. Postcomposition transports
the whole square, rather than choosing another vertex comparison.
```agda
{-# OPTIONS --without-K #-}
module SCT.VolumeI.Chapter02.Section02.RecoveredVertexFrame where
open import SCT.VolumeI.Chapter01.Section01.Vocabulary
open Operations
open import SCT.VolumeI.Chapter01.Section02.Coherence using (id₌; comp-assoc; module Composition)
open Composition
open import SCT.VolumeI.Chapter01.Section02.Specialization
open import SCT.VolumeI.Chapter01.Section03.Identifications.Triangles
using (restrict-triangle; post-triangle; unrestrict-square)
open import SCT.VolumeI.Chapter01.Section03.Identifications.TriangleCoherence using (post-triangle-change)
module RecoveredVertexFrame {Γ : Context} {P T K A C : CAT Γ}
(r : MAP A C) (pi : MAP K A) (q : MAP T K) (sigma : MAP P T) (pair : MAP P K)
(delta : (q ∘ sigma) =₁ pair)
{edge : MAP T A} {arrow : MAP P A}
(before : (pi ∘ q) =₁ edge) (after : (pi ∘ pair) =₁ arrow)
(comparison : (edge ∘ sigma) =₁ arrow)
(image : (pi ◁ delta) =₂ (after ⁻¹ ∙ (comparison ∙ restrict-triangle pi q before sigma)))
{v : MAP T C} {x : MAP P C}
(b : (r ∘ edge) =₁ v) (c : (r ∘ arrow) =₁ x) where
private
restricted = restrict-triangle r edge b sigma
action = r ◁ comparison
vertex-assoc = comp-assoc sigma edge r
outer-assoc = comp-assoc sigma q (r ∘ pi)
old-post = post-triangle r pi q before
new-post = post-triangle r pi pair after
square : (after ∙ (pi ◁ delta)) =₂
(comparison ∙ restrict-triangle pi q before sigma)
square = comp-inv-left after (comparison ∙ restrict-triangle pi q before sigma) ∙
comp₌-cong (id₌ after) image
change = post-triangle-change r pi q sigma pair delta before after comparison square
frame : (v ∘ sigma) =₁ x
frame = (c ∙ action) ∙ restricted ⁻¹
old-frame : ((r ∘ pi) ∘ q) =₁ v
old-frame = b ∙ old-post
new-frame : ((r ∘ pi) ∘ pair) =₁ x
new-frame = c ∙ new-post
private
vertex-square : (c ∙ (action ∙ vertex-assoc)) =₂ (frame ∙ (b ▷ sigma))
vertex-square = unrestrict-square r edge sigma arrow comparison b c frame
((inv-comp-right (c ∙ action) restricted) ⁻¹)
compatibility : (new-frame ∙ (((r ∘ pi) ◁ delta) ∙ outer-assoc)) =₂
(frame ∙ (old-frame ▷ sigma))
compatibility = comp₌-cong (id₌ frame) ((preWhisker-comp₌ b old-post sigma) ⁻¹) ∙
(comp₌-assoc frame (b ▷ sigma) (old-post ▷ sigma) ∙
(comp₌-cong vertex-square (id₌ (old-post ▷ sigma)) ∙
(((comp₌-assoc c (action ∙ vertex-assoc) (old-post ▷ sigma)) ⁻¹) ∙
(comp₌-cong (id₌ c) ((comp₌-assoc action vertex-assoc (old-post ▷ sigma)) ⁻¹) ∙
(comp₌-cong (id₌ c) change ∙
comp₌-assoc c new-post (((r ∘ pi) ◁ delta) ∙ outer-assoc))))))
```