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.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.
# Closing an evaluated square The calculation below removes the endpoint comparisons from a commuting evaluation diagram. It retains the resulting compatibility between the two cocones. It is ordinary isomorphism calculus, independent of currying. ```agda {-# OPTIONS --safe --without-K #-} open import Agda.Primitive using (Level) open import SCT.VolumeI.Chapter01.Theory using (Theory) import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as PN import SCT.VolumeI.Chapter01.Section02.Isomorphisms as Isomorphisms module SCT.VolumeI.Chapter01.Section08.MappingCalculus.Restriction.EvaluationSquares {c m a : Level} (𝒯 : Theory c m a) where open import SCT.VolumeI.Chapter01.Section04.Setup 𝒯 open import SCT.VolumeI.Chapter01.Section04.Substitution.CoherenceTransport 𝒯 open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus 𝒯 using (inverse-composite) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ComparisonSquares 𝒯 using (encoded-restriction-square) open PN vocabulary terminal products productLaws composition vertical whiskering using (cancel-left) open Isomorphisms vocabulary terminal products productLaws composition vertical whiskering using (cancel-inverse) append-five : {X Y : CAT} {a₀ a₁ a₂ a₃ a₄ a₅ a₆ : MAP X Y} (A : a₅ =₁ a₆) (B : a₄ =₁ a₅) (C : a₃ =₁ a₄) (D : a₂ =₁ a₃) (E : a₁ =₁ a₂) (F : a₀ =₁ a₁) → ((A ∙ (B ∙ (C ∙ (D ∙ E)))) ∙ F) =₂ (A ∙ (B ∙ (C ∙ (D ∙ (E ∙ F))))) append-five A B C D E F = isoComp-cong (idIso A) (isoComp-cong (idIso B) (isoComp-cong (idIso C) (isoComp-assoc-at D E F))) ∙ (isoComp-cong (idIso A) (isoComp-cong (idIso B) (isoComp-assoc-at C (D ∙ E) F)) ∙ (isoComp-cong (idIso A) (isoComp-assoc-at B (C ∙ (D ∙ E)) F) ∙ isoComp-assoc-at A (B ∙ (C ∙ (D ∙ E))) F)) append-square : {X Y : CAT} {a₀ a₁ a₂ a₃ b : MAP X Y} (U : a₂ =₁ a₃) (V : a₁ =₁ a₂) (W : b =₁ a₃) (P : a₁ =₁ b) (z : a₀ =₁ a₁) → (U ∙ V) =₂ (W ∙ P) → (U ∙ (V ∙ z)) =₂ (W ∙ (P ∙ z)) append-square U V W P z square = isoComp-assoc-at W P z ∙ (isoComp-cong square (idIso z) ∙ (isoComp-assoc-at U V z) ⁻¹) compose-evaluated-pasting : {X Y : CAT} {a₀ a₁ a₂ a₃ a₄ a₅ b : MAP X Y} (W : a₄ =₁ a₅) (O : a₃ =₁ a₄) (A : a₂ =₁ a₃) (P : a₁ =₁ a₂) (Z : a₀ =₁ a₁) (T : a₂ =₁ a₅) (R : b =₁ a₅) (S : a₁ =₁ b) (U : a₀ =₁ b) → (W ∙ (O ∙ A)) =₂ T → (T ∙ P) =₂ (R ∙ S) → (S ∙ Z) =₂ U → (W ∙ (O ∙ (A ∙ (P ∙ Z)))) =₂ (R ∙ U) compose-evaluated-pasting W O A P Z T R S U output pasted source = isoComp-cong (idIso R) source ∙ (isoComp-assoc-at R S Z ∙ (isoComp-cong pasted (idIso Z) ∙ ((isoComp-assoc-at T P Z) ⁻¹ ∙ (isoComp-cong output (idIso (P ∙ Z)) ∙ ((isoComp-assoc-at W (O ∙ A) (P ∙ Z)) ⁻¹ ∙ isoComp-cong (idIso W) ((isoComp-assoc-at O A (P ∙ Z)) ⁻¹)))))) cancel-evaluation-route : {X Y : CAT} {a₀ a₁ a₂ a₃ a₄ : MAP X Y} (d : a₃ =₁ a₄) (c : a₂ =₁ a₃) (b : a₁ =₁ a₂) (a : a₀ =₁ a₁) → ((d ∙ (c ∙ (b ∙ a))) ∙ (a ⁻¹ ∙ (b ⁻¹ ∙ c ⁻¹))) =₂ d cancel-evaluation-route d c b a = isoComp-unitʳ-at d ∙ (isoComp-cong (idIso d) (isoComp-inverseʳ-at c) ∙ (isoComp-cong (idIso d) (isoComp-cong (idIso c) (cancel-inverse b (c ⁻¹))) ∙ (isoComp-cong (idIso d) (isoComp-cong (idIso c) (isoComp-cong (idIso b) (cancel-inverse a (b ⁻¹ ∙ c ⁻¹)))) ∙ (isoComp-cong (idIso d) (isoComp-cong (idIso c) (isoComp-assoc-at b a (a ⁻¹ ∙ (b ⁻¹ ∙ c ⁻¹)))) ∙ (isoComp-cong (idIso d) (isoComp-assoc-at c (b ∙ a) (a ⁻¹ ∙ (b ⁻¹ ∙ c ⁻¹))) ∙ isoComp-assoc-at d (c ∙ (b ∙ a)) (a ⁻¹ ∙ (b ⁻¹ ∙ c ⁻¹))))))) cancel-evaluation-pairs : {X Y : CAT} {a₀ a₁ a₂ a₃ a₄ a₅ : MAP X Y} (a : a₁ =₁ a₂) (b : a₂ =₁ a₃) (c : a₃ =₁ a₄) (d : a₄ =₁ a₅) (u : a₀ =₁ a₁) → (((a ⁻¹ ∙ b ⁻¹) ∙ (c ⁻¹ ∙ d ⁻¹)) ∙ (d ∙ (c ∙ (b ∙ (a ∙ u))))) =₂ u cancel-evaluation-pairs a b c d u = cancel-left a u ∙ (isoComp-cong (idIso (a ⁻¹)) (cancel-left b (a ∙ u)) ∙ (isoComp-assoc-at (a ⁻¹) (b ⁻¹) (b ∙ (a ∙ u)) ∙ (isoComp-cong (idIso (a ⁻¹ ∙ b ⁻¹)) (cancel-left c (b ∙ (a ∙ u)) ∙ (isoComp-cong (idIso (c ⁻¹)) (cancel-left d (c ∙ (b ∙ (a ∙ u)))) ∙ isoComp-assoc-at (c ⁻¹) (d ⁻¹) (d ∙ (c ∙ (b ∙ (a ∙ u)))))) ∙ isoComp-assoc-at (a ⁻¹ ∙ b ⁻¹) (c ⁻¹ ∙ d ⁻¹) (d ∙ (c ∙ (b ∙ (a ∙ u))))))) changeEndpoints-compose : {X Y : CAT} {a₀ a₁ a₂ b₀ b₁ b₂ : MAP X Y} (p : a₀ =₁ a₁) (q : a₁ =₁ a₂) (r : b₀ =₁ b₁) (s : b₁ =₁ b₂) (γ : a₀ =₁ b₀) → (changeEndpoints (q ∙ p) (s ∙ r) γ) =₂ (changeEndpoints q s (changeEndpoints p r γ)) changeEndpoints-compose p q r s γ = isoComp-cong (idIso s) ((isoComp-assoc-at r (γ ∙ p ⁻¹) (q ⁻¹)) ⁻¹) ∙ (isoComp-cong (idIso s) (isoComp-cong (idIso r) ((isoComp-assoc-at γ (p ⁻¹) (q ⁻¹)) ⁻¹)) ∙ (isoComp-assoc-at s r (γ ∙ (p ⁻¹ ∙ q ⁻¹)) ∙ isoComp-cong (idIso (s ∙ r)) (isoComp-cong (idIso γ) (inverse-composite q p)))) close-evaluation-square : {X Y : CAT} {a₀ a₁ a₂ a₃ b₀ b₁ b₂ b₃ : MAP X Y} (A : a₀ =₁ a₁) (B : b₀ =₁ b₁) (L : a₁ =₁ a₂) (R : b₁ =₁ b₂) (a : a₂ =₁ a₃) (b : b₂ =₁ b₃) (γ : a₀ =₁ b₀) (δ : a₃ =₁ b₃) → (δ ∙ (a ∙ (L ∙ A))) =₂ ((b ∙ (R ∙ B)) ∙ γ) → ((b ⁻¹ ∙ (δ ∙ a)) ∙ L) =₂ (R ∙ changeEndpoints A B γ) close-evaluation-square A B L R a b γ δ square = encoded-restriction-square A B L R target γ image where target = b ⁻¹ ∙ (δ ∙ a) compact : (target ∙ (L ∙ A)) =₂ ((R ∙ B) ∙ γ) compact = cancel-left b ((R ∙ B) ∙ γ) ∙ (isoComp-cong (idIso (b ⁻¹)) (isoComp-assoc-at b (R ∙ B) γ ∙ square) ∙ (isoComp-cong (idIso (b ⁻¹)) (isoComp-assoc-at δ a (L ∙ A)) ∙ isoComp-assoc-at (b ⁻¹) (δ ∙ a) (L ∙ A))) image : γ =₂ ((R ∙ B) ⁻¹ ∙ (target ∙ (L ∙ A))) image = isoComp-cong (idIso ((R ∙ B) ⁻¹)) (compact ⁻¹) ∙ (cancel-left (R ∙ B) γ) ⁻¹ ```