Other Agda modules in this section (89)
- CoconeCalculus.CoconeArrowRestriction
- CoconeCalculus.CoconePasting
- CoconeCalculus.CoconePastingPostcomposition
- CoconeCalculus.CoconePostcomposition
- CoconeCalculus.CoconeTransposition
- CoconeCalculus.CoconeUniversality
- CoconeCalculus.CompositeCocones
- CoconeCalculus.UniversalCoconePasting
- Cocones
- Everything
- FunctorCategoryCalculus.FunPrecompositionCompositeImage
- FunctorCategoryCalculus.FunPrecompositionComposition
- FunctorCategoryCalculus.FunPrecompositionCompositionBase
- FunctorCategoryCalculus.FunPrecompositionCongruence
- FunctorCategoryCalculus.FunPrecompositionNaturality
- FunctorCategoryCalculus.FunPrecompositionParameterChange
- FunctorCategoryCalculus.FunPrecompositionParameterChangeBase
- FunctorCategoryCalculus.FunRestrictionCones
- FunctorCategoryCalculus.FunSquareEvaluation
- FunctorCategoryCalculus.FunctorCriterionDetection
- FunctorCategoryCalculus.FunctorCriterionPreservation
- FunctorCategoryCalculus.FunctorSquares
- MappingCalculus.Decoding.DecodeRestrictionCones
- MappingCalculus.Decoding.DecodeSquareEvaluation
- MappingCalculus.Decoding.DecodedLegCalculus
- MappingCalculus.Decoding.DecodingCalculus
- MappingCalculus.Decoding.DecodingCompositeImage
- MappingCalculus.Decoding.DecodingComposition
- MappingCalculus.Decoding.DecodingCompositionBase
- MappingCalculus.Decoding.DecodingRestrictionNaturality
- MappingCalculus.Decoding.UnitRestrictionComposition
- MappingCalculus.Decoding.UnitRestrictionData
- MappingCalculus.Decoding.UnitRestrictionNaturality
- MappingCalculus.Restriction.EvaluationMateCalculus
- MappingCalculus.Restriction.EvaluationSquares
- MappingCalculus.Restriction.MapRestrictionCones
- MappingCalculus.Restriction.MapSquareEvaluation
- MappingCalculus.Restriction.MappingPastingComparison
- MappingCalculus.Restriction.PastingTransfer
- MappingCalculus.Restriction.PrecompositionCompositeImage
- MappingCalculus.Restriction.PrecompositionComposition
- MappingCalculus.Restriction.PrecompositionCompositionBase
- MappingCalculus.Restriction.PrecompositionCongruence
- MappingCalculus.Restriction.PrecompositionParameterChange
- MappingCalculus.Restriction.PrecompositionParameterChangeBase
- MappingCalculus.Restriction.RestrictionMate
- MappingCalculus.Restriction.RestrictionSquareEvaluation
- MappingCalculus.Restriction.RestrictionTransfer
- MappingCalculus.Restriction.UncurryPasting
- MappingCalculus.Transposition.SwapRestrictionComposition
- MappingCalculus.Transposition.SwapRestrictionData
- MappingCalculus.Transposition.SwapRestrictionNaturality
- MappingCalculus.Transposition.TransposedSquareEvaluation
- MappingCalculus.Transposition.Transposition
- MappingCalculus.Transposition.TranspositionCompositeImage
- MappingCalculus.Transposition.TranspositionComposition
- MappingCalculus.Transposition.TranspositionCompositionBase
- MappingCalculus.Transposition.TranspositionNaturality
- MappingCalculus.Transposition.TranspositionRestrictionNaturality
- MappingOutOfPushouts
- ProductCalculus.NormalizedRestrictionAssociativity
- ProductCalculus.NormalizedRestrictionChange
- ProductCalculus.NormalizedRestrictionCompositeCoordinate
- ProductCalculus.NormalizedRestrictionComposition
- ProductCalculus.NormalizedRestrictionImage
- ProductCalculus.NormalizedRestrictionPentagon
- ProductCalculus.NormalizedSeparationFrames
- ProductCalculus.ParameterFirstCoordinate
- ProductCalculus.ParameterSecondCoordinate
- ProductCalculus.ProductComparisonProjections
- ProductCalculus.ProductCompositionAssociativity
- ProductCalculus.ProductCoordinateUnits
- ProductCalculus.ProductEvaluationAssociativity
- ProductCalculus.ProductFirstCoordinate
- ProductCalculus.ProductMixedSubstitution
- ProductCalculus.ProductRestrictionAssociativity
- ProductCalculus.ProductRestrictionPasting
- ProductCalculus.ProductSecondCoordinate
- ProductCalculus.ProductSeparationProjections
- ProductCalculus.ProjectionBaseCalculus
- ProductCalculus.SeparationEndpointTransport
- ProductCalculus.SeparationFrameTransport
- ProductSquares
- PushoutComparison
- PushoutExtensions
- PushoutPasting
- PushoutSquares
- RecognizingPushouts
- Squares
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Changing the normalized separation coordinates A naturality square in the second coordinate changes both normalized separation frames by the same output comparison. This retains the specified product comparisons, including the unchanged first coordinate. ```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 module SCT.VolumeI.Chapter01.Section08.ProductCalculus.ChangedSeparationFrames {c m a : Level} (𝒯 : Theory c m a) (M : Mapping.MappingAnimae 𝒯) where open import SCT.VolumeI.Chapter01.Section05.Setup 𝒯 M public open import SCT.VolumeI.Chapter01.Section04.Uncurrying 𝒯 M using (productMap-pair) open import SCT.VolumeI.Chapter01.Section04.CompositionCalculus.CompositionNaturality 𝒯 M using (productMap-pair-inner) import SCT.VolumeI.Chapter01.Section08.ProductCalculus.NormalizedSeparationFrames as Normalized import SCT.VolumeI.Chapter01.Section03.IdentificationCalculus.Structural as Structural open Structural vocabulary terminal products productLaws composition whiskering using (postWhisker-id-at) import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingCoherence as Pairing import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as Naturality open Pairing vocabulary terminal products productLaws composition vertical whiskering using (pair-cong-comp; pair-cong-Iso₂) open Naturality vocabulary terminal products productLaws composition vertical whiskering using (pair-pre-natural-inputs) module At {X Y A B : CAT} (h : MAP X Y) (f : MAP A B) {vY : MAP (Y × A) B} {vX : MAP (X × A) B} (θY : (f ∘ pr₂) =₁ vY) (θX : (f ∘ pr₂) =₁ vX) (t : (vY ∘ productMap h (id A)) =₁ vX) where module N = Normalized.At 𝒯 M h f module S = N.S σ = N.σ HB = N.HB δY = pair-cong (comp-unitˡ pr₁) θY δX = pair-cong (comp-unitˡ pr₁) θX κ = pair-cong (idIso (h ∘ pr₁)) θX source-frame = pair-cong N.ρ₁ t ∙ pair-pre pr₁ vY σ target-frame = pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ vX) ∙ productMap-pair h (id B) pr₁ vX common-source = pair-cong (N.ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) (θX ∙ N.source-second) ∙ pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ common-target = pair-cong (h ◁ comp-unitˡ pr₁) (θX ∙ comp-unitˡ (f ∘ pr₂)) ∙ productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂) abstract source-old : (κ ∙ S.Source.value) =₂ common-source source-old = isoComp-cong (pair-cong-Iso₂ (isoComp-unitˡ-at (N.ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ))) (idIso (θX ∙ N.source-second))) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ isoComp-cong ((pair-cong-comp (idIso (h ∘ pr₁)) (N.ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) θX N.source-second) ⁻¹) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ (isoComp-assoc-at κ (pair-cong (N.ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) N.source-second) (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ⁻¹ ∙ isoComp-cong (idIso κ) N.source-expanded source-new : (t ∙ (θY ▷ σ)) =₂ (θX ∙ N.source-second) → (source-frame ∙ (δY ▷ σ)) =₂ common-source source-new square = isoComp-cong (pair-cong-Iso₂ (idIso (N.ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ))) square) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ isoComp-cong ((pair-cong-comp N.ρ₁ (comp-unitˡ pr₁ ▷ σ) t (θY ▷ σ)) ⁻¹) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ (isoComp-assoc-at (pair-cong N.ρ₁ t) (pair-cong (comp-unitˡ pr₁ ▷ σ) (θY ▷ σ)) (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ⁻¹ ∙ isoComp-cong (idIso (pair-cong N.ρ₁ t)) ((pair-pre-natural-inputs (comp-unitˡ pr₁) θY σ) ⁻¹) ∙ isoComp-assoc-at (pair-cong N.ρ₁ t) (pair-pre pr₁ vY σ) (δY ▷ σ) source-value : (t ∙ (θY ▷ σ)) =₂ (θX ∙ N.source-second) → (κ ∙ S.Source.value) =₂ (source-frame ∙ (δY ▷ σ)) source-value square = source-new square ⁻¹ ∙ source-old target-old : (κ ∙ S.Target.value) =₂ common-target target-old = isoComp-cong (pair-cong-Iso₂ (isoComp-unitˡ-at (h ◁ comp-unitˡ pr₁)) (idIso (θX ∙ comp-unitˡ (f ∘ pr₂)))) (idIso (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ∙ isoComp-cong ((pair-cong-comp (idIso (h ∘ pr₁)) (h ◁ comp-unitˡ pr₁) θX (comp-unitˡ (f ∘ pr₂))) ⁻¹) (idIso (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ∙ (isoComp-assoc-at κ (pair-cong (h ◁ comp-unitˡ pr₁) (comp-unitˡ (f ∘ pr₂))) (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ⁻¹ ∙ isoComp-cong (idIso κ) (N.target-pair ⁻¹) target-new : (target-frame ∙ (HB ◁ δX)) =₂ common-target target-new = isoComp-cong (pair-cong-Iso₂ (isoComp-unitˡ-at (h ◁ comp-unitˡ pr₁)) (postWhisker-id-at θX)) (idIso (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ∙ isoComp-cong ((pair-cong-comp (idIso (h ∘ pr₁)) (h ◁ comp-unitˡ pr₁) (comp-unitˡ vX) (id B ◁ θX)) ⁻¹) (idIso (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ∙ (isoComp-assoc-at (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ vX)) (pair-cong (h ◁ comp-unitˡ pr₁) (id B ◁ θX)) (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ⁻¹ ∙ isoComp-cong (idIso (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ vX))) (productMap-pair-inner h (id B) (comp-unitˡ pr₁) θX) ∙ isoComp-assoc-at (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ vX)) (productMap-pair h (id B) pr₁ vX) (HB ◁ δX) target-value : (κ ∙ S.Target.value) =₂ (target-frame ∙ (HB ◁ δX)) target-value = target-new ⁻¹ ∙ target-old ```