Other Agda modules in this section (76)
- AbsoluteObjects
- Coherence
- Composition
- CompositionCalculus.CompositionInputBaseCalculus
- CompositionCalculus.CompositionInputCalculus
- CompositionCalculus.CompositionInputParameterChange
- CompositionCalculus.CompositionNaturality
- CompositionCalculus.CompositionParameterChange
- CompositionCalculus.CompositionRestrictionCalculus
- CompositionCalculus.InternalCoherence
- CompositionCalculus.InternalPentagon
- CompositionCalculus.RetainedComparisonLaws
- CompositionCalculus.RetainedCompositionBaseChange
- CompositionCalculus.RetainedCompositionParameterChange
- CompositionCalculus.RetainedCompositionRoutes
- CompositionCalculus.UniversalAssociatorRestriction
- CompositionCalculus.UniversalCoherence
- CompositionCalculus.UniversalCoherenceCalculus
- CompositionCalculus.UniversalUnitCalculus
- CompositionCalculus.UniversalUnitChange
- Core
- Currying
- EquivalenceDetection
- Everything
- Functoriality
- MappingAnimae
- MappingProducts
- Points
- ProductCalculus.ProductAssociativity
- ProductCalculus.ProductPairingComparisons
- ProductCalculus.ProductSecondCoordinate
- ProductCalculus.ProductSubstitution
- ProductCalculus.ProductSubstitutionPairing
- ProductCalculus.ProductSubstitutionUnits
- ProductCalculus.TerminalInsertion
- Setup
- SquareCalculus.EquivalenceSectionFrames
- SquareCalculus.FramedCornerCalculus
- SquareCalculus.ParameterSquareNaturality
- SquareCalculus.ParameterSquarePasting
- SquareCalculus.ParameterSquareUnits
- SquareCalculus.ProjectionSquares
- SquareCalculus.RetainedParameterChangeProjections
- SquareCalculus.SectionFrames
- SquareCalculus.SplitProjectionCalculus
- SquareCalculus.SplitProjectionNaturality
- SquareCalculus.SquareEvaluation
- SquareCalculus.SquareEvaluationPostcomposition
- SquareCalculus.SquareEvaluationVerticalPasting
- SquareCalculus.TriangleEvaluation
- Substitution.ApplicationRestriction
- Substitution.ApplicationRouteNormalization
- Substitution.CoherenceTransport
- Substitution.ComparisonCancellation
- Substitution.Compatibility
- Substitution.ConstantPointRestriction
- Substitution.ConstantSubstitution
- Substitution.DecodingNaturality
- Substitution.EvaluationInputChange
- Substitution.EvaluationParameterChange
- Substitution.IdentityParameterChange
- Substitution.IsomorphismReasoning
- Substitution.IteratedCompatibility
- Substitution.MappingProofCalculus
- Substitution.NestedApplicationRestriction
- Substitution.ParameterChange
- Substitution.ParameterChangeNaturality
- Substitution.PrecompositionNaturality
- Substitution.ProofCalculus
- Substitution.RetainedIdentityParameterChange
- Substitution.SectionComparisonEvaluation
- Substitution.SectionComparisonRestriction
- Substitution.Specialization
- Substitution.SubstitutionCoherence
- Substitution.UncurriedIdentityParameterChange
- Uncurrying
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Evaluating a pair along a section If a projection has a specified section, evaluating a pair along that section agrees with evaluating its two coordinates. This lemma packages the pairing unit, substitution naturality, and substitution composition into one comparison with all boundary identifications retained. ```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.PairingCoherence as Pairing import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingNaturality as Naturality import SCT.VolumeI.Chapter01.Section03.ProductCalculus.PairingUnits as PairUnits import SCT.VolumeI.Chapter01.Section03.ProductCalculus.IteratedPairing as Iterated module SCT.VolumeI.Chapter01.Section04.ProductCalculus.PairSectionEvaluation {c m a : Level} (π― : Theory c m a) where open import SCT.VolumeI.Chapter01.Section04.Setup π― open import SCT.VolumeI.Chapter01.Section04.SquareCalculus.SplitProjectionCalculus π― open import SCT.VolumeI.Chapter01.Section04.Substitution.IsomorphismReasoning π― open Pairing vocabulary terminal products productLaws composition vertical whiskering using (pair-cong-comp) open Naturality vocabulary terminal products productLaws composition vertical whiskering using (pair-pre-natural-substitution; pair-pre-natural-inputs) open PairUnits vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (pair-pre-id) open Iterated vocabulary terminal products productLaws composition vertical whiskering pentagonTriangle using (pair-pre-iterated) module At {X K A B : CAT} (Ο : MAP K X) (i : MAP X K) (b : (Ο β i) =β (id X)) (u : MAP X A) (v : MAP X B) where j = pair u v ru = comp-unitΚ³ u rv = comp-unitΚ³ v units = pair-cong ru rv inputs = pair-cong (u β b) (v β b) au = comp-assoc i Ο u av = comp-assoc i Ο v assoc = comp-assoc i Ο j associators = pair-cong au av before = pair-pre u v (Ο β i) after = pair-pre u v (id X) inner = pair-pre (u β Ο) (v β Ο) i outer = pair-pre u v Ο β· i coordinates = pair-cong (section-image Ο i b u) (section-image Ο i b v) abstract expand-unit : section-image Ο i b j =β (units β (after β ((j β b) β assoc))) expand-unit = isoComp-assoc-at units after ((j β b) β assoc) β isoComp-cong ((pair-pre-id u v) β»ΒΉ) (idIso ((j β b) β assoc)) change-input : (units β (after β ((j β b) β assoc))) =β (units β (inputs β (before β assoc))) change-input = isoComp-cong (idIso units) (isoComp-assoc-at inputs before assoc β (isoComp-cong ((pair-pre-natural-substitution u v b) β»ΒΉ) (idIso assoc) β (isoComp-assoc-at after (j β b) assoc) β»ΒΉ)) compose-inputs : (units β (inputs β (before β assoc))) =β (units β (inputs β (associators β (inner β outer)))) compose-inputs = isoComp-cong (idIso units) (isoComp-cong (idIso inputs) (pair-pre-iterated u v Ο i)) collect-coordinates : (units β (inputs β associators)) =β coordinates collect-coordinates = (pair-cong-comp ru ((u β b) β au) rv ((v β b) β av)) β»ΒΉ β isoComp-cong (idIso units) ((pair-cong-comp (u β b) au (v β b) av) β»ΒΉ) finish : (units β (inputs β (associators β (inner β outer)))) =β (coordinates β (inner β outer)) finish = isoComp-cong collect-coordinates (idIso (inner β outer)) β ((isoComp-assoc-at units (inputs β associators) (inner β outer)) β»ΒΉ β isoComp-cong (idIso units) ((isoComp-assoc-at inputs associators (inner β outer)) β»ΒΉ)) comparison : section-image Ο i b (pair u v) =β (pair-cong (section-image Ο i b u) (section-image Ο i b v) β (pair-pre (u β Ο) (v β Ο) i β (pair-pre u v Ο β· i))) comparison = beginβ section-image Ο i b j =ββ¨ expand-unit β© (units β (after β ((j β b) β assoc))) =ββ¨ change-input β© (units β (inputs β (before β assoc))) =ββ¨ compose-inputs β© (units β (inputs β (associators β (inner β outer)))) =ββ¨ finish β© (coordinates β (inner β outer)) ββ ``` A comparison into the pair may be supplied before evaluating the section. Its two coordinate comparisons are then retained in the result. ```agda open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.InverseCalculus π― using (pre-inverse) open import SCT.VolumeI.Chapter01.Section02.Isomorphisms vocabulary terminal products productLaws composition vertical whiskering using (cancel-inverse) module ComparedInputs {X K A B : CAT} (Ο : MAP K X) (i : MAP X K) (b : (Ο β i) =β (id X)) (u : MAP X A) (v : MAP X B) {f : MAP K A} {g : MAP K B} (Ξ± : f =β (u β Ο)) (Ξ² : g =β (v β Ο)) where module Base = At Ο i b u v input = pair-cong Ξ± Ξ² before = pair-pre u v Ο after = pair-pre (u β Ο) (v β Ο) i out = before β»ΒΉ β input image = input β· i step = pair-pre f g i cu = section-image Ο i b u cv = section-image Ο i b v coordinates = pair-cong cu cv changed = pair-cong (Ξ± β· i) (Ξ² β· i) abstract restricted : (out β· i) =β ((before β· i) β»ΒΉ β image) restricted = isoComp-cong (pre-inverse before i) (idIso image) β preWhisker-isoComp-at (before β»ΒΉ) input i cancel-comparison : ((coordinates β (after β (before β· i))) β ((before β· i) β»ΒΉ β image)) =β (coordinates β (after β image)) cancel-comparison = isoComp-cong (idIso coordinates) (isoComp-cong (idIso after) (cancel-inverse (before β· i) image) β isoComp-assoc-at after (before β· i) ((before β· i) β»ΒΉ β image)) β isoComp-assoc-at coordinates (after β (before β· i)) ((before β· i) β»ΒΉ β image) comparison : (section-image Ο i b (pair u v) β (out β· i)) =β (pair-cong (cu β (Ξ± β· i)) (cv β (Ξ² β· i)) β pair-pre f g i) comparison = isoComp-cong ((pair-cong-comp cu (Ξ± β· i) cv (Ξ² β· i)) β»ΒΉ) (idIso step) β ((isoComp-assoc-at coordinates changed step) β»ΒΉ β (isoComp-cong (idIso coordinates) ((pair-pre-natural-inputs Ξ± Ξ² i) β»ΒΉ) β (cancel-comparison β isoComp-cong Base.comparison restricted))) ```