Other Agda modules in this section (54)
- AbsoluteObjects
- Contractible
- CoproductDomain
- CoreOfFun
- Currying
- Evaluation
- EvaluationCalculus.CoreViaFunctorCategories
- EvaluationCalculus.EvaluatedAssociativitySquare
- EvaluationCalculus.EvaluatedProjectionNormalization
- EvaluationCalculus.EvaluatedRightUnit
- EvaluationCalculus.EvaluatedSeparationChange
- EvaluationCalculus.EvaluatedUnitSquare
- EvaluationCalculus.EvaluationNaturality
- EvaluationCalculus.IsomorphismLifting
- EvaluationCalculus.IteratedCompatibility
- EvaluationCalculus.MappingCompatibility
- EvaluationCalculus.MappingProofs
- EvaluationCalculus.MappingSubstitution
- EvaluationCalculus.MappingTests
- EvaluationCalculus.NestedCoordinateNaturality
- EvaluationCalculus.PostcompositionTriangleFrames
- EvaluationCalculus.PostcompositionUnitFrame
- EvaluationCalculus.PrecompositionMiddleEvaluation
- EvaluationCalculus.PrecompositionMiddleRestriction
- EvaluationCalculus.PrecompositionOuterFrame
- EvaluationCalculus.PrecompositionProductFrameComparison
- EvaluationCalculus.PrecompositionRestrictedOuterFrame
- EvaluationCalculus.PrecompositionUnitEvaluation
- EvaluationCalculus.ProductSeparationUnits
- EvaluationCalculus.Representation
- EvaluationCalculus.RestrictedFrameNaturality
- EvaluationCalculus.RestrictedFrames
- EvaluationCalculus.SubstitutionCoherence
- EvaluationCalculus.UncurryingAction
- EvaluationCalculus.UncurryingUnits
- Everything
- ExponentialLaw
- FunctorCategories
- FunctorProducts
- FunctorPullbacks
- Functoriality
- MappingComparison
- PullbackCalculus.ConeCurrying
- PullbackCalculus.ConeReflection
- PullbackCalculus.ConeUncurrying
- PullbackCalculus.ConeUncurryingNormalization
- PullbackCalculus.ConeUncurryingPre
- PullbackCalculus.MappedCones
- PullbackCalculus.PullbackMappingTests
- PullbackCalculus.UncurryingCones
- PullbackCalculus.UncurryingSquares
- Setup
- TerminalDomain
- Uniqueness
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Frames for a precomposition triangle A chosen evaluated composite determines a common middle frame for the triangle. This calculation retains the two product projections and does not identify composition with a projection strictly. ```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.Chapter01.Section07.EvaluationCalculus.PrecompositionTriangleFrames {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) where open import SCT.VolumeI.Chapter01.Section07.Setup π― M β± public import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as PN open PN vocabulary terminal products productLaws composition vertical whiskering using (cancel-right) module At {C D : CAT} (K : CAT) (l : MAP C D) (r : MAP D C) (u : funUncurry (funPre {D = K} l β funPre {D = K} r) =β (funEval β pair (prβ {Fun C K} {C}) (r β (l β prβ)))) where X = Fun C K Y = Fun D K L : MAP X Y L = funPre {D = K} r R : MAP Y X R = funPre {D = K} l e : MAP (X Γ C) K e = funEval W : MAP (X Γ D) (X Γ C) W = productMap (id X) r H : MAP (X Γ C) (X Γ C) H = pair prβ (r β (l β prβ)) outside-object : MAP (X Γ D) K outside-object = e β pair prβ (r β prβ) middle-object : MAP (X Γ D) K middle-object = e β pair prβ (r β (l β (r β prβ))) outside : funUncurry L =β outside-object outside = (e β pair-cong (comp-unitΛ‘ prβ) (idIso (r β prβ))) β funPre-Ξ² {D = K} r first-coordinate : (prβ β W) =β (prβ {X} {D}) first-coordinate = comp-unitΛ‘ prβ β pair-Ξ²β (id X β prβ) (r β prβ) second-coordinate : (prβ β W) =β (r β prβ {X} {D}) second-coordinate = pair-Ξ²β (id X β prβ) (r β prβ) nested-coordinate : ((r β (l β prβ)) β W) =β (r β (l β (r β prβ {X} {D}))) nested-coordinate = (r β ((l β second-coordinate) β comp-assoc W prβ l)) β comp-assoc W (l β prβ) r product-frame : (H β W) =β pair (prβ {X} {D}) (r β (l β (r β prβ))) product-frame = pair-cong first-coordinate nested-coordinate β pair-pre prβ (r β (l β prβ)) W evaluation-frame : ((e β H) β W) =β middle-object evaluation-frame = (e β product-frame) β comp-assoc W H e restricted-frame : (funUncurry (R β L) β W) =β middle-object restricted-frame = evaluation-frame β (u β· W) middle : funUncurry ((L β R) β L) =β middle-object middle = evaluation-frame β ((u β· W) β (funPre-uncurry r (R β L) β funUncurryIso (comp-assoc L R L))) abstract post-comparison : (middle β funUncurryIso ((comp-assoc L R L) β»ΒΉ)) =β (restricted-frame β funPre-uncurry r (R β L)) post-comparison = cancel-right (funUncurryIso (comp-assoc L R L)) (restricted-frame β funPre-uncurry r (R β L)) β isoComp-cong ((isoComp-assoc-at restricted-frame (funPre-uncurry r (R β L)) (funUncurryIso (comp-assoc L R L))) β»ΒΉ β (isoComp-assoc-at evaluation-frame (u β· W) (funPre-uncurry r (R β L) β funUncurryIso (comp-assoc L R L))) β»ΒΉ) (funUncurryIso-inverse (comp-assoc L R L)) ```