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.EvaluatedRelativeExponentialLaw
- Currying.FamilyProjection
- Currying.ParameterizedConeComparison
- Currying.ParameterizedPullbackPasting
- Currying.PointParameterProjection
- Currying.PointPullbackCone
- Currying.PointRestrictionOverBase
- Currying.PointRestrictionSquare
- 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.
# The pullback-target comparison with its evaluation rule Curry projection of the universal native family to obtain the comparison of relative functor categories. Curry pullback lifting to obtain its inverse. The native inverse comparisons and substitution law identify the two composite families with the identity families, so reflection proves the equivalence of the actual functors. Unlike the separate pullback-pasting proof in `RelativePullbackTargets`, this presentation directly exports the computation on arbitrary families. It is used to identify the relative internal functor category's literal evaluation map. ```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 module SCT.VolumeI.Chapter03.Section05.Currying.EvaluatedPullbackTargets {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 Pullbacks.PullbackStructure P open import SCT.VolumeI.Chapter01.Section07.AbsoluteObjects π― M β± using (nameFun) open import SCT.VolumeI.Chapter01.Section07.Functoriality π― M β± using (funPost) open import SCT.VolumeI.Chapter01.Section06.Cones π― open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ConeAction π― using (cone-action) open import SCT.VolumeI.Chapter03.RelativeCategories.Functors π― M β± P open import SCT.VolumeI.Chapter03.RelativeCategories.Identifications π― M β± P open import SCT.VolumeI.Chapter03.RelativeCategories.Families.Families π― M β± P open import SCT.VolumeI.Chapter03.RelativeCategories.Families.FamilyReflection π― M β± P using (reflect-family) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.EvaluatedRelativeCones π― M β± P open import SCT.VolumeI.Chapter03.RelativeCategories.Evaluation.Evaluation π― M β± P using (module Curry) open import SCT.VolumeI.Chapter03.Section05.Currying.PullbackTargetFamilies π― M β± P using (module Families) module PullbackTarget {A C D S : CAT} (f : MAP C S) (g : MAP D S) (r : MAP A C) where module Native = Families f g r Ο = Native.projection Source = FunOver r Ο Target = FunOver (f β r) g source-family = universal r Ο target-family = universal (f β r) g to-family = Native.forward source-family from-family = Native.backward target-family functor : MAP Source Target functor = Curry.functor (f β r) g (FunctorLift.lift to-family) (FunctorLift.comparison to-family) inverse : MAP Target Source inverse = Curry.functor r Ο (FunctorLift.lift from-family) (FunctorLift.comparison from-family) abstract evaluation-comparison : FunctorOverIso (family (f β r) g functor) to-family evaluation-comparison = curried-beta (f β r) g to-family inverse-evaluation : FunctorOverIso (family r Ο inverse) from-family inverse-evaluation = curried-beta r Ο from-family family-comparison : {X : CAT} (F : MAP X Source) β FunctorOverIso (family (f β r) g (functor β F)) (Native.forward (family r Ο F)) family-comparison F = compose-iso-over (Native.forward-identification (inverse-iso-over (evaluated-restriction F (pullbackCone (funPost Ο) (nameFun r))))) (compose-iso-over (inverse-iso-over (Native.Substitution.comparison F source-family)) (compose-iso-over (prewhisker-over (parameter-over-functor (f β r) F) evaluation-comparison) (family-composite (f β r) g F functor))) right-inverse : (functor β inverse) =β id Target right-inverse = reflect-family (f β r) g _ _ (compose-iso-over (inverse-iso-over (family-identity (f β r) g)) (compose-iso-over (Native.forward-backward target-family) (compose-iso-over (Native.forward-identification inverse-evaluation) (family-comparison inverse)))) left-inverse : (inverse β functor) =β id Source left-inverse = reflect-family r Ο _ _ (Native.reflect (family r Ο (inverse β functor)) (family r Ο (id Source)) (compose-iso-over (Native.forward-identification (inverse-iso-over (family-identity r Ο))) (compose-iso-over evaluation-comparison (compose-iso-over (evaluated-comparison (cone-action (pullbackCone (funPost g) (nameFun (f β r))) (comp-unitΛ‘ functor β ((right-inverse β· functor) β (comp-assoc functor inverse functor) β»ΒΉ)))) (inverse-iso-over (family-comparison (inverse β functor))))))) functor-isEquiv : IsEquiv functor functor-isEquiv = record { inverse = inverse ; sectionIso = left-inverse β»ΒΉ ; retractionIso = right-inverse β»ΒΉ } maps : MAP (MapOver r Ο) (MapOver (f β r) g) maps = mapPost functor maps-isEquiv : IsEquiv maps maps-isEquiv = mapPost-isEquiv functor functor-isEquiv ```