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.ChangedSeparationFrames
- ProductCalculus.NormalizedRestrictionAssociativity
- ProductCalculus.NormalizedRestrictionChange
- ProductCalculus.NormalizedRestrictionCompositeCoordinate
- ProductCalculus.NormalizedRestrictionComposition
- ProductCalculus.NormalizedRestrictionImage
- ProductCalculus.NormalizedRestrictionPentagon
- 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.
# Normalized frames for product separation The two routes defining product separation agree with their normalized coordinate frames. These equalities identify the chosen comparisons, including the unitors in the unchanged 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.NormalizedSeparationFrames {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) open import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductCoordinateUnits 𝒯 using (coordinate-inner-unit) import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductSeparationProjections as Separation import SCT.VolumeI.Chapter01.Section04.ProductCalculus.ProductPairingComparisons as Pairs import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingCoherence as Pairing import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as Naturality import SCT.VolumeI.Chapter01.Section03.ProductCalculus.ProductFunctorUnits as ProductUnits 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) open ProductUnits vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (coordinate-left-unit) module At {X Y A B : CAT} (h : MAP X Y) (f : MAP A B) where module S = Separation.Separation 𝒯 M h f σ : MAP (X × A) (Y × A) σ = S.HA HB : MAP (X × B) (Y × B) HB = S.HB LX = S.LX ρ₁ = pair-β₁ (h ∘ pr₁) (id A ∘ pr₂) ρ₂ = comp-unitˡ pr₂ ∙ pair-β₂ (h ∘ pr₁) (id A ∘ pr₂) source-second = (f ◁ ρ₂) ∙ comp-assoc σ pr₂ f δY = pair-cong (comp-unitˡ (pr₁ {Y} {A})) (idIso (f ∘ pr₂ {Y} {A})) δX = pair-cong (comp-unitˡ (pr₁ {X} {A})) (idIso (f ∘ pr₂ {X} {A})) source-frame = pair-cong ρ₁ source-second ∙ pair-pre pr₁ (f ∘ pr₂) σ target-frame = pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ (f ∘ pr₂)) ∙ productMap-pair h (id B) pr₁ (f ∘ pr₂) module TargetPair = Pairs.ProductPair 𝒯 M h (id B) (id X ∘ pr₁) (f ∘ pr₂) (h ◁ comp-unitˡ pr₁) (comp-unitˡ (f ∘ pr₂)) abstract source-first : S.Source.first =₂ (ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) source-first = coordinate-left-unit pr₁ h pr₁ σ ρ₁ source-last : S.Source.second =₂ source-second source-last = coordinate-inner-unit pr₂ pr₂ σ (pair-β₂ (h ∘ pr₁) (id A ∘ pr₂)) f source-expanded : S.Source.value =₂ (pair-cong (ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) source-second ∙ pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ) source-expanded = isoComp-cong (pair-cong-Iso₂ source-first source-last) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ S.Source.normalization source-frame-expanded : (source-frame ∙ (δY ▷ σ)) =₂ (pair-cong (ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ)) source-second ∙ pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ) source-frame-expanded = isoComp-cong (pair-cong-Iso₂ (idIso (ρ₁ ∙ (comp-unitˡ pr₁ ▷ σ))) (isoComp-unitʳ-at source-second ∙ isoComp-cong (idIso source-second) (preWhisker-idIso (f ∘ pr₂) σ))) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ isoComp-cong ((pair-cong-comp ρ₁ (comp-unitˡ pr₁ ▷ σ) source-second (idIso (f ∘ pr₂) ▷ σ)) ⁻¹) (idIso (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ∙ (isoComp-assoc-at (pair-cong ρ₁ source-second) (pair-cong (comp-unitˡ pr₁ ▷ σ) (idIso (f ∘ pr₂) ▷ σ)) (pair-pre (id Y ∘ pr₁) (f ∘ pr₂) σ)) ⁻¹ ∙ isoComp-cong (idIso (pair-cong ρ₁ source-second)) ((pair-pre-natural-inputs (comp-unitˡ pr₁) (idIso (f ∘ pr₂)) σ) ⁻¹) ∙ isoComp-assoc-at (pair-cong ρ₁ source-second) (pair-pre pr₁ (f ∘ pr₂) σ) (δY ▷ σ) source-value : S.Source.value =₂ (source-frame ∙ (δY ▷ σ)) source-value = source-frame-expanded ⁻¹ ∙ source-expanded target-first : TargetPair.first =₂ S.Target.first target-first = (coordinate-inner-unit pr₁ pr₁ LX (pair-β₁ (id X ∘ pr₁) (f ∘ pr₂)) h) ⁻¹ ∙ isoComp-cong ((postWhisker-isoComp-at h (comp-unitˡ pr₁) (pair-β₁ (id X ∘ pr₁) (f ∘ pr₂))) ⁻¹) (idIso (comp-assoc LX pr₁ h)) ∙ (isoComp-assoc-at (h ◁ comp-unitˡ pr₁) (h ◁ pair-β₁ (id X ∘ pr₁) (f ∘ pr₂)) (comp-assoc LX pr₁ h)) ⁻¹ target-last : TargetPair.second =₂ S.Target.second target-last = (coordinate-left-unit pr₂ f pr₂ LX (pair-β₂ (id X ∘ pr₁) (f ∘ pr₂))) ⁻¹ ∙ Pairs.identity-coordinate 𝒯 M pr₂ LX (pair-β₂ (id X ∘ pr₁) (f ∘ pr₂)) target-pair : TargetPair.comparison =₂ S.Target.value target-pair = S.Target.normalization ⁻¹ ∙ isoComp-cong (pair-cong-Iso₂ target-first target-last) (idIso (pair-pre (h ∘ pr₁) (id B ∘ pr₂) LX)) ∙ TargetPair.normalization target-frame-normal : (target-frame ∙ (HB ◁ δX)) =₂ TargetPair.comparison target-frame-normal = isoComp-cong (pair-cong-Iso₂ (isoComp-unitˡ-at (h ◁ comp-unitˡ pr₁)) (isoComp-unitʳ-at (comp-unitˡ (f ∘ pr₂)) ∙ isoComp-cong (idIso (comp-unitˡ (f ∘ pr₂))) (postWhisker-idIso (id B) (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₁) (comp-unitˡ (f ∘ pr₂)) (id B ◁ idIso (f ∘ pr₂))) ⁻¹) (idIso (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ∙ (isoComp-assoc-at (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ (f ∘ pr₂))) (pair-cong (h ◁ comp-unitˡ pr₁) (id B ◁ idIso (f ∘ pr₂))) (productMap-pair h (id B) (id X ∘ pr₁) (f ∘ pr₂))) ⁻¹ ∙ isoComp-cong (idIso (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ (f ∘ pr₂)))) (productMap-pair-inner h (id B) (comp-unitˡ pr₁) (idIso (f ∘ pr₂))) ∙ isoComp-assoc-at (pair-cong (idIso (h ∘ pr₁)) (comp-unitˡ (f ∘ pr₂))) (productMap-pair h (id B) pr₁ (f ∘ pr₂)) (HB ◁ δX) target-value : S.Target.value =₂ (target-frame ∙ (HB ◁ δX)) target-value = target-frame-normal ⁻¹ ∙ target-pair ⁻¹ ```