Other Agda modules in this section (54)
- AbsoluteObjects
- Contractible
- CoproductDomain
- CoreOfFun
- Currying
- Evaluation
- EvaluationCalculus.CoreViaFunctorCategories
- EvaluationCalculus.EvaluatedAssociativitySquare
- EvaluationCalculus.EvaluatedProjectionNormalization
- EvaluationCalculus.EvaluatedRightUnit
- 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.PrecompositionTriangleFrames
- 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.
# Changing an evaluated separation square Changing the two object coordinates and identifying the evaluator carries an evaluated separation square to the changed route. The proof retains the two chosen coordinate comparisons and the square between them. ```agda {-# OPTIONS --safe --without-K #-} open import Agda.Primitive using (Level) open import SCT.VolumeI.Chapter01.Theory using (Theory) module SCT.VolumeI.Chapter01.Section07.EvaluationCalculus.EvaluatedSeparationChange {c m a : Level} (šÆ : Theory c m a) where open import SCT.VolumeI.Chapter01.Section04.Setup šÆ public open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ComparisonSquares šÆ using (post-square) import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as Naturality import SCT.VolumeI.Chapter01.Section03.IdentificationCalculus.Structural as Structural open Naturality vocabulary terminal products productLaws composition vertical whiskering using (move-square) open Structural vocabulary terminal products productLaws composition whiskering using (whisker-mixed-at; postWhisker-comp-at) module At {A B D E : CAT} (Ļ : MAP A B) (j z : MAP A A) (k v : MAP B B) (Ī“ : j =ā z) (ε : k =ā v) (S : (k ā Ļ) =ā (Ļ ā j)) (ν : (v ā Ļ) =ā (Ļ ā z)) (square : (ν ā (ε ā· Ļ)) =ā ((Ļ ā Ī“) ā S)) (d : MAP B E) (W : MAP A D) (e : MAP D E) (β : (d ā Ļ) =ā (e ā W)) {P : MAP A D} (Ļ : (W ā z) =ā P) where prefix = (comp-assoc j Ļ d) ā»Ā¹ ā ((d ā S) ā comp-assoc Ļ k d) changed = (comp-assoc z Ļ d) ā»Ā¹ ā ((d ā ν) ā comp-assoc Ļ v d) nā² = (e ā Ļ) ā (comp-assoc z W e ā (β ā· z)) n = (e ā (Ļ ā (W ā Ī“))) ā (comp-assoc j W e ā (β ā· j)) Ī = nā² ā changed abstract inner : (((d ā ν) ā comp-assoc Ļ v d) ā ((d ā ε) ā· Ļ)) =ā ((d ā (Ļ ā Ī“)) ā ((d ā S) ā comp-assoc Ļ k d)) inner = paste-squares (comp-assoc Ļ k d) (comp-assoc Ļ v d) (d ā S) (d ā ν) ((d ā ε) ā· Ļ) (d ā (ε ā· Ļ)) (d ā (Ļ ā Ī“)) (whisker-mixed-at ε Ļ d) (post-square d S ν (ε ā· Ļ) (Ļ ā Ī“) square) coordinate-change : (changed ā ((d ā ε) ā· Ļ)) =ā (((d ā Ļ) ā Ī“) ā prefix) coordinate-change = paste-squares ((d ā S) ā comp-assoc Ļ k d) ((d ā ν) ā comp-assoc Ļ v d) ((comp-assoc j Ļ d) ā»Ā¹) ((comp-assoc z Ļ d) ā»Ā¹) ((d ā ε) ā· Ļ) (d ā (Ļ ā Ī“)) ((d ā Ļ) ā Ī“) inner (move-square (comp-assoc z Ļ d) ((d ā Ļ) ā Ī“) (d ā (Ļ ā Ī“)) (comp-assoc j Ļ d) (postWhisker-comp-at Ī“ Ļ d)) evaluation-change : (nā² ā ((d ā Ļ) ā Ī“)) =ā n evaluation-change = isoComp-cong ((postWhisker-isoComp-at e Ļ (W ā Ī“)) ā»Ā¹) (idIso (comp-assoc j W e ā (β ā· j))) ā (isoComp-assoc-at (e ā Ļ) (e ā (W ā Ī“)) (comp-assoc j W e ā (β ā· j))) ā»Ā¹ ā isoComp-cong (idIso (e ā Ļ)) (isoComp-assoc-at (e ā (W ā Ī“)) (comp-assoc j W e) (β ā· j)) ā isoComp-cong (idIso (e ā Ļ)) (isoComp-cong (postWhisker-comp-at Ī“ W e) (idIso (β ā· j))) ā isoComp-cong (idIso (e ā Ļ)) ((isoComp-assoc-at (comp-assoc z W e) ((e ā W) ā Ī“) (β ā· j)) ā»Ā¹) ā isoComp-cong (idIso (e ā Ļ)) (isoComp-cong (idIso (comp-assoc z W e)) (interchange-at β Ī“)) ā isoComp-cong (idIso (e ā Ļ)) (isoComp-assoc-at (comp-assoc z W e) (β ā· z) ((d ā Ļ) ā Ī“)) ā isoComp-assoc-at (e ā Ļ) (comp-assoc z W e ā (β ā· z)) ((d ā Ļ) ā Ī“) combined : (Ī ā ((d ā ε) ā· Ļ)) =ā (n ā prefix) combined = isoComp-cong evaluation-change (idIso prefix) ā (isoComp-assoc-at nā² ((d ā Ļ) ā Ī“) prefix) ā»Ā¹ ā isoComp-cong (idIso nā²) coordinate-change ā isoComp-assoc-at nā² changed ((d ā ε) ā· Ļ) append : {T : MAP B E} (leading : T =ā (d ā k)) ā (n ā (prefix ā (leading ā· Ļ))) =ā (Ī ā (((d ā ε) ā leading) ā· Ļ)) append leading = isoComp-cong (idIso Ī) ((preWhisker-isoComp-at (d ā ε) leading Ļ) ā»Ā¹) ā isoComp-assoc-at Ī ((d ā ε) ā· Ļ) (leading ā· Ļ) ā isoComp-cong (combined ā»Ā¹) (idIso (leading ā· Ļ)) ā (isoComp-assoc-at n prefix (leading ā· Ļ)) ā»Ā¹ ```