Other Agda modules in this section (24)
- Coherence
- Composition
- CompositionCoherence
- CompositionEvaluation
- CompositionEvaluationFamily
- CompositionLawRestriction
- CompositionLaws
- CompositionNaturality
- CompositionRestriction
- Core
- Currying
- CurryingRestriction
- EquivalenceDetection
- EvaluationCoherence
- EvaluationOverBase
- EvaluationRestriction
- Functoriality
- IdentityRestriction
- MappingProducts
- MappingSpecialization
- Points
- Precomposition
- Uncurrying
- UncurryingRestriction
Chapter 1, rebuild2, checked 14 October 2026 · source revision b982f5a.
Corresponding book passages
# Evaluation and currying for mapping animae `Map C D` is the internal mapping anima. Uncurrying has an arbitrary source `A`; currying and the equivalence of its specified action require `isAn A`. These are the six existing mapping-anima assumptions. ```agda {-# OPTIONS --without-K #-} module SCT.VolumeI.Chapter01.Section04.MappingAnimae where open import SCT.VolumeI.Chapter01.Section01.Vocabulary hiding (_=_) import SCT.VolumeI.Chapter01.Section01.Terms as Terms open Terms using (Equal) open Operations open import SCT.VolumeI.Chapter01.Section01.Terminal open Constructions open import SCT.VolumeI.Chapter01.Section02.Coherence using (id₌) open import SCT.VolumeI.Chapter01.Section03.ProductConstructions open import SCT.VolumeI.Chapter01.Section03.Products.ProductFunctor using (productMap-cong) module _ {Γ : Context} where postulate Map : CAT Γ → CAT Γ → CAT Γ map-isAn : (C D : CAT Γ) → isAn (Map C D) mapEval : {C D : CAT Γ} → MAP (Map C D × C) D module _ {A : CAT Γ} where open Terms.InContext A using (Term) uncurry : {C D : CAT Γ} → Term (Map C D) → MAP (A × C) D uncurry {C = C} f = mapEval ∘ productMap f (id C) postulate mapCurry : {C D : CAT Γ} → isAn A → MAP (A × C) D → Term (Map C D) mapCurry-β : {C D : CAT Γ} (aAn : isAn A) (h : MAP (A × C) D) → uncurry (mapCurry aAn h) =₁ h uncurry⁼-functor : {C D : CAT Γ} (f g : Term (Map C D)) → MAP (Equal f g) (Equal (uncurry f) (uncurry g)) uncurry⁼-functor {C = C} f g = postWhisker mapEval ∘ productMap-cong (id (Equal f g)) (const (id₌ (id C))) postulate uncurry⁼-isEquiv : {C D : CAT Γ} (aAn : isAn A) (f g : Term (Map C D)) → IsEquiv (uncurry⁼-functor f g) ``` `productMap-cong` is the former `productFamily`: both use the same chosen inverse of product coordinates on the same transported projections. The equivalence axiom therefore concerns the original specified action. No strict beta equation or change-of-ambient-context law is added.