Other Agda modules in this section (19)
- BasicClosure
- ConstantDiagrams.ConstantExponential
- Everything
- FunctorGroupoids
- Groupoids
- PullbackCalculus.CompositeEvaluationCones
- PullbackCalculus.CrossedEvaluationCones
- PullbackCalculus.DoubleWhiskering
- PullbackCalculus.EvaluationBaseChange
- PullbackCalculus.EvaluationCompositionComparison
- PullbackCalculus.EvaluationCones
- PullbackCalculus.EvaluationPullbacks
- PullbackCalculus.MappedConeComparisons
- PullbackCalculus.MappedEvaluationCones
- PullbackCalculus.PairedEvaluationCones
- PullbackCalculus.PairedEvaluationFibers
- PullbackCalculus.PairedEvaluationImages
- PullbackCalculus.SuccessiveCospans
- PullbackGroupoids
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Evaluated comparisons with explicit endpoint frames The coordinate form of an evaluated mapped-cone comparison has the prescribed evaluated leg isomorphisms followed by inverse evaluation frames. Retaining this computation lets subsequent pasting arguments use those same witnesses without expanding the cospan action. ```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 module SCT.VolumeI.Chapter02.Section04.PullbackCalculus.NormalizedMappedConeComparisons {c m a : Level} (𝒯 : Theory c m a) (M : Mapping.MappingAnimae 𝒯) (ℱ : Categories.FunctorCategories 𝒯 M) (P : Laws.PullbackStructure 𝒯) where open import SCT.VolumeI.Chapter02.Section01.EvaluationCalculus.EndpointEvaluation 𝒯 M ℱ open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeRestriction 𝒯 open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus 𝒯 using (inverse-inverse; inverse-composite; pre-inverse) open import SCT.VolumeI.Chapter01.Section07.PullbackCalculus.MappedCones 𝒯 M ℱ P using (mappedCone) import SCT.VolumeI.Chapter01.Section06.Coordinates.ProjectedCones as Coordinates import SCT.VolumeI.Chapter02.Section04.PullbackCalculus.MappedEvaluationCones as Mapped module At {T C D E X Γ : CAT} {f : MAP C E} {g : MAP D E} (v : Obj-abs T) (s : Cone f g X) (F : MAP Γ (Fun T X)) (q : Cone (funPost {C = T} f) (funPost g) Γ) (Φ : ConeIso (conePre F (mappedCone T s)) q) where module Read = Coordinates.Coordinate 𝒯 (funPost f) (funPost g) f g (evaluate v) (evaluate v) (evaluate v) (evaluate-post v f) (evaluate-post v g) using (read; read-iso; read-pre) module Known = Mapped.MappedAt 𝒯 M ℱ P v s using (comparison) raw : ConeIso (conePre (evaluate v ∘ F) s) (Read.read q) raw = coneIso-compose (Read.read-iso Φ) (coneIso-compose (coneIso-inverse (Read.read-pre F (mappedCone T s))) (coneIso-compose (coneIso-pre F (coneIso-inverse Known.comparison)) (coneIso-inverse (conePre-assoc F (evaluate v) s)))) abstract frame-inverse : {Y : CAT} (u : MAP X Y) → (((comp-assoc F (funPost u) (evaluate v)) ⁻¹) ⁻¹ ∙ (((evaluate-post v u) ⁻¹ ▷ F) ∙ (comp-assoc F (evaluate v) u) ⁻¹)) =₂ (evaluate-post-at v u F) ⁻¹ frame-inverse u = (inverse-composite a₁ (b₁ ∙ d₁ ⁻¹)) ⁻¹ ∙ isoComp-cong (inverse-composite b₁ (d₁ ⁻¹) ⁻¹) (idIso (a₁ ⁻¹)) ∙ (isoComp-assoc-at ((d₁ ⁻¹) ⁻¹) (b₁ ⁻¹) (a₁ ⁻¹)) ⁻¹ ∙ isoComp-cong (idIso ((d₁ ⁻¹) ⁻¹)) (isoComp-cong (pre-inverse (evaluate-post v u) F) (idIso (a₁ ⁻¹))) where a₁ : ((u ∘ evaluate v) ∘ F) =₁ (u ∘ (evaluate v ∘ F)) a₁ = comp-assoc F (evaluate v) u b₁ : ((evaluate v ∘ funPost u) ∘ F) =₁ ((u ∘ evaluate v) ∘ F) b₁ = evaluate-post v u ▷ F d₁ : ((evaluate v ∘ funPost u) ∘ F) =₁ (evaluate v ∘ (funPost u ∘ F)) d₁ = comp-assoc F (funPost u) (evaluate v) left-frame : ConeIso.leftIso raw =₂ ((evaluate v ◁ ConeIso.leftIso Φ) ∙ (evaluate-post-at v (Cone.left s) F) ⁻¹) left-frame = isoComp-cong (idIso (evaluate v ◁ ConeIso.leftIso Φ)) (frame-inverse (Cone.left s)) right-frame : ConeIso.rightIso raw =₂ ((evaluate v ◁ ConeIso.rightIso Φ) ∙ (evaluate-post-at v (Cone.right s) F) ⁻¹) right-frame = isoComp-cong (idIso (evaluate v ◁ ConeIso.rightIso Φ)) (frame-inverse (Cone.right s)) comparison : ConeIso (conePre (evaluate v ∘ F) s) (Read.read q) comparison = coneIso-adjust raw ((evaluate v ◁ ConeIso.leftIso Φ) ∙ (evaluate-post-at v (Cone.left s) F) ⁻¹) ((evaluate v ◁ ConeIso.rightIso Φ) ∙ (evaluate-post-at v (Cone.right s) F) ⁻¹) left-frame right-frame ```