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.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.
# Normalizing restriction composition The product restriction compositor agrees with substitution in normalized coordinates. The comparison retains the unitor of the constant 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.NormalizedRestrictionComposition {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.Section08.ProductSquares 𝒯 using (productRestriction-comp) import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductRestrictionAssociativity as Restriction import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingCoherence as Pairing import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as Naturality import SCT.VolumeI.Chapter01.Section02.Isomorphisms as Isomorphisms 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 Isomorphisms vocabulary terminal products productLaws composition vertical whiskering using (cancel-inverse) module At {A B C : CAT} (X : CAT) (f : MAP A B) (g : MAP B C) where J : MAP (X × A) (X × B) J = productMap (id X) f module Coordinates = Restriction.Coordinates 𝒯 M X g f β₁ : (pr₁ ∘ J) =₁ (id X ∘ pr₁) β₁ = pair-β₁ (id X ∘ pr₁) (f ∘ pr₂) β₂ : (pr₂ ∘ J) =₁ (f ∘ pr₂) β₂ = pair-β₂ (id X ∘ pr₁) (f ∘ pr₂) first : (pr₁ ∘ J) =₁ (pr₁ {X} {A}) first = comp-unitˡ pr₁ ∙ β₁ second : ((g ∘ pr₂) ∘ J) =₁ (g ∘ (f ∘ pr₂)) second = (g ◁ β₂) ∙ comp-assoc J pr₂ g δ : productMap (id X) (g ∘ f) =₁ pair (pr₁ {X} {A}) (g ∘ (f ∘ pr₂)) δ = pair-cong (comp-unitˡ pr₁) (comp-assoc pr₂ f g) outer : productMap (id X) g =₁ pair (pr₁ {X} {B}) (g ∘ pr₂) outer = pair-cong (comp-unitˡ pr₁) (idIso (g ∘ pr₂)) normalized : (pair (pr₁ {X} {B}) (g ∘ pr₂) ∘ J) =₁ pair (pr₁ {X} {A}) (g ∘ (f ∘ pr₂)) normalized = pair-cong first second ∙ pair-pre pr₁ (g ∘ pr₂) J abstract first-comparison : (comp-unitˡ pr₁ ∙ Coordinates.first) =₂ (first ∙ (comp-unitˡ pr₁ ▷ J)) first-comparison = (isoComp-assoc-at (comp-unitˡ pr₁) β₁ (comp-unitˡ pr₁ ▷ J)) ⁻¹ ∙ isoComp-cong (idIso (comp-unitˡ pr₁)) (Restriction.constant-normalization 𝒯 M X g f) second-comparison : (comp-assoc pr₂ f g ∙ Coordinates.second) =₂ second second-comparison = cancel-inverse (comp-assoc pr₂ f g) second expanded : (δ ∙ productRestriction-comp X f g) =₂ (pair-cong (first ∙ (comp-unitˡ pr₁ ▷ J)) second ∙ pair-pre (id X ∘ pr₁) (g ∘ pr₂) J) expanded = isoComp-cong (pair-cong-Iso₂ first-comparison second-comparison) (idIso (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ∙ isoComp-cong ((pair-cong-comp (comp-unitˡ pr₁) Coordinates.first (comp-assoc pr₂ f g) Coordinates.second) ⁻¹) (idIso (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ∙ (isoComp-assoc-at δ (pair-cong Coordinates.first Coordinates.second) (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ⁻¹ ∙ isoComp-cong (idIso δ) Coordinates.normalization normal-form : (normalized ∙ (outer ▷ J)) =₂ (pair-cong (first ∙ (comp-unitˡ pr₁ ▷ J)) second ∙ pair-pre (id X ∘ pr₁) (g ∘ pr₂) J) normal-form = isoComp-cong (pair-cong-Iso₂ (idIso (first ∙ (comp-unitˡ pr₁ ▷ J))) (isoComp-unitʳ-at second ∙ isoComp-cong (idIso second) (preWhisker-idIso (g ∘ pr₂) J))) (idIso (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ∙ isoComp-cong ((pair-cong-comp first (comp-unitˡ pr₁ ▷ J) second (idIso (g ∘ pr₂) ▷ J)) ⁻¹) (idIso (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ∙ (isoComp-assoc-at (pair-cong first second) (pair-cong (comp-unitˡ pr₁ ▷ J) (idIso (g ∘ pr₂) ▷ J)) (pair-pre (id X ∘ pr₁) (g ∘ pr₂) J)) ⁻¹ ∙ isoComp-cong (idIso (pair-cong first second)) ((pair-pre-natural-inputs (comp-unitˡ pr₁) (idIso (g ∘ pr₂)) J) ⁻¹) ∙ isoComp-assoc-at (pair-cong first second) (pair-pre pr₁ (g ∘ pr₂) J) (outer ▷ J) value : (normalized ∙ (outer ▷ J)) =₂ (δ ∙ productRestriction-comp X f g) value = expanded ⁻¹ ∙ normal-form ```