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.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.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.
# Composition of functor-category restrictions after evaluation The restriction compositor is evaluated by pasting the two separation squares. The parameter-change comparison supplies the inner edge, and the mixed product composition law supplies the outer edge. ```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.Section08.FunctorCategoryCalculus.FunPrecompositionCompositionBase as Base import SCT.VolumeI.Chapter01.Section07.FunctorCategories as Categories import SCT.VolumeI.Chapter01.Section06.PullbackLaws as Laws import SCT.VolumeI.Chapter01.Section04.CompositionCalculus.RetainedCompositionParameterChange as Project import SCT.VolumeI.Chapter01.Section08.FunctorCategoryCalculus.FunPrecompositionParameterChange as Parameter import SCT.VolumeI.Chapter01.Section08.FunctorCategoryCalculus.FunPrecompositionCompositeImage as Image import SCT.VolumeI.Chapter01.Section02.Isomorphisms as Isomorphisms import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as PN import SCT.VolumeI.Chapter01.Section03.IdentificationCalculus.Structural as Structural module SCT.VolumeI.Chapter01.Section08.FunctorCategoryCalculus.FunPrecompositionComposition {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) (P : Laws.PullbackStructure π―) where open import SCT.VolumeI.Chapter01.Section07.Setup π― M β± open import SCT.VolumeI.Chapter01.Section08.FunctorCategoryCalculus.FunctorSquares π― M β± P open import SCT.VolumeI.Chapter01.Section08.MappingCalculus.Restriction.RestrictionMate π― using (cancel-trailing-pair; prefix-transfer; cancel-prefix; close-comparison) open import SCT.VolumeI.Chapter01.Section08.ProductSquares π― open import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductMixedSubstitution π― M using (separate-composition) open import SCT.VolumeI.Chapter01.Section04.SquareCalculus.ParameterSquarePasting π― using (paste) open import SCT.VolumeI.Chapter01.Section04.SquareCalculus.ProjectionSquares π― using (post-inverse) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus π― using (pre-inverse) open Isomorphisms vocabulary terminal products productLaws composition vertical whiskering using (cancel-inverse) open PN vocabulary terminal products productLaws composition vertical whiskering using (cancel-left; cancel-right; move-square) open Structural vocabulary terminal products productLaws composition whiskering using (postWhisker-comp-at; whisker-mixed-at) module CompositorEvaluation {X A B C E : CAT} (f : MAP A B) (g : MAP B C) (h : MAP X (Fun C E)) where open Base.CompositorEvaluation π― M β± P f g h public ΟX = productRestriction-comp X f g ΟY = productRestriction-comp Y f g Xgf = productRestriction X (g β f) Ygf = productRestriction Y (g β f) product-image = e β ΟY evaluation-associator = comp-assoc Yf Yg e evaluation-beta = Ξ² β· Yf leading-prefix = product-image β (evaluation-associator β evaluation-beta) projected-prefix = (comp-assoc HA Ygf e) β»ΒΉ β (e β (ΟY β· HA)) abstract prefix-cancellation : (leading-prefix β ((Ξ² β»ΒΉ β· Yf) β evaluation-associator β»ΒΉ)) =β product-image prefix-cancellation = cancel-trailing-pair product-image evaluation-associator evaluation-beta (Ξ² β»ΒΉ β· Yf) (pre-inverse Ξ² Yf) output-endpoint : projected-prefix =β ((leading-prefix β· HA) β Pasted.target-evaluation) output-endpoint = normalize β»ΒΉ β move-square (comp-assoc HA Ygf e) (product-image β· HA) (e β (ΟY β· HA)) (comp-assoc HA (Yg β Yf) e) (whisker-mixed-at ΟY HA e) where q : (e β (Yg β Yf)) =β (Uf β Yf) q = (Ξ² β»ΒΉ β· Yf) β evaluation-associator β»ΒΉ final : (e β ((Yg β Yf) β HA)) =β ((e β (Yg β Yf)) β HA) final = (comp-assoc HA (Yg β Yf) e) β»ΒΉ normalize : ((leading-prefix β· HA) β Pasted.target-evaluation) =β ((product-image β· HA) β final) normalize = isoComp-cong ((preWhisker HA β prefix-cancellation) β (preWhisker-isoComp-at leading-prefix q HA) β»ΒΉ) (idIso final) β (isoComp-assoc-at (leading-prefix β· HA) (q β· HA) final) β»ΒΉ leading = leading-prefix β funPre-uncurry f Fg pasted-image = e β paste (Shg β»ΒΉ) (Shf β»ΒΉ) abstract leading-transfer : ((projected-prefix β pasted-image) β z) =β ((leading β· HA) β uβ) leading-transfer = isoComp-cong ((preWhisker-isoComp-at leading-prefix (funPre-uncurry f Fg) HA) β»ΒΉ) (idIso uβ) β prefix-transfer (leading-prefix β· HA) Pasted.target-evaluation projected-prefix pasted-image z (funPre-uncurry f Fg β· HA) uβ output-endpoint core-transfer Sgf = productMap-separate h (g β f) separation-image = e β Sgf outer-associator = (comp-assoc Xgf HC e) β»ΒΉ product-composition = e β (HC β ΟX) prefix-associator = comp-assoc HA Ygf e prefix-composition = e β (ΟY β· HA) abstract leading-normalization : Lifted.leading =β leading leading-normalization = (isoComp-assoc-at product-image (evaluation-associator β evaluation-beta) (funPre-uncurry f Fg)) β»ΒΉ β isoComp-cong (idIso product-image) ((isoComp-assoc-at evaluation-associator evaluation-beta (funPre-uncurry f Fg)) β»ΒΉ) product-square : (separation-image β (prefix-composition β pasted-image)) =β product-composition product-square = isoComp-unitΛ‘-at product-composition β (isoComp-cong (postWhisker-idIso e (HC β Xgf) β ((postWhisker e β isoComp-inverseΚ³-at Sgf) β (postWhisker-isoComp-at e Sgf (Sgf β»ΒΉ)) β»ΒΉ)) (idIso product-composition) β ((isoComp-assoc-at separation-image (e β Sgf β»ΒΉ) product-composition) β»ΒΉ β isoComp-cong (idIso separation-image) (postWhisker-isoComp-at e (Sgf β»ΒΉ) (HC β ΟX) β ((postWhisker e β separate-composition h f g) β (postWhisker-isoComp-at e (ΟY β· HA) (paste (Shg β»ΒΉ) (Shf β»ΒΉ))) β»ΒΉ)))) remove-prefix : (Lifted.prefix β (projected-prefix β pasted-image)) =β (outer-associator β product-composition) remove-prefix = cancel-prefix outer-associator separation-image prefix-associator prefix-composition pasted-image product-composition product-square outer-square : (outer-associator β product-composition) =β ((U β ΟX) β aβ β»ΒΉ) outer-square = move-square (comp-assoc Xgf HC e) (U β ΟX) product-composition aβ (postWhisker-comp-at ΟX HC e) finish : ((outer-associator β product-composition) β z) =β ((U β ΟX) β (aβ β (aβ β r))) finish = isoComp-cong (idIso (U β ΟX)) (cancel-left aβ (aβ β (aβ β r))) β (isoComp-assoc-at (U β ΟX) (aβ β»ΒΉ) z β isoComp-cong outer-square (idIso z)) comparison : (funPre-uncurry (g β f) h β funUncurryIso (preComp f g β· h)) =β ((funUncurry h β productRestriction-comp X f g) β (comp-assoc Xf Xg (funUncurry h) β ((funPre-uncurry g h β· Xf) β (funPre-uncurry f (funPre g β h) β funUncurryIso (comp-assoc h (funPre g) (funPre f)))))) comparison = close-comparison _ Lifted.prefix projected-prefix pasted-image z ((leading β· HA) β uβ) (outer-associator β product-composition) _ (isoComp-cong (idIso Lifted.prefix) (isoComp-cong (preWhisker HA β leading-normalization) (idIso uβ)) β Lifted.law) leading-transfer remove-prefix finish ```