Other Agda modules in this section (72)
- BaseChange.BaseChangeFamilyProjection
- BaseChange.BaseChangeNativePoints
- BaseChange.BaseChangeSubstitution
- BaseChange.BeckChevalley
- BaseChange.BeckChevalleyCones
- BaseChange.BeckChevalleyDomain
- BaseChange.BeckChevalleyEvaluation
- BaseChange.BeckChevalleyFamilies
- BaseChange.BeckChevalleyMapping
- BaseChange.BeckChevalleyUncurrying
- BaseChange.DependentProductSourceTransport
- BaseChange.DependentProductTargetTransport
- BaseChange.EvaluatedBaseChange
- BaseChange.ProductBaseChangeFamilies
- BaseChange.PullbackTargetsBaseChange
- ConstantFamilyEvaluation
- ConstantFamilyUniversalProperty
- Currying.ActedConeRestriction
- Currying.ChangedConeAction
- Currying.ConeRestrictionTriangles
- Currying.ConstantBaseFunctoriality
- Currying.CurryingPostcomposition
- Currying.DependentUncurryingFamilies
- Currying.EvaluatedPullbackTargets
- Currying.EvaluatedRelativeExponentialLaw
- Currying.FamilyProjection
- Currying.ParameterizedConeComparison
- Currying.ParameterizedPullbackPasting
- Currying.PointParameterProjection
- Currying.PointPullbackCone
- Currying.PointRestrictionOverBase
- Currying.ProjectedRelativeEvaluation
- Currying.PullbackTargetFamilies
- Currying.RelativeCurrying
- Currying.RelativeEvaluationFamilies
- Currying.RelativeTransposition
- Currying.SourceChangeFamilies
- Currying.TargetChangeIdentifications
- Currying.UncurriedFamilyProjection
- Currying.UncurriedFamilySubstitution
- Currying.UncurriedParameterComparison
- Currying.UncurriedTriangleComposition
- DependentProductAction
- DependentProductActionLaws
- DependentProductEmbeddings
- DependentProductUniqueness
- DependentProducts
- DependentProductsBaseChange
- ExponentiabilityCriterion
- ExponentiableFunctors
- InternalFunctorCalculus.ConstantFamilyInternalFunctors
- InternalFunctorCalculus.ConstantFamilyNativeEvaluation
- InternalFunctorCalculus.ConstantFamilyReassociation
- InternalFunctorCalculus.InternalEvaluation
- InternalFunctorCalculus.InternalProductFamily
- InternalFunctorCalculus.RelativeInternalFunctors
- InternalFunctorFibers
- InternalFunctorSections
- InternalFunctors
- InternalFunctorsBaseChange
- ProductCalculus.DependentProductActionIdentifications
- ProductCalculus.FunctorCategoryUncurrying
- ProductCalculus.ProductDependentProducts
- ProductCalculus.ProductDependentUncurrying
- ProductCalculus.ProductEvaluationComposition
- ProductCalculus.ProductEvaluationFamilies
- ProductCalculus.ProductFamilyProjection
- ProductCalculus.ProductFamilyReassociation
- ProductCalculus.ProductParameterCones
- ProductCalculus.ReassociatedProductLifting
- SectionsOfDependentProducts
- TerminalExponentiability
Complete compiler-highlighted source. Follow a symbol to its declaration.
# Restriction commutes with inserting a point Insert the point in the first coordinate and restrict the second coordinate. Product separation and the terminal-product comparison identify the two orders. The second-projection calculation is retained so the comparison can be used in triangles over a base. ```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 import SCT.VolumeI.Chapter01.Section06.PullbackLaws as Pullbacks import SCT.VolumeI.Chapter01.Section04.SquareCalculus.ProjectionSquares as Projections import SCT.VolumeI.Chapter01.Section08.MappingCalculus.Decoding.UnitRestrictionData as Unit import SCT.VolumeI.Chapter03.Section05.Currying.PointParameterProjection as Points module SCT.VolumeI.Chapter03.Section05.Currying.PointRestrictionSquare {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) (P : Pullbacks.PullbackStructure π―) where open import SCT.VolumeI.Chapter01.Section05.Setup π― M open import SCT.VolumeI.Chapter01.Section08.ProductSquares π― open import SCT.VolumeI.Chapter01.Section08.ProductCalculus.ProductSecondCoordinate π― M using (parameter-base; restriction-base; separation) open import SCT.VolumeI.Chapter01.Section04.Substitution.DecodingNaturality π― M using (oneProduct-natural) module PS = Projections π― module Square {X A B : CAT} (z : Obj-abs X) (r : MAP A B) where module Source = Points.Point π― M β± P {A = A} z module Target = Points.Point π― M β± P {A = B} z module Terminal = Unit.Coordinates π― M r R : MAP (X Γ A) (X Γ B) R = productRestriction X r Rβ : MAP (One Γ A) (One Γ B) Rβ = productRestriction One r br : (prβ β R) =β (r β prβ) br = restriction-base X r brβ : (prβ β Rβ) =β (r β prβ) brβ = restriction-base One r bA : (prβ β Source.H) =β prβ bA = parameter-base z A bB : (prβ β Target.H) =β prβ bB = parameter-base z B bAr : ((r β prβ) β Source.H) =β (r β prβ) bAr = PS.lift-base r prβ Source.H bA eβ : ((r β prβ) β Source.i) =β r eβ = Terminal.endpoint wβ : (prβ β (R β Source.K)) =β r wβ = PS.compose-base prβ R br Source.K (Source.triangle r) bβ : (prβ β (R β Source.H)) =β (r β prβ) bβ = PS.compose-base prβ R br Source.H bAr wβ : (prβ β ((R β Source.H) β Source.i)) =β r wβ = PS.compose-base prβ (R β Source.H) bβ Source.i eβ bβ : (prβ β (Target.H β Rβ)) =β (r β prβ) bβ = PS.compose-base prβ Target.H bB Rβ brβ wβ : (prβ β ((Target.H β Rβ) β Source.i)) =β r wβ = PS.compose-base prβ (Target.H β Rβ) bβ Source.i eβ wβ : (prβ β (Target.H β (Rβ β Source.i))) =β r wβ = PS.compose-base prβ Target.H bB (Rβ β Source.i) Terminal.source wβ : (prβ β (Target.H β (Target.i β r))) =β r wβ = PS.compose-base prβ Target.H bB (Target.i β r) Terminal.target wβ : (prβ β (Target.K β r)) =β r wβ = PS.compose-base prβ Target.K Target.projection r (comp-unitΛ‘ r) Ξ·β : (R β Source.K) =β ((R β Source.H) β Source.i) Ξ·β = (comp-assoc Source.i Source.H R) β»ΒΉ Ξ·β : ((R β Source.H) β Source.i) =β ((Target.H β Rβ) β Source.i) Ξ·β = productMap-separate z r β· Source.i Ξ·β : ((Target.H β Rβ) β Source.i) =β (Target.H β (Rβ β Source.i)) Ξ·β = comp-assoc Source.i Rβ Target.H Ξ·β : (Target.H β (Rβ β Source.i)) =β (Target.H β (Target.i β r)) Ξ·β = Target.H β oneProduct-natural r Ξ·β : (Target.H β (Target.i β r)) =β (Target.K β r) Ξ·β = (comp-assoc r Target.i Target.H) β»ΒΉ comparison : (R β Source.K) =β (Target.K β r) comparison = Ξ·β β (Ξ·β β (Ξ·β β (Ξ·β β Ξ·β))) abstract first : PS.Square prβ wβ wβ Ξ·β first = PS.inverse-square prβ wβ wβ (comp-assoc Source.i Source.H R) (PS.associator-square prβ R Source.H Source.i br bAr eβ) second : PS.Square prβ wβ wβ Ξ·β second = PS.pre-square prβ Source.i bβ bβ eβ (productMap-separate z r) (separation z r) third : PS.Square prβ wβ wβ Ξ·β third = PS.associator-square prβ Target.H Rβ Source.i bB brβ eβ fourth : PS.Square prβ wβ wβ Ξ·β fourth = PS.post-square prβ Target.H bB Terminal.source Terminal.target (oneProduct-natural r) Terminal.projectionβ fifth : PS.Square prβ wβ wβ Ξ·β fifth = PS.inverse-square prβ wβ wβ (comp-assoc r Target.i Target.H) (PS.associator-square prβ Target.H Target.i r bB (oneProduct-retraction B) (comp-unitΛ‘ r)) projection : PS.Square prβ wβ wβ comparison projection = PS.compose-square prβ wβ wβ wβ Ξ·β (Ξ·β β (Ξ·β β (Ξ·β β Ξ·β))) fifth (PS.compose-square prβ wβ wβ wβ Ξ·β (Ξ·β β (Ξ·β β Ξ·β)) fourth (PS.compose-square prβ wβ wβ wβ Ξ·β (Ξ·β β Ξ·β) third (PS.compose-square prβ wβ wβ wβ Ξ·β Ξ·β second first))) ```