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.PointRestrictionSquare
- Currying.ProjectedRelativeEvaluation
- Currying.PullbackTargetFamilies
- Currying.RelativeCurrying
- 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.
# Evaluating arbitrary relative families A projection and an evaluation map already determine uncurrying on relative functor categories. No universal property is needed for this construction or its computation on parameterized families. This lets us verify proposed dependent products without assuming their universality. ```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.RelativeEvaluationFamilies {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.Section06.Cones 𝒯 open import SCT.VolumeI.Chapter01.Section06.PullbackSquares 𝒯 P using (IsPullback; pullbackCone-isPullback) 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.Section05.DependentProducts 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.Identifications 𝒯 M ℱ P using () renaming (module Change to NativeChange) open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.BaseChange 𝒯 M ℱ P using (module BaseChange) open import SCT.VolumeI.Chapter03.RelativeCategories.Composition.Postcomposition 𝒯 M ℱ P using (module Postcompose) open import SCT.VolumeI.Chapter03.Section05.BaseChange.BaseChangeSubstitution 𝒯 M ℱ P using (module Substitution) open import SCT.VolumeI.Chapter03.Section05.BaseChange.BaseChangeFamilyProjection 𝒯 M ℱ P using (module Change) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ParameterizedCones 𝒯 using (module Parameter) open import SCT.VolumeI.Chapter01.Section06.ConeCalculus.ParameterizedPullbacks 𝒯 P using (module Parameters) open import SCT.VolumeI.Chapter03.RelativeCategories.ConeCalculus.PullbackTriangles 𝒯 M ℱ P using (lift-triangle) open import SCT.VolumeI.Chapter03.Section05.Currying.ActedConeRestriction 𝒯 M ℱ P using (module Restrict) module Evaluation {S T C D K : CAT} (p : MAP S T) (f : MAP C S) (g : MAP D T) (ε : FunctorOver (pullback₂ {f = g} {p}) f) (k : MAP K T) where module BC = BaseChange p k g using (f′; functor; maps; maps-as-core) module Post = Postcompose BC.f′ ε using (functor; maps; maps-as-core) evaluate : {A : CAT} {t : MAP A T} → FunctorOver t g → FunctorOver (pullback₂ {f = t} {p}) f evaluate u = compose-over ε (NativeChange.functor p u) functor : MAP (FunOver k g) (FunOver BC.f′ f) functor = Post.functor ∘ BC.functor abstract mapping-comparison : EvaluationAlong.uncurrying p f g ε k =₁ mapPost functor mapping-comparison = mapPost-comp BC.functor Post.functor ∙ ((mapPost Post.functor ◁ BC.maps-as-core) ∙ (Post.maps-as-core ▷ BC.maps)) mapping-isEquiv : IsEquiv functor → IsEquiv (EvaluationAlong.uncurrying p f g ε k) mapping-isEquiv e = equiv-transport (mapping-comparison ⁻¹) (mapPost-isEquiv functor e) module At (X : CAT) where module Param = Parameter X (pullbackCone k p) using (cone) inclusion : FunctorOver (BC.f′ ∘ pr₂ {C = X}) (pullback₂ {f = k ∘ pr₂ {C = X}} {p}) inclusion = lift-triangle Param.cone abstract inclusion-isEquiv : IsEquiv (FunctorLift.lift inclusion) inclusion-isEquiv = Parameters.isPullback X (pullbackCone k p) (pullbackCone-isPullback k p) module On (u : FunctorOver (k ∘ pr₂ {C = X}) g) where module Pulled = Change.At p k g u using (pulled; action-comparison) module Restricted = Restrict u (pullbackCone (k ∘ pr₂ {C = X}) p) Param.cone inclusion (pullbackLift-β Param.cone) (idIso (pullbackLift-β₂ Param.cone)) using (comparison) abstract comparison : FunctorOverIso (compose-over ε Pulled.pulled) (compose-over (evaluate u) inclusion) comparison = compose-iso-over (inverse-iso-over (associator-over inclusion _ ε)) (postwhisker-over ε (compose-iso-over (inverse-iso-over Restricted.comparison) Pulled.action-comparison)) abstract family-comparison : (F : MAP X (FunOver k g)) → FunctorOverIso (family BC.f′ f (functor ∘ F)) (compose-over (evaluate (family k g F)) inclusion) family-comparison F = compose-iso-over (On.comparison (family k g F)) (compose-iso-over (postwhisker-over ε (Substitution.family-comparison p k g F)) (compose-iso-over (postcompose-family BC.f′ ε (BC.functor ∘ F)) (family-identification BC.f′ f (comp-assoc F BC.functor Post.functor)))) ```