Other Agda modules in this section (188)
- Associativity
- Composition
- EvaluationCalculus.CompositionShortEdges
- EvaluationCalculus.DoubleEvaluationCoordinates
- EvaluationCalculus.Endpoints.CompositionEndpointComparison
- EvaluationCalculus.Endpoints.DoubleEvaluationCorners
- EvaluationCalculus.Endpoints.EndpointBoundaryComposition
- EvaluationCalculus.Endpoints.EndpointConeRoutes
- EvaluationCalculus.Endpoints.EndpointCornerComparison
- EvaluationCalculus.Endpoints.EndpointCornerFamilies
- EvaluationCalculus.Endpoints.EndpointFrameCones
- EvaluationCalculus.Endpoints.EndpointInputNaturality
- EvaluationCalculus.Endpoints.FramedCornerPasting
- EvaluationCalculus.Endpoints.InsertedShapeCorners
- EvaluationCalculus.Endpoints.RectangularCornerNormalization
- EvaluationCalculus.Endpoints.TransposedCornerComparisons
- EvaluationCalculus.Endpoints.TransposedEndpointFrames
- EvaluationCalculus.EquivalenceUnit
- EvaluationCalculus.EvaluationComposition
- EvaluationCalculus.EvaluationIsomorphisms
- EvaluationCalculus.PairedProjectionComposition
- EvaluationCalculus.Postcomposition.CurryPostcomposition
- EvaluationCalculus.Postcomposition.PostcompositionCorners
- EvaluationCalculus.Postcomposition.PostcompositionDiagramFrames
- EvaluationCalculus.Postcomposition.PostcompositionEndpointCones
- EvaluationCalculus.Postcomposition.PostcompositionObjectEvaluation
- EvaluationCalculus.Postcomposition.PostcompositionParameterEvaluation
- EvaluationCalculus.Restriction.ConstantRestrictionCoordinates
- EvaluationCalculus.Restriction.ConstantRestrictionEvaluation
- EvaluationCalculus.Restriction.CornerRestrictionEvaluation
- EvaluationCalculus.Restriction.CurryRestrictionCorner
- EvaluationCalculus.Restriction.EndpointRestrictionCones
- EvaluationCalculus.Restriction.FramedConeRestriction
- EvaluationCalculus.Restriction.FramedRestrictionCorners
- EvaluationCalculus.Restriction.IdentityRestrictionEvaluation
- EvaluationCalculus.Restriction.InsertionEvaluation
- EvaluationCalculus.Restriction.InsertionParameterComposition
- EvaluationCalculus.Restriction.InsertionProjectionWitnesses
- EvaluationCalculus.Restriction.InsertionRestrictionCompatibility
- EvaluationCalculus.Restriction.InsertionRestrictionEvaluation
- EvaluationCalculus.Restriction.PostcompositionRestrictionEvaluation
- EvaluationCalculus.Restriction.RestrictionBoundaryCorners
- EvaluationCalculus.Restriction.RestrictionCompositorEvaluation
- EvaluationCalculus.Restriction.RestrictionCornerTransport
- EvaluationCalculus.Restriction.RestrictionEdgeEndpoints
- EvaluationCalculus.Restriction.RestrictionEndpointComposition
- EvaluationCalculus.Restriction.RestrictionEvaluation
- EvaluationCalculus.Restriction.RestrictionIdentificationComposition
- EvaluationCalculus.Restriction.RestrictionInsertionCompositionEvaluation
- EvaluationCalculus.Restriction.RestrictionInsertions
- EvaluationCalculus.Restriction.RestrictionParameterEvaluation
- EvaluationCalculus.UniversalArrowEvaluation
- EvaluationCalculus.UniversalArrowSubstitution
- EvaluationCalculus.WhiskeringComparisonTransfer
- Everything
- ExpressionAssociativity
- ExpressionUnitLaws
- GlobalCompositionLaws
- Interchange
- MorphismCalculus.CompositePresentations
- MorphismCalculus.CompositionExpressions
- MorphismCalculus.CompositionIdentifications
- MorphismCalculus.CompositionSubstitution
- MorphismCalculus.CompositionWithIdentifications
- MorphismCalculus.ConstantFunctorExpressions
- MorphismCalculus.ConstantSourceNaturality
- MorphismCalculus.ConstantSourceRestriction
- MorphismCalculus.CurriedDiagramComparisons
- MorphismCalculus.CurriedRestrictionFrames
- MorphismCalculus.CurryingEndpointImages
- MorphismCalculus.CurryingExpressionComparisons
- MorphismCalculus.CurryingExpressions
- MorphismCalculus.CurryingInsertion
- MorphismCalculus.CurryingUncurryingRecovery
- MorphismCalculus.DiagramExpressionIdentifications
- MorphismCalculus.DiagramNames
- MorphismCalculus.DoublePostcompositionFrames
- MorphismCalculus.EndpointFiberContractibility
- MorphismCalculus.EndpointFiberEquivalences
- MorphismCalculus.EndpointFiberExpressions
- MorphismCalculus.EndpointFiberLifts
- MorphismCalculus.EndpointFiberOperationEquivalences
- MorphismCalculus.EndpointFiberOperations
- MorphismCalculus.EvaluatedPairRestriction
- MorphismCalculus.EvaluatedParameterChange
- MorphismCalculus.EvaluatedTriangleFamilies
- MorphismCalculus.EvaluatedUncurryingEndpoints
- MorphismCalculus.ExpressionCalculus
- MorphismCalculus.ExpressionDiagramPresentations
- MorphismCalculus.ExpressionEquivalences
- MorphismCalculus.ExpressionFrameCalculus
- MorphismCalculus.ExpressionFrameSquares
- MorphismCalculus.ExpressionIdentifications
- MorphismCalculus.ExpressionPostcomposition
- MorphismCalculus.ExpressionPostcompositionPasting
- MorphismCalculus.ExpressionRestriction
- MorphismCalculus.ExpressionRestrictionFrames
- MorphismCalculus.ExpressionRestrictionPostcomposition
- MorphismCalculus.ExpressionRestrictionSquare
- MorphismCalculus.ExternalProductExpressions
- MorphismCalculus.ExternalProductPostcomposition
- MorphismCalculus.ExternalProductRestriction
- MorphismCalculus.ExternalProductSeparation
- MorphismCalculus.FixedCoordinateExpressions
- MorphismCalculus.FixedCoordinateTriangles
- MorphismCalculus.GlobalCompositionExpressions
- MorphismCalculus.GluedCompositePresentations
- MorphismCalculus.IdentityExpressionPostcomposition
- MorphismCalculus.IdentityExpressionRetargeting
- MorphismCalculus.IdentityExpressionSubstitution
- MorphismCalculus.IdentityFromDiagram
- MorphismCalculus.IdentityFunctorExpressions
- MorphismCalculus.IsomorphicPostcomposition
- MorphismCalculus.IsomorphismExpressionOperations
- MorphismCalculus.NormalizedIdentityExpressions
- MorphismCalculus.PairedCoordinatePostcomposition
- MorphismCalculus.PairedParameterChange
- MorphismCalculus.PostcompositionPairing
- MorphismCalculus.PostcompositionPresentations
- MorphismCalculus.PresentationComparisons
- MorphismCalculus.PresentationSubstitution
- MorphismCalculus.ProductExpressionFrames
- MorphismCalculus.ProductExpressionFunctoriality
- MorphismCalculus.ProductExpressionReflection
- MorphismCalculus.ProductExpressionRestriction
- MorphismCalculus.ProductExpressions
- MorphismCalculus.ProductIdentities
- MorphismCalculus.PullbackDiagramLifting
- MorphismCalculus.RestrictionAlongSection
- MorphismCalculus.SquareCompositePresentations
- MorphismCalculus.TriangleComparisons
- MorphismCalculus.TriangleFamilies
- MorphismCalculus.TriangleFamilyPresentations
- MorphismCalculus.TriangleVertices
- MorphismCalculus.UncurriedExpressionComparisons
- MorphismCalculus.UncurriedPostcompositionComparisons
- MorphismCalculus.UncurriedProductExpressions
- MorphismCalculus.UncurriedRestrictionExpressions
- MorphismCalculus.UncurryingCoordinateEndpoints
- MorphismCalculus.UncurryingCurryingRecovery
- MorphismCalculus.UncurryingDiagramEndpoints
- MorphismCalculus.UncurryingExpressionCoordinates
- MorphismCalculus.UncurryingExpressionFrames
- MorphismCalculus.UncurryingExpressionRestriction
- MorphismCalculus.UncurryingExpressions
- MorphismCalculus.UncurryingFramedOperations
- MorphismCalculus.UncurryingFunctorPostcomposition
- MorphismCalculus.UncurryingFunctorPrecomposition
- MorphismCalculus.UncurryingIdentifiedPostcomposition
- MorphismCalculus.UncurryingPostcomposition
- MorphismCalculus.UncurryingPrecompositionFrames
- MorphismCalculus.UncurryingReflection
- MorphismCalculus.UncurryingTriangleReflection
- NaturalTransformationWhiskering
- Naturality
- PrimitiveIdentificationComposition
- ProductComposition
- ProductInterchange
- SegalAxiom
- SquareCalculus.ArrowCategorySquares
- SquareCalculus.AssociativitySquares
- SquareCalculus.CommonRestrictionDiagonal
- SquareCalculus.EvaluatedSquareExpressions
- SquareCalculus.FramedSquareCommutativity
- SquareCalculus.FramedSquareEndpoints
- SquareCalculus.GluedFramedSquares
- SquareCalculus.GluedSquareArrows
- SquareCalculus.GluedSquareCorners
- SquareCalculus.PairedFaceCorners
- SquareCalculus.SquareBoundaryCones
- SquareCalculus.SquareBoundaryTransfer
- SquareCalculus.SquareCornerEvaluation
- SquareCalculus.SquareCurrying
- SquareCalculus.SquareCurryingCoordinates
- SquareCalculus.SquareCurryingCorner
- SquareCalculus.SquareCurryingEquivalence
- SquareCalculus.SquareDiagramCorners
- SquareCalculus.SquareEndpointCalculus
- SquareCalculus.SquareFaceCorners
- SquareCalculus.SquareInsertionCorner
- SquareCalculus.SquareInsertionNormalization
- SquareCalculus.SquareParameterCorner
- SquareCalculus.UncurryFramedSquare
- TrianglePullbacks
- UnitCalculus.DirectUnitEndpoints
- UnitCalculus.DirectUnitPresentations
- UnitCalculus.DirectUnitTriangles
- UnitCalculus.UnitTriangleFamilies
Complete compiler-highlighted source. Follow a symbol to its declaration.
# The composition functor between functor categories Curry the evaluation formula `((F,u),b) β¦ F(u(b))`. Its named values agree with ordinary composition. Fixing either input gives the existing precomposition or postcomposition functor, with retained uncurried images. ```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 module SCT.VolumeI.Chapter02.Section02.InternalComposition {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) where open import SCT.VolumeI.Chapter02.Section01.EvaluationCalculus.EndpointEvaluation π― M β± public open import SCT.VolumeI.Chapter01.Section07.EvaluationCalculus.IsomorphismLifting π― M β± using (funIsoReflect; funIsoReflect-Ξ²) product-pair : {Ξ A B C D : CAT} (f : MAP A C) (g : MAP B D) (h : MAP Ξ A) (k : MAP Ξ B) β (productMap f g β pair h k) =β pair (f β h) (g β k) product-pair f g h k = pair-cong ((f β pair-Ξ²β h k) β comp-assoc (pair h k) prβ f) ((g β pair-Ξ²β h k) β comp-assoc (pair h k) prβ g) β pair-pre (f β prβ) (g β prβ) (pair h k) named-application : {Ξ C D : CAT} (f : MAP C D) (r : MAP Ξ One) (h : MAP Ξ C) β (funEval β pair (nameFun f β r) h) =β (f β h) named-application f r h = (f β pair-Ξ²β r h) β comp-assoc (pair r h) prβ f β (funCurry-Ξ² (f β prβ) β· pair r h) β (comp-assoc (pair r h) (productMap (nameFun f) (id _)) funEval) β»ΒΉ β (funEval β (pair-cong (idIso (nameFun f β r)) (comp-unitΛ‘ h) β product-pair (nameFun f) (id _) r h) β»ΒΉ) named-uncurry : {Ξ C D : CAT} (f : MAP C D) (r : MAP Ξ One) β funUncurry (nameFun f β r) =β (f β prβ) named-uncurry {C = C} f r = (f β (comp-unitΛ‘ prβ β pair-Ξ²β (r β prβ) (id C β prβ))) β comp-assoc (productMap r (id C)) prβ f β (funCurry-Ξ² (f β prβ) β· productMap r (id C)) β funUncurry-restrict (nameFun f) r module At (B C D : CAT) where X = Fun C D Y = Fun B C parameter = X Γ Y inner : MAP (parameter Γ B) C inner = funEval β pair (prβ β prβ) prβ input : MAP (parameter Γ B) (X Γ C) input = pair (prβ β prβ) inner diagram : MAP (parameter Γ B) D diagram = funEval β input composeFunctor : MAP parameter (Fun B D) composeFunctor = funCurry diagram module Apply {Ξ : CAT} (F : MAP Ξ X) (u : MAP Ξ Y) where step : MAP (Ξ Γ B) (parameter Γ B) step = productMap (pair F u) (id B) first : ((prβ β prβ) β step) =β (F β prβ) first = (pair-Ξ²β F u β· prβ) β (comp-assoc prβ (pair F u) prβ) β»ΒΉ β (prβ β pair-Ξ²β (pair F u β prβ) (id B β prβ)) β comp-assoc step prβ prβ second : ((prβ β prβ) β step) =β (u β prβ) second = (pair-Ξ²β F u β· prβ) β (comp-assoc prβ (pair F u) prβ) β»ΒΉ β (prβ β pair-Ξ²β (pair F u β prβ) (id B β prβ)) β comp-assoc step prβ prβ inner-comparison : (inner β step) =β funUncurry u inner-comparison = (funEval β (pair-cong second (pair-Ξ²β (pair F u β prβ) (id B β prβ)) β pair-pre (prβ β prβ) prβ step)) β comp-assoc step (pair (prβ β prβ) prβ) funEval input-comparison : (input β step) =β pair (F β prβ) (funUncurry u) input-comparison = pair-cong first inner-comparison β pair-pre (prβ β prβ) inner step comparison : funUncurry (composeFunctor β pair F u) =β (funEval β pair (F β prβ) (funUncurry u)) comparison = (funEval β input-comparison) β comp-assoc step input funEval β (funCurry-Ξ² diagram β· step) β funUncurry-restrict composeFunctor (pair F u) module Named (F : MAP C D) (u : MAP B C) where raw : funUncurry (composeFunctor β pair (nameFun F) (nameFun u)) =β funUncurry (nameFun (F β u)) raw = (funCurry-Ξ² ((F β u) β prβ)) β»ΒΉ β (comp-assoc prβ u F) β»ΒΉ β named-application F prβ (u β prβ) β (funEval β pair-cong (idIso (nameFun F β prβ)) (funCurry-Ξ² (u β prβ))) β Apply.comparison (nameFun F) (nameFun u) comparison : (composeFunctor β pair (nameFun F) (nameFun u)) =β nameFun (F β u) comparison = funIsoReflect _ _ raw image : funUncurryIso comparison =β raw image = funIsoReflect-Ξ² _ _ raw module FixRight (u : MAP B C) where insertion : MAP X parameter insertion = pair (id X) (const (nameFun u)) raw : funUncurry (composeFunctor β insertion) =β funUncurry (funPre {D = D} u) raw = (funPre-Ξ² u) β»ΒΉ β (funEval β pair-cong (idIso (id X β prβ)) (named-uncurry u (terminate X))) β Apply.comparison (id X) (const (nameFun u)) comparison : (composeFunctor β insertion) =β funPre u comparison = funIsoReflect _ _ raw image : funUncurryIso comparison =β raw image = funIsoReflect-Ξ² _ _ raw module FixLeft (F : MAP C D) where insertion : MAP Y parameter insertion = pair (const (nameFun F)) (id Y) raw : funUncurry (composeFunctor β insertion) =β funUncurry (funPost {C = B} F) raw = (funPost-Ξ² F) β»ΒΉ β named-application F (terminate Y β prβ) funEval β (funEval β pair-cong (comp-assoc prβ (terminate Y) (nameFun F)) (funUncurry-id B C)) β Apply.comparison (const (nameFun F)) (id Y) comparison : (composeFunctor β insertion) =β funPost F comparison = funIsoReflect _ _ raw image : funUncurryIso comparison =β raw image = funIsoReflect-Ξ² _ _ raw ```