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.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
- 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.
Corresponding book passages
# Global sections of an internal functor category For `prop:map_to_the_point_is exponentiable`, apply the section comparison first to the terminal dependent product and then to the dependent product defining the internal functor category. The pullback-target comparison identifies the remaining sections with functors over the original base. The canonical equivalence in the manuscript is the inverse of evaluation. Taking cores proves `cor:map_to_the_point_is exponentiable`. Over the terminal base, the same construction identifies the internal functor category with the ordinary functor category. This supplies the terminal-base case needed for the fiber statement. ```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.InternalFunctorSections {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 Categories.FunctorCategories ℱ using (Fun) open import SCT.VolumeI.Chapter01.Section04.Core 𝒯 M using (Core) open import SCT.VolumeI.Chapter03.RelativeCategories.Functors 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.Section05.ExponentiableFunctors 𝒯 M ℱ P using (IsExponentiable) open import SCT.VolumeI.Chapter03.Section05.DependentProducts 𝒯 M ℱ P open import SCT.VolumeI.Chapter03.Section05.InternalFunctors 𝒯 M ℱ P using (module FunctorCategory) open import SCT.VolumeI.Chapter03.Section05.SectionsOfDependentProducts 𝒯 M ℱ P using (module Sections; module OverTerminal; module Global) open import SCT.VolumeI.Chapter03.Section05.Currying.EvaluatedPullbackTargets 𝒯 M ℱ P using (module PullbackTarget) open import SCT.VolumeI.Chapter03.RelativeCategories.BaseChange.SourceChange 𝒯 M ℱ P using (module Change) open import SCT.VolumeI.Chapter03.RelativeCategories.TerminalBase 𝒯 M ℱ P using (module OverOne) open import SCT.VolumeI.Chapter03.Section05.TerminalExponentiability 𝒯 M ℱ P using (module Terminal) module InternalSections {C D S : CAT} (p : MAP C S) (q : MAP D S) (ep : IsExponentiable p) where module Internal = FunctorCategory p q ep module Product = Sections p (pullback₂ {f = q} {p}) Internal.product module Target = PullbackTarget p q (id C) module Unit = Change (comp-unitʳ p) q functor : MAP (FunOver (id S) Internal.projection) (FunOver p q) functor = Unit.functor ∘ (Target.functor ∘ Product.functor) abstract functor-isEquiv : IsEquiv functor functor-isEquiv = equiv-compose (Target.functor ∘ Product.functor) Unit.functor (equiv-compose Product.functor Target.functor Product.functor-isEquiv Target.functor-isEquiv) Unit.functor-isEquiv module GlobalSections {C D S : CAT} (p : MAP C S) (q : MAP D S) (ep : IsExponentiable p) where module Internal = FunctorCategory p q ep product = Terminal.dependent-product S Internal.projection category = DependentProduct.category product module First = Global Internal.projection product module Second = InternalSections p q ep evaluation : MAP category (FunOver p q) evaluation = Second.functor ∘ First.functor abstract evaluation-isEquiv : IsEquiv evaluation evaluation-isEquiv = equiv-compose First.functor Second.functor First.functor-isEquiv Second.functor-isEquiv comparison : MAP (FunOver p q) category comparison = IsEquiv.inverse evaluation-isEquiv abstract comparison-isEquiv : IsEquiv comparison comparison-isEquiv = equiv-inverse evaluation-isEquiv maps : MAP (MapOver p q) (Core category) maps = mapPost comparison abstract maps-isEquiv : IsEquiv maps maps-isEquiv = mapPost-isEquiv comparison comparison-isEquiv module TerminalBase {C D : CAT} (p : MAP C One) (q : MAP D One) (ep : IsExponentiable p) where module Internal = FunctorCategory p q ep module First = OverTerminal Internal.projection module Second = InternalSections p q ep functor : MAP Internal.category (Fun C D) functor = Over.forget p q ∘ (Second.functor ∘ IsEquiv.inverse First.functor-isEquiv) abstract functor-isEquiv : IsEquiv functor functor-isEquiv = equiv-compose (Second.functor ∘ IsEquiv.inverse First.functor-isEquiv) (Over.forget p q) (equiv-compose (IsEquiv.inverse First.functor-isEquiv) Second.functor (equiv-inverse First.functor-isEquiv) Second.functor-isEquiv) (OverOne.forget-isEquiv p q) ```