Other Agda modules in this section (24)
- ClosureCalculus.CompositionClosure
- ClosureCalculus.EmbeddingImageClosure
- ClosureCalculus.IsomorphismClosure
- GeneratedMorphisms
- Lifting.CoconeLifting
- Lifting.CoproductLifting
- Lifting.EmbeddingLifting
- Lifting.EmbeddingRecognition
- Lifting.EndpointPullbacks
- Lifting.PresentationConsequences
- Lifting.TriangleLifting
- MappingCalculus.FiniteMappingLifts
- MappingCalculus.MappingAction
- MappingCalculus.MappingCommutation
- MappingCalculus.MappingPrecomposition
- MappingCalculus.MappingRestriction
- MappingCalculus.MappingSegal
- MorphismCollections
- RecoveringSubcategories
- Subcategories
- SubcategoryAxiom
- SubcategoryClosure
- SubcategoryEquivalences
- SubcategoryFunctoriality
Complete compiler-highlighted source. Follow a symbol to its declaration.
Corresponding book passages
# The collection of isomorphisms The collection in `lem:Collection_of_Isomorphisms` is the core of `Iso C`, with its canonical map to the mapping anima of arrows. The core of the functor category supplies the comparison with `Map [1] C`. Rezk identifies this collection with the core of `C`, compatibly with constant arrows. ```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 Laws import SCT.VolumeI.Chapter02.Section01.WalkingMorphism as Walking import SCT.VolumeI.Chapter02.Section01.IntervalEndpoints as Endpoints import SCT.VolumeI.Chapter02.Section02.SegalAxiom as Segal import SCT.VolumeI.Chapter02.Section01.CommutativeSquareAxiom as Squares import SCT.VolumeI.Chapter02.Section03.RezkAxiom as Rezk module SCT.VolumeI.Chapter03.Section01.IsomorphismCollections {c m a : Level} (π― : Theory c m a) (M : Mapping.MappingAnimae π―) (β± : Categories.FunctorCategories π― M) (P : Laws.PullbackStructure π―) (I : Walking.WalkingMorphism π―) (E : Endpoints.IntervalEndpoints π― M β± P I) (S : Segal.SegalAxiom π― M β± P I E) (Q : Squares.CommutativeSquareAxiom π― M β± P I E) where open import SCT.VolumeI.Chapter01.Section05.Setup π― M open Walking.WalkingMorphism I open import SCT.VolumeI.Chapter01.Section07.Currying π― M β± open import SCT.VolumeI.Chapter01.Section07.CoreOfFun π― M β± using (module CoreOfFun) open import SCT.VolumeI.Chapter02.Section01.EvaluationCalculus.CoreInclusions π― M open import SCT.VolumeI.Chapter02.Section03.Isomorphisms π― M β± P I E using (Iso; isoArrow) open import SCT.VolumeI.Chapter02.Section01.Morphisms π― M β± I using (identityArrow) open import SCT.VolumeI.Chapter02.Section03.IsomorphismEmbedding π― M β± P I E S Q using (isoArrow-isEmbedding) open import SCT.VolumeI.Chapter01.Section06.EmbeddingCalculus.EmbeddingCalculus π― P using (IsEmbedding; equivalence-isEmbedding; module LeftCancellation) open import SCT.VolumeI.Chapter01.Section06.EmbeddingCharacterizations π― M P using (map-preserves-embedding) open import SCT.VolumeI.Chapter03.Section01.MorphismCollections π― M P I using (MorphismCollection) isomorphismInclusion : (C : CAT) β MAP (Core (Iso C)) (Map [1] C) isomorphismInclusion C = CoreOfFun.uncurrying [1] C β mapPost isoArrow abstract isomorphismInclusion-isEmbedding : (C : CAT) β IsEmbedding (isomorphismInclusion C) isomorphismInclusion-isEmbedding C = LeftCancellation.compose (mapPost isoArrow) (CoreOfFun.uncurrying [1] C) (equivalence-isEmbedding _ (CoreOfFun.uncurrying-isEquiv [1] C)) (map-preserves-embedding One isoArrow (isoArrow-isEmbedding C)) isomorphisms : (C : CAT) β MorphismCollection C isomorphisms C = record { collection = Core (Iso C) ; collection-isAn = core-isAn (Iso C) ; inclusion = isomorphismInclusion C ; inclusion-isEmbedding = isomorphismInclusion-isEmbedding C } constantMap : (C : CAT) β MAP (Core C) (Map [1] C) constantMap C = mapPre (terminate [1]) constantMap-evaluation : (C : CAT) β mapUncurry (constantMap C) =β (coreInclusion C β prβ) constantMap-evaluation C = (comp-assoc prβ (product-unitΚ³-inverse (Core C)) mapEval) β»ΒΉ β ((mapEval β (pair-pre (id (Core C)) (terminate (Core C)) prβ) β»ΒΉ) β ((mapEval β pair-cong (idIso (id (Core C) β prβ)) (terminal-iso (terminate [1] β prβ) (terminate (Core C) β prβ))) β mapPre-Ξ² (terminate [1]))) core-constant : (C : CAT) β (CoreOfFun.uncurrying [1] C β mapPost {C = One} (identityArrow {C})) =β constantMap C core-constant C = mapReflect (core-isAn C) _ _ ((constantMap-evaluation C) β»ΒΉ β (pair-Ξ²β (coreInclusion C β prβ) (id [1] β prβ) β ((funCurry-Ξ² prβ β· productMap (coreInclusion C) (id [1])) β (funUncurry-restrict identityArrow (coreInclusion C) β (funUncurry-cong (coreInclusion-natural identityArrow) β ((funUncurry-restrict (coreInclusion (Fun [1] C)) (mapPost identityArrow)) β»ΒΉ β ((CoreOfFun.uncurrying-evaluation [1] C β· productMap (mapPost identityArrow) (id [1])) β mapUncurry-restrict (CoreOfFun.uncurrying [1] C) (mapPost identityArrow)))))))) module WithRezk (R : Rezk.RezkAxiom π― M β± P I E) where open Rezk π― M β± P I E using (identityIso; identityIso-arrow) open Rezk.RezkAxiom R identityComparison : (C : CAT) β MAP (Core C) (Core (Iso C)) identityComparison C = mapPost identityIso identityComparison-isEquiv : (C : CAT) β IsEquiv (identityComparison C) identityComparison-isEquiv C = mapPost-isEquiv identityIso (rezk-isEquiv C) identityComparison-over-morphisms : (C : CAT) β (isomorphismInclusion C β identityComparison C) =β constantMap C identityComparison-over-morphisms C = core-constant C β ((CoreOfFun.uncurrying [1] C β mapPost-cong identityIso-arrow) β ((CoreOfFun.uncurrying [1] C β mapPost-comp identityIso isoArrow) β comp-assoc (mapPost identityIso) (mapPost isoArrow) (CoreOfFun.uncurrying [1] C))) ```