From 402f1734934642517635aea923983ec38af812c5 Mon Sep 17 00:00:00 2001 From: felixwellen Date: Fri, 17 Nov 2023 18:49:39 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20agda/cub?= =?UTF-8?q?ical@e9b8b40fec2011ac9e74c479aaf886b370548550=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cubical.Algebra.AbGroup.Base.html | 8 +- Cubical.Algebra.AbGroup.TensorProduct.html | 14 +- Cubical.Algebra.Algebra.Base.html | 2 +- Cubical.Algebra.Algebra.Properties.html | 6 +- Cubical.Algebra.Algebra.Subalgebra.html | 2 +- ...al.Algebra.CommAlgebra.FPAlgebra.Base.html | 6 +- ...ommAlgebra.FreeCommAlgebra.Properties.html | 6 +- ...Algebra.CommAlgebra.Instances.Initial.html | 4 +- ...al.Algebra.CommAlgebra.Instances.Unit.html | 4 +- Cubical.Algebra.CommAlgebra.Localisation.html | 6 +- ...gebra.CommAlgebra.LocalisationAlgebra.html | 4 +- Cubical.Algebra.CommAlgebra.Properties.html | 8 +- ...l.Algebra.CommAlgebra.QuotientAlgebra.html | 8 +- ...lgebra.CommAlgebra.UnivariatePolyList.html | 4 +- Cubical.Algebra.CommMonoid.Properties.html | 8 +- Cubical.Algebra.CommRing.Base.html | 4 +- Cubical.Algebra.CommRing.FiberedProduct.html | 2 +- Cubical.Algebra.CommRing.Ideal.Base.html | 2 +- ...al.Algebra.CommRing.Localisation.Base.html | 16 +- ...mmRing.Localisation.InvertingElements.html | 20 +- ...l.Algebra.CommRing.Localisation.Limit.html | 34 +- ....CommRing.Localisation.PullbackSquare.html | 2 +- ...mmRing.Localisation.UniversalProperty.html | 8 +- Cubical.Algebra.CommRing.Properties.html | 4 +- ...gebra.CommSemiring.Instances.UpperNat.html | 4 +- ...bra.DirectSum.DirectSumFun.Properties.html | 8 +- ...ectSum.DirectSumHIT.UniversalProperty.html | 4 +- ...l.Algebra.DirectSum.Equiv-DSHIT-DSFun.html | 8 +- Cubical.Algebra.DistLattice.Basis.html | 8 +- Cubical.Algebra.GradedRing.DirectSumFun.html | 4 +- ...a.GradedRing.Instances.CohomologyRing.html | 6 +- ...radedRing.Instances.CohomologyRingFun.html | 6 +- ...radedRing.Instances.TrivialGradedRing.html | 16 +- ...p.Abelianization.AbelianizationAsCoeq.html | 8 +- ...gebra.Group.Abelianization.Properties.html | 4 +- Cubical.Algebra.Group.GroupPath.html | 6 +- Cubical.Algebra.Group.Instances.IntMod.html | 20 +- ...cal.Algebra.Group.IsomorphismTheorems.html | 6 +- Cubical.Algebra.Group.MorphismProperties.html | 6 +- Cubical.Algebra.Group.QuotientGroup.html | 2 +- Cubical.Algebra.Group.ZAction.html | 28 +- Cubical.Algebra.Lattice.Properties.html | 2 +- ...al.Algebra.Matrix.CommRingCoefficient.html | 2 +- Cubical.Algebra.Monoid.Submonoid.html | 6 +- ...ebra.OrderedCommMonoid.PropCompletion.html | 4 +- ....Algebra.OrderedCommMonoid.Properties.html | 2 +- ...gebra.Polynomials.UnivariateList.Base.html | 2 +- ...Polynomials.UnivariateList.Properties.html | 2 +- Cubical.Algebra.Ring.Base.html | 2 +- Cubical.Algebra.Ring.DirectProd.html | 2 +- Cubical.Algebra.Ring.Properties.html | 2 +- Cubical.Algebra.Ring.Quotient.html | 4 +- ...Algebra.ZariskiLattice.StructureSheaf.html | 66 +- ...ZariskiLattice.StructureSheafPullback.html | 38 +- ...ebra.ZariskiLattice.UniversalProperty.html | 2 +- Cubical.Categories.Adjoint.html | 602 +++++++++++------- Cubical.Categories.Category.Base.html | 37 +- Cubical.Categories.Category.Properties.html | 24 + ...l.Categories.Constructions.BinProduct.html | 58 +- ...cal.Categories.Constructions.Elements.html | 60 +- ...tegories.Constructions.EssentialImage.html | 28 +- ...ries.Constructions.Free.Category.Base.html | 50 +- ...Categories.Constructions.Free.Functor.html | 178 +++--- ...egories.Constructions.FullSubcategory.html | 58 +- Cubical.Categories.Constructions.Lift.html | 20 +- Cubical.Categories.Constructions.Power.html | 4 +- Cubical.Categories.Constructions.Product.html | 24 +- ...cal.Categories.Constructions.Quotient.html | 12 +- ...gories.Constructions.Slice.Properties.html | 22 +- ...al.Categories.Constructions.SubObject.html | 6 +- ...Categories.Constructions.TwistedArrow.html | 10 +- Cubical.Categories.Displayed.Adjoint.html | 14 +- Cubical.Categories.Displayed.Cartesian.html | 32 +- Cubical.Categories.Displayed.Functor.html | 48 +- ...tegories.Displayed.Instances.Codomain.html | 12 +- ...ories.Displayed.NaturalTransformation.html | 4 +- Cubical.Categories.Displayed.Properties.html | 28 +- Cubical.Categories.DistLatticeSheaf.Base.html | 280 ++++---- ...ries.DistLatticeSheaf.ComparisonLemma.html | 160 ++--- ...l.Categories.DistLatticeSheaf.Diagram.html | 90 +-- ...Categories.DistLatticeSheaf.Extension.html | 406 ++++++------ ...gories.Equivalence.AdjointEquivalence.html | 94 +-- Cubical.Categories.Equivalence.Base.html | 14 +- ...cal.Categories.Equivalence.Properties.html | 76 +-- ...ategories.Equivalence.WeakEquivalence.html | 16 +- Cubical.Categories.Everything.html | 55 +- Cubical.Categories.Functor.Base.html | 319 +++++----- Cubical.Categories.Functor.Compose.html | 38 +- ...al.Categories.Functor.ComposeProperty.html | 190 +++--- Cubical.Categories.Functor.Properties.html | 160 ++--- Cubical.Categories.Functors.Constant.html | 12 +- Cubical.Categories.Functors.HomFunctor.html | 12 +- Cubical.Categories.Instances.Categories.html | 6 +- ...cal.Categories.Instances.CommAlgebras.html | 210 +++--- Cubical.Categories.Instances.CommRings.html | 68 +- Cubical.Categories.Instances.Discrete.html | 12 +- ...l.Categories.Instances.EilenbergMoore.html | 130 ++-- ....Categories.Instances.FunctorAlgebras.html | 64 +- ...al.Categories.Instances.Functors.Endo.html | 4 +- Cubical.Categories.Instances.Functors.html | 122 ++-- Cubical.Categories.Instances.Groups.html | 77 +++ Cubical.Categories.Instances.Sets.html | 38 +- Cubical.Categories.Instances.Terminal.html | 12 +- Cubical.Categories.Instances.ZFunctors.html | 220 +++---- Cubical.Categories.Isomorphism.html | 28 +- Cubical.Categories.Limits.Initial.html | 24 +- Cubical.Categories.Limits.Limits.html | 148 ++--- Cubical.Categories.Limits.Pullback.html | 42 +- Cubical.Categories.Limits.RightKan.html | 202 +++--- Cubical.Categories.Limits.Terminal.html | 12 +- Cubical.Categories.Monad.Base.html | 46 +- Cubical.Categories.Monoidal.Base.html | 22 +- ...cal.Categories.Monoidal.Strict.Monoid.html | 6 +- ...Categories.NaturalTransformation.Base.html | 136 ++-- ...ries.NaturalTransformation.Properties.html | 323 +++++----- Cubical.Categories.Presheaf.Base.html | 16 +- Cubical.Categories.Presheaf.KanExtension.html | 190 +++--- Cubical.Categories.Presheaf.Morphism.html | 26 +- ...ategories.Presheaf.NonPresheaf.Cofree.html | 24 +- ...ategories.Presheaf.NonPresheaf.Forget.html | 12 +- ....Categories.Presheaf.NonPresheaf.Free.html | 24 +- Cubical.Categories.Presheaf.Properties.html | 192 +++--- ...cal.Categories.Presheaf.Representable.html | 20 +- Cubical.Categories.Profunctor.Base.html | 66 +- Cubical.Categories.RezkCompletion.Base.html | 4 +- ...ategories.RezkCompletion.Construction.html | 2 +- ...gories.TypesOfCategories.TypeCategory.html | 60 +- Cubical.Categories.UnderlyingGraph.html | 16 +- Cubical.Categories.Yoneda.html | 130 ++-- Cubical.Codata.M.AsLimit.M.Base.html | 6 +- Cubical.Cohomology.Base.html | 2 +- ...gy.EilenbergMacLane.EilenbergSteenrod.html | 12 +- ...Cohomology.EilenbergMacLane.Groups.Sn.html | 2 +- ...cal.Cohomology.EilenbergMacLane.Gysin.html | 2 +- ...mology.EilenbergMacLane.RingStructure.html | 6 +- Cubical.Data.Cardinality.Properties.html | 36 +- Cubical.Data.Fin.Arithmetic.html | 8 +- Cubical.Data.Fin.Base.html | 4 +- Cubical.Data.Fin.LehmerCode.html | 12 +- Cubical.Data.Fin.Properties.html | 18 +- Cubical.Data.FinSet.Base.html | 6 +- Cubical.Data.FinSet.Binary.Large.html | 2 +- Cubical.Data.FinSet.Cardinality.html | 6 +- Cubical.Data.FinSet.Constructors.html | 6 +- Cubical.Data.FinSet.DecidablePredicate.html | 10 +- Cubical.Data.FinSet.FiniteChoice.html | 6 +- Cubical.Data.FinSet.Quotients.html | 2 +- Cubical.Data.FinType.FiniteStructure.html | 2 +- Cubical.Data.FinType.Sigma.html | 4 +- Cubical.Data.Int.Divisibility.html | 4 +- Cubical.Data.Int.Order.html | 2 +- Cubical.Data.Nat.Divisibility.html | 2 +- Cubical.Data.Nat.GCD.html | 2 +- Cubical.Data.Nat.Order.html | 4 +- Cubical.Data.Prod.Properties.html | 2 +- ...a.Rationals.MoreRationals.SigmaQ.Base.html | 4 +- ...onals.MoreRationals.SigmaQ.Properties.html | 6 +- Cubical.Data.Rationals.Order.html | 4 +- Cubical.Data.Sigma.Properties.html | 599 ++++++++--------- Cubical.Data.SumFin.Properties.html | 20 +- Cubical.Displayed.Base.html | 2 +- Cubical.Displayed.Prop.html | 4 +- Cubical.Displayed.Properties.html | 2 +- Cubical.Displayed.Sigma.html | 6 +- Cubical.Experiments.EscardoSIP.html | 6 +- Cubical.Experiments.Poset.html | 12 +- ...periments.ZCohomologyOld.KcompPrelims.html | 2 +- Cubical.Foundations.Cubes.HLevels.html | 4 +- Cubical.Foundations.Cubes.Subtypes.html | 2 +- Cubical.Foundations.Equiv.Properties.html | 6 +- Cubical.Foundations.HLevels.html | 20 +- Cubical.Foundations.Pointed.Homotopy.html | 2 +- Cubical.Foundations.SIP.html | 2 +- Cubical.Functions.Embedding.html | 28 +- Cubical.Functions.Image.html | 4 +- Cubical.HITs.Cost.Base.html | 2 +- ...l.HITs.CumulativeHierarchy.Properties.html | 10 +- Cubical.HITs.FreeGroup.Properties.html | 385 +++++------ Cubical.HITs.FreeGroupoid.Properties.html | 18 +- ...l.HITs.James.Inductive.PushoutFormula.html | 2 +- Cubical.HITs.James.LoopSuspEquiv.html | 4 +- ...Ts.PropositionalTruncation.Properties.html | 2 +- Cubical.HITs.Pushout.KrausVonRaumer.html | 2 +- Cubical.HITs.RPn.Base.html | 14 +- Cubical.HITs.SetQuotients.Properties.html | 4 +- Cubical.HITs.SetTruncation.Fibers.html | 2 +- Cubical.HITs.SmashProduct.Base.html | 10 +- Cubical.Homotopy.BlakersMassey.html | 16 +- Cubical.Homotopy.Connected.html | 6 +- ....Homotopy.EilenbergMacLane.CupProduct.html | 4 +- ...opy.EilenbergMacLane.GradedCommTensor.html | 2 +- Cubical.Homotopy.EilenbergMacLane.Order2.html | 2 +- ....Homotopy.EilenbergMacLane.Properties.html | 8 +- Cubical.Homotopy.Group.Base.html | 2 +- Cubical.Homotopy.Group.LES.html | 4 +- ...l.Homotopy.Group.Pi4S3.BrunerieNumber.html | 12 +- Cubical.Homotopy.Group.Pi4S3.DirectProof.html | 2 +- Cubical.Homotopy.HopfInvariant.Brunerie.html | 4 +- Cubical.Homotopy.Whitehead.html | 4 +- Cubical.Papers.AffineSchemes.html | 2 +- ...elation.Nullary.DecidablePropositions.html | 2 +- Cubical.Structures.Axioms.html | 2 +- Cubical.Structures.Product.html | 4 +- Cubical.Structures.Relational.Equalizer.html | 4 +- Cubical.Structures.Relational.Function.html | 2 +- Cubical.Structures.Relational.Product.html | 6 +- Cubical.Tactics.CategorySolver.Solver.html | 12 +- Cubical.Tactics.FunctorSolver.Examples.html | 14 +- Cubical.Tactics.FunctorSolver.Reflection.html | 4 +- Cubical.Tactics.FunctorSolver.Solver.html | 26 +- Cubical.ZCohomology.EilenbergSteenrodZ.html | 22 +- Cubical.ZCohomology.GroupStructure.html | 12 +- Cubical.ZCohomology.Groups.CP2.html | 2 +- Cubical.ZCohomology.Groups.KleinBottle.html | 14 +- Cubical.ZCohomology.Groups.Prelims.html | 2 +- Cubical.ZCohomology.Groups.RP2.html | 6 +- Cubical.ZCohomology.Groups.Torus.html | 4 +- Cubical.ZCohomology.Groups.Wedge.html | 10 +- Cubical.ZCohomology.Gysin.html | 2 +- Cubical.ZCohomology.Properties.html | 4 +- ...homology.RingStructure.CohomologyRing.html | 6 +- ...ology.RingStructure.CohomologyRingFun.html | 6 +- 222 files changed, 4170 insertions(+), 3871 deletions(-) create mode 100644 Cubical.Categories.Instances.Groups.html diff --git a/Cubical.Algebra.AbGroup.Base.html b/Cubical.Algebra.AbGroup.Base.html index 39a6514e42..8fd9c05aa7 100644 --- a/Cubical.Algebra.AbGroup.Base.html +++ b/Cubical.Algebra.AbGroup.Base.html @@ -346,9 +346,9 @@ isAbGroup (snd HomGroup) = makeIsAbGroup isSetGroupHom - { (f , p) (g , q) (h , r) Σ≡Prop _ isPropIsGroupHom _ _) + { (f , p) (g , q) (h , r) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ x +AssocB _ _ _) }) - { (f , p) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ y +IdRB _)}) - ((λ { (f , p) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ y +InvRB _)})) - { (f , p) (g , q) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ x +CommB _ _)}) + { (f , p) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ y +IdRB _)}) + ((λ { (f , p) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ y +InvRB _)})) + { (f , p) (g , q) Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ x +CommB _ _)}) \ No newline at end of file diff --git a/Cubical.Algebra.AbGroup.TensorProduct.html b/Cubical.Algebra.AbGroup.TensorProduct.html index 14d4f9c293..9d39468ca8 100644 --- a/Cubical.Algebra.AbGroup.TensorProduct.html +++ b/Cubical.Algebra.AbGroup.TensorProduct.html @@ -298,7 +298,7 @@ IsGroupHom.pres· q _ _ snd (tensorFun A B T C (f , p) (g , q)) = makeIsGroupHom - λ x y Σ≡Prop _ isPropIsGroupHom _ _) + λ x y Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ b cong g (funExt⁻ (cong fst (IsGroupHom.pres· p x y)) b) IsGroupHom.pres· q _ _) @@ -333,7 +333,7 @@ fst (fst mainF a) b = a b snd (fst mainF a) = makeIsGroupHom (⊗DistR+⊗ a) snd mainF = makeIsGroupHom - λ x y Σ≡Prop _ isPropIsGroupHom _ _) + λ x y Σ≡Prop _ isPropIsGroupHom _ _) (funExt (⊗DistL+⊗ x y)) isTensorProduct⨂ : (isTensorProductOf AGr and BGr) (AGr BGr) @@ -361,10 +361,10 @@ (GroupHom (AGr *) (HomGroup (BGr *) C *)) Iso.fun mainIso = _ Iso.inv mainIso = invF - Iso.rightInv mainIso (f , p) = Σ≡Prop _ isPropIsGroupHom _ _) - (funExt λ a Σ≡Prop _ isPropIsGroupHom _ _) refl) + Iso.rightInv mainIso (f , p) = Σ≡Prop _ isPropIsGroupHom _ _) + (funExt λ a Σ≡Prop _ isPropIsGroupHom _ _) refl) Iso.leftInv mainIso (f , p) = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (⊗elimProp _ is-set (snd C) _ _) _ _ refl) λ x y ind1 ind2 cong₂ (_+G_ (snd C)) ind1 ind2 @@ -537,7 +537,7 @@ ((compGroupHom (lIncl⨂ (RingStr.1r (snd G))) TensorMultHom)) idGroupHom G→G⨂G→Gₗ {G = G} = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (RingStr.·IdR (snd G))) G→G⨂G→Gᵣ : {G : Ring } @@ -545,6 +545,6 @@ ((compGroupHom (rIncl⨂ (RingStr.1r (snd G))) TensorMultHom)) idGroupHom G→G⨂G→Gᵣ {G = G} = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (RingStr.·IdL (snd G))) \ No newline at end of file diff --git a/Cubical.Algebra.Algebra.Base.html b/Cubical.Algebra.Algebra.Base.html index 9c49fd641a..585c6cc046 100644 --- a/Cubical.Algebra.Algebra.Base.html +++ b/Cubical.Algebra.Algebra.Base.html @@ -236,7 +236,7 @@ module N = AlgebraStr (str N) AlgebraHom≡ : {φ ψ : AlgebraHom A B} fst φ fst ψ φ ψ -AlgebraHom≡ = Σ≡Prop λ f isPropIsAlgebraHom _ _ f _ +AlgebraHom≡ = Σ≡Prop λ f isPropIsAlgebraHom _ _ f _ 𝒮ᴰ-Algebra : (R : Ring ) DUARel (𝒮-Univ ℓ') (AlgebraStr R) (ℓ-max ℓ') 𝒮ᴰ-Algebra R = diff --git a/Cubical.Algebra.Algebra.Properties.html b/Cubical.Algebra.Algebra.Properties.html index 78a7c1636c..5795f9d26e 100644 --- a/Cubical.Algebra.Algebra.Properties.html +++ b/Cubical.Algebra.Algebra.Properties.html @@ -178,11 +178,11 @@ fun isoOnHoms g = g ∘a AlgebraEquiv→AlgebraHom f inv isoOnHoms h = h ∘a AlgebraEquiv→AlgebraHom f⁻¹ rightInv isoOnHoms h = - Σ≡Prop + Σ≡Prop h isPropIsAlgebraHom _ (A .snd) h (C .snd)) (isoOnTypes .rightInv (h .fst)) leftInv isoOnHoms g = - Σ≡Prop + Σ≡Prop g isPropIsAlgebraHom _ (B .snd) g (C .snd)) (isoOnTypes .leftInv (g .fst)) @@ -221,7 +221,7 @@ ∙∙ transportTransport⁻ (ua (Algebra≡ A B)) q where helper : transport (sym (ua (Algebra≡ A B))) p transport (sym (ua (Algebra≡ A B))) q - helper = Σ≡Prop + helper = Σ≡Prop _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) λ _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) diff --git a/Cubical.Algebra.Algebra.Subalgebra.html b/Cubical.Algebra.Algebra.Subalgebra.html index 41eeeede89..93accc51c5 100644 --- a/Cubical.Algebra.Algebra.Subalgebra.html +++ b/Cubical.Algebra.Algebra.Subalgebra.html @@ -57,7 +57,7 @@ private module algStr = AlgebraStr Subalgebra→Algebra≡ : {x y : Σ[ a A ] a S} fst x fst y x y - Subalgebra→Algebra≡ eq = Σ≡Prop (∈-isProp S) eq + Subalgebra→Algebra≡ eq = Σ≡Prop (∈-isProp S) eq Subalgebra→Algebra : Algebra R ℓ' Subalgebra→Algebra .fst = Σ[ a A ] a S diff --git a/Cubical.Algebra.CommAlgebra.FPAlgebra.Base.html b/Cubical.Algebra.CommAlgebra.FPAlgebra.Base.html index 8d77a7a21b..fe44a521db 100644 --- a/Cubical.Algebra.CommAlgebra.FPAlgebra.Base.html +++ b/Cubical.Algebra.CommAlgebra.FPAlgebra.Base.html @@ -170,7 +170,7 @@ universal = (inducedHom , inducedHomOnGenerators) , λ {(f , mapsValues) - Σ≡Prop _ isPropΠ _ is-set _ _)) + Σ≡Prop _ isPropΠ _ is-set _ _)) (unique f mapsValues)} where open CommAlgebraStr (str A) @@ -216,7 +216,7 @@ Iso.fun FPHomIso = evaluateAtFP Iso.inv FPHomIso = inducedHomFP _ Iso.rightInv (FPHomIso {A}) = - λ b Σ≡Prop + λ b Σ≡Prop x isPropΠ i is-set (evPoly A (relation i) x) @@ -225,7 +225,7 @@ where open CommAlgebraStr (str A) Iso.leftInv (FPHomIso {A}) = - λ a Σ≡Prop f isPropIsCommAlgebraHom {} {R} {} {} {FPAlgebra} {A} f) + λ a Σ≡Prop f isPropIsCommAlgebraHom {} {R} {} {} {FPAlgebra} {A} f) λ i fst (unique A (fst (evaluateAtFP {A} a)) (snd (evaluateAtFP a)) diff --git a/Cubical.Algebra.CommAlgebra.FreeCommAlgebra.Properties.html b/Cubical.Algebra.CommAlgebra.FreeCommAlgebra.Properties.html index c30025984b..671b3a49aa 100644 --- a/Cubical.Algebra.CommAlgebra.FreeCommAlgebra.Properties.html +++ b/Cubical.Algebra.CommAlgebra.FreeCommAlgebra.Properties.html @@ -27,7 +27,7 @@ open import Cubical.Foundations.Function hiding (const) open import Cubical.Foundations.Isomorphism -open import Cubical.Data.Sigma.Properties using (Σ≡Prop) +open import Cubical.Data.Sigma.Properties using (Σ≡Prop) open import Cubical.HITs.SetTruncation open import Cubical.Algebra.CommRing @@ -282,7 +282,7 @@ Iso.inv (homMapIso A) = inducedHom A Iso.rightInv (homMapIso A) = λ ϕ Theory.mapRetrievable A ϕ Iso.leftInv (homMapIso {R = R} {I = I} A) = - λ f Σ≡Prop f isPropIsCommAlgebraHom {M = R [ I ]} {N = A} f) + λ f Σ≡Prop f isPropIsCommAlgebraHom {M = R [ I ]} {N = A} f) (Theory.homRetrievable A f) inducedHomUnique : @@ -379,7 +379,7 @@ from-to : (x : _) from (to x) x from-to x = - Σ≡Prop f isPropIsCommAlgebraHom {M = R [ ]} {N = B} f) + Σ≡Prop f isPropIsCommAlgebraHom {M = R [ ]} {N = B} f) (Theory.homRetrievable B x) equiv : CommAlgebraHom (R [ ]) B ( fst B) diff --git a/Cubical.Algebra.CommAlgebra.Instances.Initial.html b/Cubical.Algebra.CommAlgebra.Instances.Initial.html index 45489d7dd8..9ac4ddc656 100644 --- a/Cubical.Algebra.CommAlgebra.Instances.Initial.html +++ b/Cubical.Algebra.CommAlgebra.Instances.Initial.html @@ -7,7 +7,7 @@ open import Cubical.Foundations.Isomorphism open import Cubical.Data.Unit -open import Cubical.Data.Sigma.Properties using (Σ≡Prop) +open import Cubical.Data.Sigma.Properties using (Σ≡Prop) open import Cubical.Algebra.CommRing open import Cubical.Algebra.Ring @@ -72,7 +72,7 @@ f initialMap initialMapEq f = let open IsAlgebraHom (snd f) - in Σ≡Prop + in Σ≡Prop (isPropIsCommAlgebraHom {M = initialCAlg} {N = A}) λ i x ((fst f) x ≡⟨ cong (fst f) (sym (·IdR _)) diff --git a/Cubical.Algebra.CommAlgebra.Instances.Unit.html b/Cubical.Algebra.CommAlgebra.Instances.Unit.html index b6d28bc316..de563c0a9d 100644 --- a/Cubical.Algebra.CommAlgebra.Instances.Unit.html +++ b/Cubical.Algebra.CommAlgebra.Instances.Unit.html @@ -7,7 +7,7 @@ open import Cubical.Foundations.Structure open import Cubical.Data.Unit -open import Cubical.Data.Sigma.Properties using (Σ≡Prop) +open import Cubical.Data.Sigma.Properties using (Σ≡Prop) open import Cubical.Algebra.CommRing open import Cubical.Algebra.CommAlgebra.Base @@ -42,7 +42,7 @@ terminalityContr : isContr (CommAlgebraHom A UnitCommAlgebra) terminalityContr = terminalMap , path where path : (ϕ : CommAlgebraHom A UnitCommAlgebra) terminalMap ϕ - path ϕ = Σ≡Prop (isPropIsCommAlgebraHom {M = A} {N = UnitCommAlgebra}) + path ϕ = Σ≡Prop (isPropIsCommAlgebraHom {M = A} {N = UnitCommAlgebra}) λ i _ isPropUnit* _ _ i open CommAlgebraStr (snd A) diff --git a/Cubical.Algebra.CommAlgebra.Localisation.html b/Cubical.Algebra.CommAlgebra.Localisation.html index 54376ca5d5..a8fdcd6e19 100644 --- a/Cubical.Algebra.CommAlgebra.Localisation.html +++ b/Cubical.Algebra.CommAlgebra.Localisation.html @@ -73,7 +73,7 @@ S⋆1⊆S⁻¹Rˣ : s s S' _⋆_ (snd S⁻¹RAsCommAlg) s (1a (snd S⁻¹RAsCommAlg)) S⁻¹Rˣ S⋆1⊆S⁻¹Rˣ s s∈S' = subst-∈ S⁻¹Rˣ - (cong [_] (≡-× (sym (·rRid s)) (Σ≡Prop x S' x .snd) (sym (·rRid _))))) + (cong [_] (≡-× (sym (·rRid s)) (Σ≡Prop x S' x .snd) (sym (·rRid _))))) (S/1⊆S⁻¹Rˣ s s∈S') @@ -109,7 +109,7 @@ χᴬuniqueness : (ψ : CommAlgebraHom S⁻¹RAsCommAlg B') χᴬ ψ - χᴬuniqueness ψ = Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) + χᴬuniqueness ψ = Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) (cong (fst fst) (χuniqueness (ψ' , funExt ψ'r/1≡φr))) where χuniqueness = S⁻¹RHasUniversalProp B φ S⋆1⊆Bˣ .snd @@ -228,7 +228,7 @@ pres⋆ (snd center) = pres⋆ (snd χ₁) uniqueness : (φ : CommAlgebraEquiv S₁⁻¹RAsCommAlg S₂⁻¹RAsCommAlg) center φ - uniqueness φ = Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) + uniqueness φ = Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) (equivEq (cong fst (S₁⁻¹RHasAlgUniversalProp S₂⁻¹RAsCommAlg S₁⊆S₂⁻¹Rˣ .snd (AlgebraEquiv→AlgebraHom φ)))) diff --git a/Cubical.Algebra.CommAlgebra.LocalisationAlgebra.html b/Cubical.Algebra.CommAlgebra.LocalisationAlgebra.html index c5654332c3..b3f3fc0643 100644 --- a/Cubical.Algebra.CommAlgebra.LocalisationAlgebra.html +++ b/Cubical.Algebra.CommAlgebra.LocalisationAlgebra.html @@ -163,7 +163,7 @@ i CommRingHom Aᵣ (S⁻¹AAsCommAlgebra→CommRing i)) (CommAlgebraHom→CommRingHom A S⁻¹AAsCommAlgebra /1AsCommAlgebraHom) RUniv./1AsCommRingHom - /1AsCommAlgebraHom→CommRingHom = ΣPathPProp f isPropIsRingHom _ f _) + /1AsCommAlgebraHom→CommRingHom = ΣPathPProp f isPropIsRingHom _ f _) i RUniv._/1) S⁻¹AHasUniversalProp : hasLocUniversalProp S⁻¹AAsCommAlgebra @@ -253,7 +253,7 @@ (fst φ) RUniv._/1 (fst ψ)) (χₐ , χₐcomm) el χₐunique (φ' , φ'comm) = - Σ≡Prop ((λ _ isSetΠ _ is-set) _ _)) $ AlgebraHom≡ $ + Σ≡Prop ((λ _ isSetΠ _ is-set) _ _)) $ AlgebraHom≡ $ cong (fst fst) -- Get underlying bare function. (univ .snd (CommAlgebraHom→RingHom {A = S⁻¹AAsCommAlgebra} {B = B} φ' , φ'comm)) diff --git a/Cubical.Algebra.CommAlgebra.Properties.html b/Cubical.Algebra.CommAlgebra.Properties.html index e8e642dff5..d6a90eeb87 100644 --- a/Cubical.Algebra.CommAlgebra.Properties.html +++ b/Cubical.Algebra.CommAlgebra.Properties.html @@ -266,7 +266,7 @@ ∙∙ transportTransport⁻ (ua (CommAlgebra≡ A B)) q where helper : transport (sym (ua (CommAlgebra≡ A B))) p transport (sym (ua (CommAlgebra≡ A B))) q - helper = Σ≡Prop + helper = Σ≡Prop _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) λ _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) @@ -307,8 +307,8 @@ ---------------------------------------------------------------------------- x y isContr (CommAlgebraEquiv (σ x) (σ y)) contrCommAlgebraHom→contrCommAlgebraEquiv σ contrHom x y = σEquiv , - λ e Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) - (Σ≡Prop isPropIsEquiv (cong fst (contrHom _ _ .snd (CommAlgebraEquiv→CommAlgebraHom e)))) + λ e Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) + (Σ≡Prop isPropIsEquiv (cong fst (contrHom _ _ .snd (CommAlgebraEquiv→CommAlgebraHom e)))) where open Iso χ₁ = contrHom x y .fst @@ -380,5 +380,5 @@ pbSliceHom : Σ[ k CommRingHom (CommAlgebra→CommRing A) (CommAlgebra→CommRing B) ] k ∘r ((snd homA) ∘r f) ((snd homB) ∘r f) - pbSliceHom = fst asSliceHom , Σ≡Prop _ isPropIsRingHom _ _ _) λ i x fst ((snd asSliceHom) i) (fst f x) + pbSliceHom = fst asSliceHom , Σ≡Prop _ isPropIsRingHom _ _ _) λ i x fst ((snd asSliceHom) i) (fst f x) \ No newline at end of file diff --git a/Cubical.Algebra.CommAlgebra.QuotientAlgebra.html b/Cubical.Algebra.CommAlgebra.QuotientAlgebra.html index 18c19c3502..672323b23c 100644 --- a/Cubical.Algebra.CommAlgebra.QuotientAlgebra.html +++ b/Cubical.Algebra.CommAlgebra.QuotientAlgebra.html @@ -10,7 +10,7 @@ open import Cubical.HITs.SetQuotients hiding (_/_) open import Cubical.Data.Unit -open import Cubical.Data.Sigma.Properties using (Σ≡Prop) +open import Cubical.Data.Sigma.Properties using (Σ≡Prop) open import Cubical.Algebra.CommRing import Cubical.Algebra.CommRing.Quotient as CommRing @@ -161,7 +161,7 @@ unfolding inducedHom quotientHom inducedHom∘quotientHom : inducedHom ∘a quotientHom A I ϕ - inducedHom∘quotientHom = Σ≡Prop (isPropIsCommAlgebraHom {M = A} {N = B}) (funExt a refl)) + inducedHom∘quotientHom = Σ≡Prop (isPropIsCommAlgebraHom {M = A} {N = B}) (funExt a refl)) opaque unfolding quotientHom @@ -170,7 +170,7 @@ f ∘a (quotientHom A I) g ∘a (quotientHom A I) f g injectivePrecomp B f g p = - Σ≡Prop + Σ≡Prop h isPropIsCommAlgebraHom {M = A / I} {N = B} h) (descendMapPath (fst f) (fst g) is-set λ x λ i fst (p i) x) @@ -226,7 +226,7 @@ kernel≡I : kernel A (A / I) π I kernel≡I = - kernel A (A / I) π ≡⟨ Σ≡Prop + kernel A (A / I) π ≡⟨ Σ≡Prop (isPropIsCommIdeal (CommAlgebra→CommRing A)) refl _ ≡⟨ CommRing.kernel≡I {R = CommAlgebra→CommRing A} I diff --git a/Cubical.Algebra.CommAlgebra.UnivariatePolyList.html b/Cubical.Algebra.CommAlgebra.UnivariatePolyList.html index 090104be0f..8eb846929c 100644 --- a/Cubical.Algebra.CommAlgebra.UnivariatePolyList.html +++ b/Cubical.Algebra.CommAlgebra.UnivariatePolyList.html @@ -196,7 +196,7 @@ fst f X x f inducedHom inducedHomUnique f fX≡x = - Σ≡Prop + Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) λ i p pwEq p i where @@ -227,7 +227,7 @@ fst (fst (equiv-proof (snd indcuedHomEquivalence) x)) = inducedHom x snd (fst (equiv-proof (snd indcuedHomEquivalence) x)) = inducedMapGenerator x snd (equiv-proof (snd indcuedHomEquivalence) x) (g , gX≡x) = - Σ≡Prop _ is-set _ _) (sym (inducedHomUnique x g gX≡x)) + Σ≡Prop _ is-set _ _) (sym (inducedHomUnique x g gX≡x)) equalByUMP : (f g : AlgebraHom (CommAlgebra→Algebra ListPolyCommAlgebra) A) fst f X fst g X diff --git a/Cubical.Algebra.CommMonoid.Properties.html b/Cubical.Algebra.CommMonoid.Properties.html index 1612230af5..57a892e99b 100644 --- a/Cubical.Algebra.CommMonoid.Properties.html +++ b/Cubical.Algebra.CommMonoid.Properties.html @@ -35,11 +35,11 @@ IsCommMonoid.isMonoid (CommMonoidStr.isCommMonoid (snd makeSubCommMonoid)) = makeIsMonoid (isOfHLevelΣ 2 is-set λ _ isProp→isSet (snd (P _))) - x y z Σ≡Prop _ snd (P _)) (·Assoc (fst x) (fst y) (fst z))) - x Σ≡Prop _ snd (P _)) (·IdR (fst x))) - λ x Σ≡Prop _ snd (P _)) (·IdL (fst x)) + x y z Σ≡Prop _ snd (P _)) (·Assoc (fst x) (fst y) (fst z))) + x Σ≡Prop _ snd (P _)) (·IdR (fst x))) + λ x Σ≡Prop _ snd (P _)) (·IdL (fst x)) IsCommMonoid.·Comm (CommMonoidStr.isCommMonoid (snd makeSubCommMonoid)) = - λ x y Σ≡Prop _ snd (P _)) (·Comm (fst x) (fst y)) + λ x y Σ≡Prop _ snd (P _)) (·Comm (fst x) (fst y)) module CommMonoidTheory (M' : CommMonoid ) where open CommMonoidStr (snd M') diff --git a/Cubical.Algebra.CommRing.Base.html b/Cubical.Algebra.CommRing.Base.html index 9545cee010..eee77af81d 100644 --- a/Cubical.Algebra.CommRing.Base.html +++ b/Cubical.Algebra.CommRing.Base.html @@ -166,7 +166,7 @@ fst (inv (CommRingEquivIsoCommRingIso R S) e) = isoToEquiv (e .fst) snd (inv (CommRingEquivIsoCommRingIso R S) e) = e .snd rightInv (CommRingEquivIsoCommRingIso R S) (e , he) = - Σ≡Prop e isPropIsRingHom (snd (CommRing→Ring R)) (e .fun) (snd (CommRing→Ring S))) + Σ≡Prop e isPropIsRingHom (snd (CommRing→Ring R)) (e .fun) (snd (CommRing→Ring S))) rem where rem : equivToIso (isoToEquiv e) e @@ -175,7 +175,7 @@ rightInv (rem i) b j = CommRingStr.is-set (snd S) (fun e (inv e b)) b (rightInv e b) (rightInv e b) i j leftInv (rem i) a j = CommRingStr.is-set (snd R) (inv e (fun e a)) a (retEq (isoToEquiv e) a) (leftInv e a) i j leftInv (CommRingEquivIsoCommRingIso R S) e = - Σ≡Prop e isPropIsRingHom (snd (CommRing→Ring R)) (e .fst) (snd (CommRing→Ring S))) + Σ≡Prop e isPropIsRingHom (snd (CommRing→Ring R)) (e .fst) (snd (CommRing→Ring S))) (equivEq refl) isGroupoidCommRing : isGroupoid (CommRing ) diff --git a/Cubical.Algebra.CommRing.FiberedProduct.html b/Cubical.Algebra.CommRing.FiberedProduct.html index 1bce245ef0..43b7761cfd 100644 --- a/Cubical.Algebra.CommRing.FiberedProduct.html +++ b/Cubical.Algebra.CommRing.FiberedProduct.html @@ -31,7 +31,7 @@ fbT = Σ[ ab fst A × fst B ] (fst α (fst ab) fst β (snd ab)) fbT≡ : {x y : fbT} fst (fst x) fst (fst y) snd (fst x) snd (fst y) x y - fbT≡ h1 h2 = Σ≡Prop _ is-set (snd C) _ _) λ i (h1 i) , (h2 i) + fbT≡ h1 h2 = Σ≡Prop _ is-set (snd C) _ _) λ i (h1 i) , (h2 i) 0fbT : fbT 0fbT = (A.0r , B.0r) , α.pres0 sym β.pres0 diff --git a/Cubical.Algebra.CommRing.Ideal.Base.html b/Cubical.Algebra.CommRing.Ideal.Base.html index 3626a7186e..6dcbe537db 100644 --- a/Cubical.Algebra.CommRing.Ideal.Base.html +++ b/Cubical.Algebra.CommRing.Ideal.Base.html @@ -79,7 +79,7 @@ subst-∈ I = subst-∈p (I .fst) CommIdeal≡Char : {I J : CommIdeal} I J J I I J - CommIdeal≡Char I⊆J J⊆I = Σ≡Prop isPropIsCommIdeal (⊆-extensionality _ _ (I⊆J , J⊆I)) + CommIdeal≡Char I⊆J J⊆I = Σ≡Prop isPropIsCommIdeal (⊆-extensionality _ _ (I⊆J , J⊆I)) -Closed : (I : CommIdeal) (x : R) x I (- x) I diff --git a/Cubical.Algebra.CommRing.Localisation.Base.html b/Cubical.Algebra.CommRing.Localisation.Base.html index a028e4d75f..ce8476ce30 100644 --- a/Cubical.Algebra.CommRing.Localisation.Base.html +++ b/Cubical.Algebra.CommRing.Localisation.Base.html @@ -112,7 +112,7 @@ +ₚ-symm : (a b : R × S) (a +ₚ b) (b +ₚ a) +ₚ-symm (r₁ , s₁ , s₁∈S) (r₂ , s₂ , s₂∈S) = - ΣPathP (+Comm _ _ , Σ≡Prop x S' x .snd) (·Comm _ _)) + ΣPathP (+Comm _ _ , Σ≡Prop x S' x .snd) (·Comm _ _)) θ : (a a' b : R × S) a a' (a +ₚ b) (a' +ₚ b) θ (r₁ , s₁ , s₁∈S) (r'₁ , s'₁ , s'₁∈S) (r₂ , s₂ , s₂∈S) ((s , s∈S) , p) = (s , s∈S) , path @@ -148,7 +148,7 @@ where +ₗ-assoc[] : (a b c : R × S) [ a ] +ₗ ([ b ] +ₗ [ c ]) ([ a ] +ₗ [ b ]) +ₗ [ c ] +ₗ-assoc[] (r , s , s∈S) (r' , s' , s'∈S) (r'' , s'' , s''∈S) = - cong [_] (ΣPathP ((path r s r' s' r'' s'') , Σ≡Prop x ∈-isProp S' x) (·Assoc _ _ _))) + cong [_] (ΣPathP ((path r s r' s' r'' s'') , Σ≡Prop x ∈-isProp S' x) (·Assoc _ _ _))) where path : (r s r' s' r'' s'' : R) r · (s' · s'') + (r' · s'' + r'' · s') · s (r · s' + r' · s) · s'' + r'' · (s · s') @@ -169,7 +169,7 @@ path : [ r · 1r + 0r · s , s · 1r , SMultClosedSubset .multClosed s∈S (SMultClosedSubset .containsOne) ] [ r , s , s∈S ] - path = cong [_] (ΣPathP (eq1 r s , Σ≡Prop x ∈-isProp S' x) (·IdR _))) + path = cong [_] (ΣPathP (eq1 r s , Σ≡Prop x ∈-isProp S' x) (·IdR _))) -ₗ_ : S⁻¹R S⁻¹R -ₗ_ = SQ.rec squash/ -ₗ[] -ₗWellDef @@ -203,7 +203,7 @@ where +ₗ-comm[] : (a b : R × S) ([ a ] +ₗ [ b ]) ([ b ] +ₗ [ a ]) +ₗ-comm[] (r , s , s∈S) (r' , s' , s'∈S) = - cong [_] (ΣPathP ((+Comm _ _) , Σ≡Prop x ∈-isProp S' x) (·Comm _ _))) + cong [_] (ΣPathP ((+Comm _ _) , Σ≡Prop x ∈-isProp S' x) (·Comm _ _))) -- Now for multiplication @@ -217,7 +217,7 @@ ·ₚ-symm : (a b : R × S) (a ·ₚ b) (b ·ₚ a) ·ₚ-symm (r₁ , s₁ , s₁∈S) (r₂ , s₂ , s₂∈S) = - ΣPathP (·Comm _ _ , Σ≡Prop x S' x .snd) (·Comm _ _)) + ΣPathP (·Comm _ _ , Σ≡Prop x S' x .snd) (·Comm _ _)) θ : (a a' b : R × S) a a' (a ·ₚ b) (a' ·ₚ b) θ (r₁ , s₁ , s₁∈S) (r'₁ , s'₁ , s'₁∈S) (r₂ , s₂ , s₂∈S) ((s , s∈S) , p) = (s , s∈S) , path @@ -243,13 +243,13 @@ where ·ₗ-assoc[] : (a b c : R × S) [ a ] ·ₗ ([ b ] ·ₗ [ c ]) ([ a ] ·ₗ [ b ]) ·ₗ [ c ] ·ₗ-assoc[] (r , s , s∈S) (r' , s' , s'∈S) (r'' , s'' , s''∈S) = - cong [_] (ΣPathP ((·Assoc _ _ _) , Σ≡Prop x ∈-isProp S' x) (·Assoc _ _ _))) + cong [_] (ΣPathP ((·Assoc _ _ _) , Σ≡Prop x ∈-isProp S' x) (·Assoc _ _ _))) ·ₗ-rid : (x : S⁻¹R) x ·ₗ 1ₗ x ·ₗ-rid = SQ.elimProp _ squash/ _ _) ·ₗ-rid[] where ·ₗ-rid[] : (a : R × S) ([ a ] ·ₗ 1ₗ) [ a ] - ·ₗ-rid[] (r , s , s∈S) = cong [_] (ΣPathP ((·IdR _) , Σ≡Prop x ∈-isProp S' x) (·IdR _))) + ·ₗ-rid[] (r , s , s∈S) = cong [_] (ΣPathP ((·IdR _) , Σ≡Prop x ∈-isProp S' x) (·IdR _))) ·ₗ-rdist-+ₗ : (x y z : S⁻¹R) x ·ₗ (y +ₗ z) (x ·ₗ y) +ₗ (x ·ₗ z) @@ -270,7 +270,7 @@ where ·ₗ-comm[] : (a b : R × S) [ a ] ·ₗ [ b ] [ b ] ·ₗ [ a ] ·ₗ-comm[] (r , s , s∈S) (r' , s' , s'∈S) = - cong [_] (ΣPathP ((·Comm _ _) , Σ≡Prop x ∈-isProp S' x) (·Comm _ _))) + cong [_] (ΣPathP ((·Comm _ _) , Σ≡Prop x ∈-isProp S' x) (·Comm _ _))) diff --git a/Cubical.Algebra.CommRing.Localisation.InvertingElements.html b/Cubical.Algebra.CommRing.Localisation.InvertingElements.html index 466dc67b40..ab9a2070e7 100644 --- a/Cubical.Algebra.CommRing.Localisation.InvertingElements.html +++ b/Cubical.Algebra.CommRing.Localisation.InvertingElements.html @@ -130,7 +130,7 @@ []-case (r , s , s∈S[f]) = PT.rec (PisProp _) Σhelper s∈S[f] where Σhelper : Σ[ n ] s f ^ n P [ r , s , s∈S[f] ] - Σhelper (n , p) = subst P (cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym p)))) (base r n) + Σhelper (n , p) = subst P (cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym p)))) (base r n) invElPropElim2 : {f g : R} {P : R[1/ f ] R[1/ g ] Type ℓ'} @@ -390,16 +390,16 @@ (cong₂ _+_ (sym (·IdR _) i (·IdR r (~ i)) · (·IdR 1r (~ i)))) (sym (·IdR _) i (·IdR r' (~ i)) · (·IdR 1r (~ i))))) - (Σ≡Prop _ isPropPropTrunc) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdL _) i (·IdL 1r (~ i)) · (·IdL 1r (~ i))))))) - (Σ≡Prop _ isPropPropTrunc) (sym (·ᶠ-lid 1ᶠ)))) + (Σ≡Prop _ isPropPropTrunc) (sym (·ᶠ-lid 1ᶠ)))) lem· : _ lem· r r' = cong [_] (≡-× - (cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym (·IdL _))))) - (Σ≡Prop _ isPropPropTrunc) (sym (·ᶠ-lid 1ᶠ)))) + (cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym (·IdL _))))) + (Σ≡Prop _ isPropPropTrunc) (sym (·ᶠ-lid 1ᶠ)))) -- this will give us a map R[1/fg] → R[1/f][1/g] by the universal property of localisation fⁿgⁿ/1/1∈R[1/f][1/g]ˣ : (s : R) s ([_ⁿ|n≥0] R' (f · g)) s /1/1 R[1/f][1/g]ˣ @@ -467,7 +467,7 @@ path : [ g ^ n · r , 1r , PT.∣ 0 , refl ∣₁ ] 0ᶠ path = [ g ^ n · r , 1r , PT.∣ 0 , refl ∣₁ ] - ≡⟨ cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym (·IdR _)))) + ≡⟨ cong [_] (≡-× refl (Σ≡Prop _ isPropPropTrunc) (sym (·IdR _)))) [ g ^ n , 1r , PT.∣ 0 , refl ∣₁ ] ·ᶠ r/1 @@ -633,7 +633,7 @@ , g/1 ^ᶠ n , PT.∣ n , refl ∣₁ ] ·R[1/f][1/g] (x .snd .fst /1/1) base-^ᶠ-helper r m n = subst y ∃[ x R × S[fg] ] (x .fst /1/1) [ [ r , f ^ m , PT.∣ m , refl ∣₁ ] , y ] ·R[1/f][1/g] (x .snd .fst /1/1)) - (Σ≡Prop _ isPropPropTrunc) (^-respects-/1 _ n)) (baseCase r m n) + (Σ≡Prop _ isPropPropTrunc) (^-respects-/1 _ n)) (baseCase r m n) indStep : (r : R[1/_] R' f) (n : ) ∃[ x R × S[fg] ] (x .fst /1/1) [ r , g/1 ^ᶠ n , PT.∣ n , refl ∣₁ ] ·R[1/f][1/g] (x .snd .fst /1/1) @@ -833,9 +833,9 @@ ℕcase : (r : R) (n : ) φ [ r , (f · g) ^ n , PT.∣ n , refl ∣₁ ] χ [ r , (f · g) ^ n , PT.∣ n , refl ∣₁ ] ℕcase r n = cong [_] (ΣPathP --look into the components of the double-fractions - ( cong [_] (ΣPathP (eq1 , Σ≡Prop x S'[f] x .snd) (sym (·IdL _)))) - , Σ≡Prop x S'[f][g] x .snd) --ignore proof that denominator is power of g/1 - ( cong [_] (ΣPathP (sym (·IdL _) , Σ≡Prop x S'[f] x .snd) (sym (·IdL _))))))) + ( cong [_] (ΣPathP (eq1 , Σ≡Prop x S'[f] x .snd) (sym (·IdL _)))) + , Σ≡Prop x S'[f][g] x .snd) --ignore proof that denominator is power of g/1 + ( cong [_] (ΣPathP (sym (·IdL _) , Σ≡Prop x S'[f] x .snd) (sym (·IdL _))))))) where S'[f] = ([_ⁿ|n≥0] R' f) S'[f][g] = ([_ⁿ|n≥0] R[1/f]AsCommRing [ g , 1r , powersFormMultClosedSubset R' f .containsOne ]) diff --git a/Cubical.Algebra.CommRing.Localisation.Limit.html b/Cubical.Algebra.CommRing.Localisation.Limit.html index 514c7ae229..450c83fc88 100644 --- a/Cubical.Algebra.CommRing.Localisation.Limit.html +++ b/Cubical.Algebra.CommRing.Localisation.Limit.html @@ -221,7 +221,7 @@ where χId : i x χˡ i i .fst x χʳ i i .fst x χId i = invElPropElim _ squash/ _ _) - r m cong [_] (ΣPathP (refl , Σ≡Prop (∈-isProp _) refl))) + r m cong [_] (ΣPathP (refl , Σ≡Prop (∈-isProp _) refl))) aux (gt j<i) = χˡ i j .fst (x i) ≡⟨ χSwapL→R i j (x i) @@ -234,14 +234,14 @@ χSwapL→R : i j x χˡ i j .fst x χʳsubst i j x χSwapL→R i j = invElPropElim _ squash/ _ _) - λ r m cong [_] (ΣPathP (sym (transportRefl _) , Σ≡Prop (∈-isProp _) + λ r m cong [_] (ΣPathP (sym (transportRefl _) , Σ≡Prop (∈-isProp _) (sym (transportRefl _ cong x 1r · transport refl (x ^ m)) (·Comm _ _))))) χˡsubst : (i j : Fin (suc n)) R[1/ f j ] R[1/ f i · f j ] χˡsubst i j x = subst r R[1/ r ]) (·Comm (f j) (f i)) (χˡ j i .fst x) χSwapR→L : i j x χʳ i j .fst x χˡsubst i j x χSwapR→L i j = invElPropElim _ squash/ _ _) - λ r m cong [_] (ΣPathP (sym (transportRefl _) , Σ≡Prop (∈-isProp _) + λ r m cong [_] (ΣPathP (sym (transportRefl _) , Σ≡Prop (∈-isProp _) (sym (transportRefl _ cong x 1r · transport refl (x ^ m)) (·Comm _ _))))) χ≡PropElim : {B : ((i : Fin (suc n)) R[1/ f i ]) Type ℓ''} (isPropB : {x} isProp (B x)) @@ -433,7 +433,7 @@ Σhelper : Σ[ α FinVec R (suc n) ] 1r linearCombination R' α f²ᵐ⁺ˡ ∃![ y R ] (∀ i y /1ˢ [ r i , f i ^ m , m , refl ∣₁ ]) Σhelper (α , linCombi) = (z , z≡r/fᵐ) - , λ y' Σ≡Prop _ isPropΠ _ squash/ _ _)) (unique _ (y' .snd)) + , λ y' Σ≡Prop _ isPropΠ _ squash/ _ _)) (unique _ (y' .snd)) where z = λ i α i · r i · f i ^ (m +ℕ l) @@ -536,18 +536,18 @@ -} open Category (CommRingsCategory {}) open Cone - open Functor - - locDiagram : Functor (DLShfDiag (suc n) ) CommRingsCategory - F-ob locDiagram (sing i) = R[1/ f i ]AsCommRing - F-ob locDiagram (pair i j _) = R[1/ f i · f j ]AsCommRing - F-hom locDiagram idAr = idCommRingHom _ - F-hom locDiagram singPairL = χˡ _ _ - F-hom locDiagram singPairR = χʳ _ _ - F-id locDiagram = refl - F-seq locDiagram idAr _ = sym (⋆IdL _) - F-seq locDiagram singPairL idAr = sym (⋆IdR _) - F-seq locDiagram singPairR idAr = sym (⋆IdR _) + open Functor + + locDiagram : Functor (DLShfDiag (suc n) ) CommRingsCategory + F-ob locDiagram (sing i) = R[1/ f i ]AsCommRing + F-ob locDiagram (pair i j _) = R[1/ f i · f j ]AsCommRing + F-hom locDiagram idAr = idCommRingHom _ + F-hom locDiagram singPairL = χˡ _ _ + F-hom locDiagram singPairR = χʳ _ _ + F-id locDiagram = refl + F-seq locDiagram idAr _ = sym (⋆IdL _) + F-seq locDiagram singPairL idAr = sym (⋆IdR _) + F-seq locDiagram singPairR idAr = sym (⋆IdR _) locCone : Cone locDiagram R' coneOut locCone (sing i) = U./1AsCommRingHom i @@ -610,7 +610,7 @@ coneOut cᴬ (pair i j i<j) ψUniqueness : (y : Σ[ θ CommRingHom A' R' ] isConeMor cᴬ locCone θ) (ψ , isConeMorψ) y - ψUniqueness (θ , isConeMorθ) = Σ≡Prop _ isPropIsConeMor _ _ _) + ψUniqueness (θ , isConeMorθ) = Σ≡Prop _ isPropIsConeMor _ _ _) (RingHom≡ (funExt λ a cong fst (applyEqualizerLemma a .snd (θtriple a)))) where θtriple : (a : A) Σ[ x R ] i x /1ˢ φ i .fst a diff --git a/Cubical.Algebra.CommRing.Localisation.PullbackSquare.html b/Cubical.Algebra.CommRing.Localisation.PullbackSquare.html index a1727874fd..8cc1eca4c2 100644 --- a/Cubical.Algebra.CommRing.Localisation.PullbackSquare.html +++ b/Cubical.Algebra.CommRing.Localisation.PullbackSquare.html @@ -575,7 +575,7 @@ χUniqueness : (y : Σ[ θ CommRingHom A R' ] (ψ θ /1ᵍAsCommRingHom) × (φ θ /1ᶠAsCommRingHom)) (χ , χCoh) y - χUniqueness (θ , θCoh) = Σ≡Prop _ isProp× (isSetRingHom _ _ _ _) + χUniqueness (θ , θCoh) = Σ≡Prop _ isProp× (isSetRingHom _ _ _ _) (isSetRingHom _ _ _ _)) (RingHom≡ (funExt a cong fst (applyEqualizerLemma a .snd (θtriple a))))) where diff --git a/Cubical.Algebra.CommRing.Localisation.UniversalProperty.html b/Cubical.Algebra.CommRing.Localisation.UniversalProperty.html index 8a83a9d352..ef3faaa863 100644 --- a/Cubical.Algebra.CommRing.Localisation.UniversalProperty.html +++ b/Cubical.Algebra.CommRing.Localisation.UniversalProperty.html @@ -80,8 +80,8 @@ makeIsRingHom refl r r' cong [_] (≡-× (cong₂ (_+_) (sym (·IdR r)) (sym (·IdR r'))) - (Σ≡Prop x S' x .snd) (sym (·IdL 1r))))) - _ _ cong [_] (≡-× refl (Σ≡Prop x S' x .snd) (sym (·IdL 1r))))) + (Σ≡Prop x S' x .snd) (sym (·IdL 1r))))) + _ _ cong [_] (≡-× refl (Σ≡Prop x S' x .snd) (sym (·IdL 1r))))) S⁻¹Rˣ = S⁻¹RAsCommRing ˣ S/1⊆S⁻¹Rˣ : s s S' (s /1) S⁻¹Rˣ @@ -298,7 +298,7 @@ χunique : (y : Σ[ χ' CommRingHom S⁻¹RAsCommRing B' ] fst χ' _/1 ψ₀) (χ , funExt χcomp) y - χunique (χ' , χ'/1≡ψ) = Σ≡Prop x isSetΠ _ Bset) _ _) (RingHom≡ fχ≡fχ') + χunique (χ' , χ'/1≡ψ) = Σ≡Prop x isSetΠ _ Bset) _ _) (RingHom≡ fχ≡fχ') where open CommRingHomTheory {A' = S⁻¹RAsCommRing} {B' = B'} χ' renaming (φ[x⁻¹]≡φ[x]⁻¹ to χ'[x⁻¹]≡χ'[x]⁻¹) @@ -321,7 +321,7 @@ ·ₗ-path : [ r , s , s∈S' ] [ r , 1r , SMultClosedSubset .containsOne ] ·ₗ [ 1r , s , s∈S' ] - ·ₗ-path = cong [_] (≡-× (sym (·IdR r)) (Σ≡Prop x S' x .snd) (sym (·IdL s)))) + ·ₗ-path = cong [_] (≡-× (sym (·IdR r)) (Σ≡Prop x S' x .snd) (sym (·IdL s)))) instancepath : _ : ψ₀ s _ : s /1 S⁻¹Rˣ _ : fst χ' (s /1) ψ₀ r ·B ψ₀ s ⁻¹ fst χ' [ r , s , s∈S' ] diff --git a/Cubical.Algebra.CommRing.Properties.html b/Cubical.Algebra.CommRing.Properties.html index 1462732d48..94349b3d1a 100644 --- a/Cubical.Algebra.CommRing.Properties.html +++ b/Cubical.Algebra.CommRing.Properties.html @@ -40,7 +40,7 @@ private R = fst R' inverseUniqueness : (r : R) isProp (Σ[ r' R ] r · r' 1r) - inverseUniqueness r (r' , rr'≡1) (r'' , rr''≡1) = Σ≡Prop _ is-set _ _) path + inverseUniqueness r (r' , rr'≡1) (r'' , rr''≡1) = Σ≡Prop _ is-set _ _) path where path : r' r'' path = r' ≡⟨ sym (·IdR _) @@ -329,7 +329,7 @@ ∙∙ transportTransport⁻ (ua (CommRing≡ A B)) q where helper : transport (sym (ua (CommRing≡ A B))) p transport (sym (ua (CommRing≡ A B))) q - helper = Σ≡Prop + helper = Σ≡Prop _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) λ _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) diff --git a/Cubical.Algebra.CommSemiring.Instances.UpperNat.html b/Cubical.Algebra.CommSemiring.Instances.UpperNat.html index a95e4bf70a..bcd9668349 100644 --- a/Cubical.Algebra.CommSemiring.Instances.UpperNat.html +++ b/Cubical.Algebra.CommSemiring.Instances.UpperNat.html @@ -173,7 +173,7 @@ AnnihilL : (x : ℕ↑b) 0↑ · x 0↑ AnnihilL x = - Σ≡Prop s PropCompletion.isPropIsBounded ℓ-zero ℕ≤+ s) + Σ≡Prop s PropCompletion.isPropIsBounded ℓ-zero ℕ≤+ s) (pathFromImplications (fst (0↑ · x)) (fst 0↑) () ) where : (n : ) typeAt n (fst (0↑ · x)) typeAt n (fst 0↑) @@ -205,7 +205,7 @@ (is-set +IsCM) (·Assoc +IsCM) (·IdR +IsCM) (·Comm +IsCM) (·Assoc ·IsCM) (·IdR ·IsCM) - x y z Σ≡Prop s PropCompletion.isPropIsBounded ℓ-zero ℕ≤+ s) + x y z Σ≡Prop s PropCompletion.isPropIsBounded ℓ-zero ℕ≤+ s) (ConstructionUnbounded.+LDist· (fst x) (fst y) (fst z))) AnnihilL (·Comm ·IsCM) diff --git a/Cubical.Algebra.DirectSum.DirectSumFun.Properties.html b/Cubical.Algebra.DirectSum.DirectSumFun.Properties.html index b49ffe5f00..ef828ef51a 100644 --- a/Cubical.Algebra.DirectSum.DirectSumFun.Properties.html +++ b/Cubical.Algebra.DirectSum.DirectSumFun.Properties.html @@ -66,18 +66,18 @@ -- AbGroup Properties +⊕FunAssoc : (x y z : ⊕Fun G Gstr) x +⊕Fun (y +⊕Fun z) (x +⊕Fun y) +⊕Fun z +⊕FunAssoc (f , Anf) (g , Ang) (h , Anh) = - ΣPathTransport→PathΣ _ _ + ΣPathTransport→PathΣ _ _ (funExt n Gstr n .+Assoc _ _ _) , (squash₁ _ _)) +⊕FunRid : (x : ⊕Fun G Gstr) x +⊕Fun 0⊕Fun x - +⊕FunRid (f , Anf) = ΣPathTransport→PathΣ _ _ + +⊕FunRid (f , Anf) = ΣPathTransport→PathΣ _ _ ((funExt n +IdR (Gstr n) _)) , squash₁ _ _) +⊕FunInvR : (x : ⊕Fun G Gstr) x +⊕Fun Inv⊕Fun x 0⊕Fun - +⊕FunInvR (f , Anf) = ΣPathTransport→PathΣ _ _ + +⊕FunInvR (f , Anf) = ΣPathTransport→PathΣ _ _ ((funExt n +InvR (Gstr n) _)) , (squash₁ _ _)) +⊕FunComm : (x y : ⊕Fun G Gstr) x +⊕Fun y y +⊕Fun x - +⊕FunComm (f , Anf) (g , Ang) = ΣPathTransport→PathΣ _ _ + +⊕FunComm (f , Anf) (g , Ang) = ΣPathTransport→PathΣ _ _ ((funExt n Gstr n .+Comm _ _)) , (squash₁ _ _)) \ No newline at end of file diff --git a/Cubical.Algebra.DirectSum.DirectSumHIT.UniversalProperty.html b/Cubical.Algebra.DirectSum.DirectSumHIT.UniversalProperty.html index ce5e023eca..d083012464 100644 --- a/Cubical.Algebra.DirectSum.DirectSumHIT.UniversalProperty.html +++ b/Cubical.Algebra.DirectSum.DirectSumHIT.UniversalProperty.html @@ -60,7 +60,7 @@ -- Universal Property up∃⊕HIT : (k : Idx) fHhom k compGroupHom (injₖ-hom k) ⊕HIT→H-hom - up∃⊕HIT k = ΣPathTransport→PathΣ _ _ + up∃⊕HIT k = ΣPathTransport→PathΣ _ _ ((funExt _ refl)) , isPropIsGroupHom _ _ _ _) @@ -68,7 +68,7 @@ upUnicity⊕HIT : (hhom : AbGroupHom (⊕HIT-AbGr Idx G Gstr) HAbGr) (eqInj : (k : Idx) fHhom k compGroupHom (injₖ-hom k) hhom) hhom ⊕HIT→H-hom - upUnicity⊕HIT (h , hstr) eqInj = ΣPathTransport→PathΣ _ _ + upUnicity⊕HIT (h , hstr) eqInj = ΣPathTransport→PathΣ _ _ (helper , isPropIsGroupHom _ _ _ _) where diff --git a/Cubical.Algebra.DirectSum.Equiv-DSHIT-DSFun.html b/Cubical.Algebra.DirectSum.Equiv-DSHIT-DSFun.html index f978f26ac0..bf10eed625 100644 --- a/Cubical.Algebra.DirectSum.Equiv-DSHIT-DSFun.html +++ b/Cubical.Algebra.DirectSum.Equiv-DSHIT-DSFun.html @@ -188,7 +188,7 @@ ⊕HIT→⊕Fun-pres0 = refl ⊕HIT→⊕Fun-pres+ : (x y : ⊕HIT G Gstr) ⊕HIT→⊕Fun (x +⊕HIT y) ((⊕HIT→⊕Fun x) +⊕Fun (⊕HIT→⊕Fun y)) - ⊕HIT→⊕Fun-pres+ x y = ΣPathTransport→PathΣ _ _ (refl , (squash₁ _ _)) + ⊕HIT→⊕Fun-pres+ x y = ΣPathTransport→PathΣ _ _ (refl , (squash₁ _ _)) ----------------------------------------------------------------------------- @@ -272,10 +272,10 @@ sym q} inj-⊕HIT→⊕Fun : (x y : ⊕HIT G Gstr) ⊕HIT→⊕Fun x ⊕HIT→⊕Fun y x y - inj-⊕HIT→⊕Fun x y p = inj-⊕HIT→Fun x y (fst (PathΣ→ΣPathTransport _ _ p)) + inj-⊕HIT→⊕Fun x y p = inj-⊕HIT→Fun x y (fst (PathΣ→ΣPathTransport _ _ p)) lemProp : (g : ⊕Fun G Gstr) isProp (Σ[ x ⊕HIT G Gstr ] ⊕HIT→⊕Fun x g ) - lemProp g (x , p) (y , q) = ΣPathTransport→PathΣ _ _ + lemProp g (x , p) (y , q) = ΣPathTransport→PathΣ _ _ ((inj-⊕HIT→⊕Fun x y (p sym q)) , isSet⊕Fun _ _ _ _) @@ -334,7 +334,7 @@ ⊕Fun→⊕HIT+ : (g : ⊕Fun G Gstr) Σ[ x ⊕HIT G Gstr ] ⊕HIT→⊕Fun x g ⊕Fun→⊕HIT+ (g , Ang) = PT.rec (lemProp (g , Ang)) { (k , ng) - Strad g k , ΣPathTransport→PathΣ _ _ + Strad g k , ΣPathTransport→PathΣ _ _ ((funExt (trad-section g k ng)) , (squash₁ _ _)) }) Ang where diff --git a/Cubical.Algebra.DistLattice.Basis.html b/Cubical.Algebra.DistLattice.Basis.html index f6753095be..b7a66d33aa 100644 --- a/Cubical.Algebra.DistLattice.Basis.html +++ b/Cubical.Algebra.DistLattice.Basis.html @@ -73,8 +73,8 @@ , isBasisS .∧lClosed _ _ (snd x) (snd y) isSemilattice (snd (Basis→MeetSemilattice S isBasisS)) = makeIsSemilattice (isSetΣ is-set λ _ isProp→isSet (S _ .snd)) - _ _ _ Σ≡Prop _ S _ .snd) (∧lAssoc _ _ _)) - _ Σ≡Prop _ S _ .snd) (∧lRid _)) - _ _ Σ≡Prop _ S _ .snd) (∧lComm _ _)) - λ _ Σ≡Prop _ S _ .snd) (∧lIdem _) + _ _ _ Σ≡Prop _ S _ .snd) (∧lAssoc _ _ _)) + _ Σ≡Prop _ S _ .snd) (∧lRid _)) + _ _ Σ≡Prop _ S _ .snd) (∧lComm _ _)) + λ _ Σ≡Prop _ S _ .snd) (∧lIdem _) \ No newline at end of file diff --git a/Cubical.Algebra.GradedRing.DirectSumFun.html b/Cubical.Algebra.GradedRing.DirectSumFun.html index f6f7a72fef..d68605d5fc 100644 --- a/Cubical.Algebra.GradedRing.DirectSumFun.html +++ b/Cubical.Algebra.GradedRing.DirectSumFun.html @@ -132,7 +132,7 @@ ... | no ¬p = refl ⊕HIT→⊕Fun-pres1 : ⊕HIT→⊕Fun (base 0 1⋆) 1⊕Fun - ⊕HIT→⊕Fun-pres1 = ΣPathTransport→PathΣ _ _ + ⊕HIT→⊕Fun-pres1 = ΣPathTransport→PathΣ _ _ ((funExt n ⊕HIT→Fun-pres1 n)) , (squash₁ _ _)) ----------------------------------------------------------------------------- @@ -350,7 +350,7 @@ ⊕HIT→⊕Fun-pres-prodF : (x y : ⊕HIT G Gstr) ⊕HIT→⊕Fun (x prod y) ((⊕HIT→⊕Fun x) prodF (⊕HIT→⊕Fun y)) - ⊕HIT→⊕Fun-pres-prodF x y = ΣPathTransport→PathΣ _ _ + ⊕HIT→⊕Fun-pres-prodF x y = ΣPathTransport→PathΣ _ _ ((⊕HIT→Fun-pres-prodFun x y) , (squash₁ _ _)) diff --git a/Cubical.Algebra.GradedRing.Instances.CohomologyRing.html b/Cubical.Algebra.GradedRing.Instances.CohomologyRing.html index 1626145cfe..d095675043 100644 --- a/Cubical.Algebra.GradedRing.Instances.CohomologyRing.html +++ b/Cubical.Algebra.GradedRing.Instances.CohomologyRing.html @@ -41,9 +41,9 @@ _⌣_ {k} {l} 0ₕ-⌣ k l) {k} {l} ⌣-0ₕ k l) - _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _)))) ) - _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) - _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) + _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _)))) ) + _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) + _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) _ _ _ leftDistr-⌣ _ _ _ _ _) ( λ _ _ _ rightDistr-⌣ _ _ _ _ _) \ No newline at end of file diff --git a/Cubical.Algebra.GradedRing.Instances.CohomologyRingFun.html b/Cubical.Algebra.GradedRing.Instances.CohomologyRingFun.html index 574a729b4f..15d8e5adc3 100644 --- a/Cubical.Algebra.GradedRing.Instances.CohomologyRingFun.html +++ b/Cubical.Algebra.GradedRing.Instances.CohomologyRingFun.html @@ -40,9 +40,9 @@ _⌣_ {k} {l} 0ₕ-⌣ k l) {k} {l} ⌣-0ₕ k l) - _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) - _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) - _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) + _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) + _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) + _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) _ _ _ leftDistr-⌣ _ _ _ _ _) λ _ _ _ rightDistr-⌣ _ _ _ _ _ \ No newline at end of file diff --git a/Cubical.Algebra.GradedRing.Instances.TrivialGradedRing.html b/Cubical.Algebra.GradedRing.Instances.TrivialGradedRing.html index 0a846e2d46..b3ab022d0c 100644 --- a/Cubical.Algebra.GradedRing.Instances.TrivialGradedRing.html +++ b/Cubical.Algebra.GradedRing.Instances.TrivialGradedRing.html @@ -62,18 +62,18 @@ _≡_ {A = Σ[ k ] G k} (k Cubical.Data.Nat.+ (l Cubical.Data.Nat.+ m) , a ( b c)) (k Cubical.Data.Nat.+ l Cubical.Data.Nat.+ m , ( a b) c) - ⋆Assoc {zero} {zero} {zero} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _ ·Assoc _ _ _) - ⋆Assoc {zero} {zero} {suc m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) - ⋆Assoc {zero} {suc l} {m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) - ⋆Assoc {suc k} {l} {m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) + ⋆Assoc {zero} {zero} {zero} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _ ·Assoc _ _ _) + ⋆Assoc {zero} {zero} {suc m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) + ⋆Assoc {zero} {suc l} {m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) + ⋆Assoc {suc k} {l} {m} a b c = ΣPathTransport→PathΣ _ _ (+-assoc _ _ _ , transportRefl _) ⋆IdR : {k : } (a : G k) _≡_ {A = Σ[ k ] G k} (k Cubical.Data.Nat.+ 0 , a 1r) (k , a) - ⋆IdR {zero} a = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _ ·IdR _)) - ⋆IdR {suc k} a = ΣPathTransport→PathΣ _ _ ((+-zero _) , (transportRefl _)) + ⋆IdR {zero} a = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _ ·IdR _)) + ⋆IdR {suc k} a = ΣPathTransport→PathΣ _ _ ((+-zero _) , (transportRefl _)) ⋆IdL : {l : } (b : G l) _≡_ {A = Σ[ k ] G k} (l , 1r b) (l , b) - ⋆IdL {zero} b = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _ ·IdL _)) - ⋆IdL {suc l} b = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _)) + ⋆IdL {zero} b = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _ ·IdL _)) + ⋆IdL {suc l} b = ΣPathTransport→PathΣ _ _ (refl , (transportRefl _)) ⋆DistR+ : {k l : } (a : G k) (b c : G l) a (Gstr l .AbGroupStr._+_ b c) Gstr (k Cubical.Data.Nat.+ l) .AbGroupStr._+_ ( a b) ( a c) diff --git a/Cubical.Algebra.Group.Abelianization.AbelianizationAsCoeq.html b/Cubical.Algebra.Group.Abelianization.AbelianizationAsCoeq.html index 9d376145a1..6256d3a132 100644 --- a/Cubical.Algebra.Group.Abelianization.AbelianizationAsCoeq.html +++ b/Cubical.Algebra.Group.Abelianization.AbelianizationAsCoeq.html @@ -241,7 +241,7 @@ (f : GroupHom G (AbGroup→Group H)) (compGroupHom incAbAsGroupHom (inducedHom H f) f) commutativity H f = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x q x i) where q : (x : fst G) @@ -254,7 +254,7 @@ (p : compGroupHom incAbAsGroupHom g f) (g inducedHom H f) uniqueness H f g p = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x q x i) where @@ -375,7 +375,7 @@ (GroupIso→GroupHom h) (GroupIso→GroupHom (invGroupIso h))) idGroupHom leftInvGroupHom = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x r x i) @@ -411,7 +411,7 @@ (HITηAsGroupHom G) (GroupIso→GroupHom (invGroupIso h)) incAbAsGroupHom isocomm = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x q x i) diff --git a/Cubical.Algebra.Group.Abelianization.Properties.html b/Cubical.Algebra.Group.Abelianization.Properties.html index 6093ece2a3..41c48ab491 100644 --- a/Cubical.Algebra.Group.Abelianization.Properties.html +++ b/Cubical.Algebra.Group.Abelianization.Properties.html @@ -276,7 +276,7 @@ (f : GroupHom G (AbGroup→Group H)) (compGroupHom ηAsGroupHom (inducedHom H f) f) commutativity H f = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x q x i) where q : (x : fst G) @@ -289,7 +289,7 @@ (p : compGroupHom ηAsGroupHom g f) (g inducedHom H f) uniqueness H f g p = - Σ≡Prop + Σ≡Prop _ isPropIsGroupHom _ _) i x q x i) where diff --git a/Cubical.Algebra.Group.GroupPath.html b/Cubical.Algebra.Group.GroupPath.html index 7bf5ffb696..45902e2c9d 100644 --- a/Cubical.Algebra.Group.GroupPath.html +++ b/Cubical.Algebra.Group.GroupPath.html @@ -160,7 +160,7 @@ ∙∙ transportTransport⁻ (ua (Group≡ G H)) q where helper : transport (sym (ua (Group≡ G H))) p transport (sym (ua (Group≡ G H))) q - helper = Σ≡Prop + helper = Σ≡Prop _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd H)) _ _) λ _ isPropΣ (isOfHLevelPathP' 1 (isSetΠ2 λ _ _ is-set (snd H)) _ _) @@ -191,8 +191,8 @@ where lem : transport j GroupEquiv G (GroupPath G H .fst e (~ j))) e idGroupEquiv - lem = Σ≡Prop _ isPropIsGroupHom _ _) - (Σ≡Prop _ isPropIsEquiv _) + lem = Σ≡Prop _ isPropIsGroupHom _ _) + (Σ≡Prop _ isPropIsEquiv _) (funExt λ x i fst (fst (fst e .snd .equiv-proof (transportRefl (fst (fst e) (transportRefl x i)) i)))) retEq (fst e) x)) diff --git a/Cubical.Algebra.Group.Instances.IntMod.html b/Cubical.Algebra.Group.Instances.IntMod.html index 03321b17e2..ce8f3935c9 100644 --- a/Cubical.Algebra.Group.Instances.IntMod.html +++ b/Cubical.Algebra.Group.Instances.IntMod.html @@ -57,9 +57,9 @@ Iso.inv (fst Bool≅ℤGroup/2) (suc (suc x) , p) = ⊥.rec (¬-<-zero (predℕ-≤-predℕ (predℕ-≤-predℕ p))) Iso.rightInv (fst Bool≅ℤGroup/2) (zero , p) = - Σ≡Prop _ isProp≤) refl + Σ≡Prop _ isProp≤) refl Iso.rightInv (fst Bool≅ℤGroup/2) (suc zero , p) = - Σ≡Prop _ isProp≤) refl + Σ≡Prop _ isProp≤) refl Iso.rightInv (fst Bool≅ℤGroup/2) (suc (suc x) , p) = ⊥.rec (¬-<-zero (predℕ-≤-predℕ (predℕ-≤-predℕ p))) Iso.leftInv (fst Bool≅ℤGroup/2) false = refl @@ -81,11 +81,11 @@ ℤ→Fin-presinv : (n : ) (x : ) ℤ→Fin n (- x) -ₘ ℤ→Fin n x ℤ→Fin-presinv n (pos zero) = - Σ≡Prop _ isProp≤) ((λ _ zero) sym (cong fst help)) + Σ≡Prop _ isProp≤) ((λ _ zero) sym (cong fst help)) where help : (-ₘ_ {n = n} 0) 0 help = GroupTheory.inv1g (ℤGroup/ (suc n)) -ℤ→Fin-presinv n (pos (suc x)) = Σ≡Prop _ isProp≤) refl +ℤ→Fin-presinv n (pos (suc x)) = Σ≡Prop _ isProp≤) refl ℤ→Fin-presinv n (negsuc x) = sym (GroupTheory.invInv (ℤGroup/ (suc n)) _) @@ -97,7 +97,7 @@ -ₘ1-id (suc n) = cong -ₘ_ (FinPathℕ ((1 mod suc (suc n)) , mod< (suc n) 1) 1 (modIndBase (suc n) 1 (n , +-comm n 2)) .snd) - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) ((+inductionBase (suc n) _ x _ ((suc (suc n)) x) mod (suc (suc n))) λ _ x x) 1 (n , (+-comm n 2))) @@ -111,7 +111,7 @@ suc-ₘ1 (suc n) y = i ((suc y mod suc (suc n)) , mod< (suc n) (suc y)) +ₘ (-ₘ1-id (suc n) i)) - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (cong (_mod (2 +ℕ n)) (cong (_+ℕ (suc n) mod (2 +ℕ n)) (mod+mod≡mod (suc (suc n)) 1 y)) @@ -168,12 +168,12 @@ +1case (pos zero) = sym (GroupStr.·IdR (snd (ℤGroup/ (suc n))) _) +1case (pos (suc y)) = cong (ℤ→Fin n) (+Comm 1 (pos (suc y))) - Σ≡Prop _ isProp≤) (mod+mod≡mod (suc n) 1 (suc y)) + Σ≡Prop _ isProp≤) (mod+mod≡mod (suc n) 1 (suc y)) +1case (negsuc zero) = - Σ≡Prop _ isProp≤) refl + Σ≡Prop _ isProp≤) refl sym (GroupStr.·InvR (snd (ℤGroup/ (suc n))) (modInd n 1 , mod< n 1)) +1case (negsuc (suc y)) = - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (cong fst (cong (ℤ→Fin n) (+Comm 1 (negsuc (suc y)))) ∙∙ cong fst (cong -ₘ_ (refl {x = suc y mod suc n , mod< n (suc y)})) ∙∙ cong fst (sym (1-ₘsuc n (suc y))) @@ -199,7 +199,7 @@ (modInd n 1 , mod< n 1) +ₘ (modInd n (suc x) , mod< n (suc x)) ℤ→Fin n (pos (suc (suc x))) lem x = - Σ≡Prop _ isProp≤) (sym (mod+mod≡mod (suc n) 1 (suc x))) + Σ≡Prop _ isProp≤) (sym (mod+mod≡mod (suc n) 1 (suc x))) -- ℤ/2 lemmas ℤ/2-elim : {} {A : Fin 2 Type } A 0 A 1 (x : _) A x diff --git a/Cubical.Algebra.Group.IsomorphismTheorems.html b/Cubical.Algebra.Group.IsomorphismTheorems.html index e93adf10a2..f0a9cebeca 100644 --- a/Cubical.Algebra.Group.IsomorphismTheorems.html +++ b/Cubical.Algebra.Group.IsomorphismTheorems.html @@ -74,7 +74,7 @@ f2 : G / kerNormalSubgroup imϕ f2 = recS imG.is-set y ϕ .fst y , y , refl ∣₁) - x y r Σ≡Prop _ squash₁) + x y r Σ≡Prop _ squash₁) (rem x y r)) where rem : (x y : G ) ϕ .fst (x G.· G.inv y) H.1g ϕ .fst x ϕ .fst y @@ -94,7 +94,7 @@ f21 : (x : imϕ ) f2 (f1 x) x f21 (x , hx) = elim {P = λ hx f2 (f1 (x , hx)) (x , hx)} _ imG.is-set _ _) - {(x , hx) Σ≡Prop _ squash₁) hx}) + {(x , hx) Σ≡Prop _ squash₁) hx}) hx f1-isHom : (x y : imϕ ) f1 (x imG.· y) f1 x kerG.· f1 y @@ -121,7 +121,7 @@ (uncurry h elim _ isPropΠ _ imG.is-set _ _)) (uncurry λ g y - λ inker Σ≡Prop _ squash₁) inker))) + λ inker Σ≡Prop _ squash₁) inker))) λ b map x (b , x ∣₁) , refl) (surj b)) where indHom : GroupHom imϕ H diff --git a/Cubical.Algebra.Group.MorphismProperties.html b/Cubical.Algebra.Group.MorphismProperties.html index c5b86ed9db..2a23d88fd1 100644 --- a/Cubical.Algebra.Group.MorphismProperties.html +++ b/Cubical.Algebra.Group.MorphismProperties.html @@ -157,7 +157,7 @@ isInjective→isContrKer : (f : GroupHom G H) isInjective f isContr (Ker f) fst (isInjective→isContrKer {G = G} f hf) = 1g (snd G) , f .snd .pres1 snd (isInjective→isContrKer {G = G} f hf) k = - Σ≡Prop (isPropIsInKer f) (sym (isInjective→isMono f hf (k .snd sym (f .snd .pres1)))) + Σ≡Prop (isPropIsInKer f) (sym (isInjective→isMono f hf (k .snd sym (f .snd .pres1)))) isContrKer→isInjective : (f : GroupHom G H) isContr (Ker f) isInjective f isContrKer→isInjective {G = G} f ((a , b) , c) x y = cong fst (sym (c (x , y)) rem) @@ -225,7 +225,7 @@ GroupEquivDirProd : {A : Group } {B : Group ℓ'} {C : Group ℓ''} {D : Group ℓ'''} GroupEquiv A C GroupEquiv B D GroupEquiv (DirProd A B) (DirProd C D) -fst (GroupEquivDirProd eq1 eq2) = ≃-× (fst eq1) (fst eq2) +fst (GroupEquivDirProd eq1 eq2) = ≃-× (fst eq1) (fst eq2) snd (GroupEquivDirProd eq1 eq2) = GroupHomDirProd (_ , eq1 .snd) (_ , eq2 .snd) .snd GroupEquiv≡ : {f g : GroupEquiv G H} fst f fst g f g @@ -294,7 +294,7 @@ helper : (b : _) isProp (Σ[ a G ] f a b) helper _ (a , ha) (b , hb) = - Σ≡Prop _ is-set (snd H) _ _) + Σ≡Prop _ is-set (snd H) _ _) (isInjective→isMono (fun i) (inj i) (ha sym hb) ) grIso : GroupIso G H diff --git a/Cubical.Algebra.Group.QuotientGroup.html b/Cubical.Algebra.Group.QuotientGroup.html index 54c978637f..70e48fd8d6 100644 --- a/Cubical.Algebra.Group.QuotientGroup.html +++ b/Cubical.Algebra.Group.QuotientGroup.html @@ -119,7 +119,7 @@ Code g = elim _ isSetHProp) a (g a) , is-set _ _) - λ a b r Σ≡Prop _ isPropIsProp) (cong (g ≡_) (contrH a b r)) + λ a b r Σ≡Prop _ isPropIsProp) (cong (g ≡_) (contrH a b r)) decode : (g : G) (x : G/H') [ g ] x Code g x .fst decode g x = J x _ Code g x .fst) refl diff --git a/Cubical.Algebra.Group.ZAction.html b/Cubical.Algebra.Group.ZAction.html index 8bf1376c23..3dd02f6e46 100644 --- a/Cubical.Algebra.Group.ZAction.html +++ b/Cubical.Algebra.Group.ZAction.html @@ -401,15 +401,15 @@ (e idGroupEquiv) (e negEquivℤ) characℤ≅ℤ e = ⊎-rec - p inl (Σ≡Prop _ isPropIsGroupHom _ _) - (Σ≡Prop _ isPropIsEquiv _) + p inl (Σ≡Prop _ isPropIsGroupHom _ _) + (Σ≡Prop _ isPropIsEquiv _) (funExt λ x cong (e .fst .fst) (·Comm 1 x) GroupHomℤ→ℤPres· (fst (fst e) , snd e) x 1 cong (x *_) p ·Comm x 1)))) - p inr (Σ≡Prop _ isPropIsGroupHom _ _) - (Σ≡Prop _ isPropIsEquiv _) + p inr (Σ≡Prop _ isPropIsGroupHom _ _) + (Σ≡Prop _ isPropIsEquiv _) (funExt λ x cong (fst (fst e)) (sym (ℤ.·IdR x)) GroupHomℤ→ℤPres· ((fst (fst e)) , (snd e)) x 1 @@ -458,7 +458,7 @@ -- Characterisation of ℤ→ℤ characGroupHomℤ : (e : GroupHom ℤGroup ℤGroup) e ℤHom (fst e (pos 1)) characGroupHomℤ e = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ { (pos n) lem n ; (negsuc n) presinv (snd e) (pos (suc n)) @@ -506,13 +506,13 @@ where lem : (x : ) ℤ→Fin n (pos (suc n) * x) 0 lem (pos x) = cong (ℤ→Fin n) (sym (pos· (suc n) x)) - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (cong (_mod (suc n)) (·-comm (suc n) x) zero-charac-gen (suc n) x) lem (negsuc x) = cong (ℤ→Fin n) (pos·negsuc (suc n) x cong -_ (sym (pos· (suc n) (suc x)))) - ∙∙ cong -ₘ_ (Σ≡Prop _ isProp≤) + ∙∙ cong -ₘ_ (Σ≡Prop _ isProp≤) (cong (_mod (suc n)) (·-comm (suc n) (suc x)) zero-charac-gen (suc n) (suc x))) ∙∙ GroupTheory.inv1g (ℤGroup/ (suc n)) @@ -545,7 +545,7 @@ ∙∙ cong -_ (cong pos (≡remainder+quotient (suc n) (suc x))))) ∣₁}) BijectionIso.surj (ℤHom→ℤ/im≅ℤ/im1 n p) x = [ pos (fst x) ] - , (Σ≡Prop _ isProp≤) (modIndBase n (fst x) (snd x))) ∣₁ + , (Σ≡Prop _ isProp≤) (modIndBase n (fst x) (snd x))) ∣₁ -- main result ℤ/imIso : (f : GroupHom ℤGroup ℤGroup) @@ -566,9 +566,9 @@ extendHom = compGroupHom f (fst (fst negEquivℤ) , snd negEquivℤ) lem1 : imℤHomSubGroup f imℤHomSubGroup extendHom - lem1 = Σ≡Prop _ isPropIsNormal _) - (Σ≡Prop _ isPropIsSubgroup _ _) - (funExt λ x Σ≡Prop _ isPropIsProp) + lem1 = Σ≡Prop _ isPropIsNormal _) + (Σ≡Prop _ isPropIsSubgroup _ _) + (funExt λ x Σ≡Prop _ isPropIsProp) (isoToPath (iso (Prop.map { (x , q) (- x) , cong -_ (presinv (snd f) x) GroupTheory.invInv ℤGroup (fst f x) @@ -587,9 +587,9 @@ private imf≡kerg : imℤHomSubGroup f kerNormalSubgroup g imf≡kerg = - Σ≡Prop _ isPropIsNormal _) - (Σ≡Prop _ isPropIsSubgroup _ _) - (funExt λ x Σ≡Prop _ isPropIsProp) + Σ≡Prop _ isPropIsNormal _) + (Σ≡Prop _ isPropIsSubgroup _ _) + (funExt λ x Σ≡Prop _ isPropIsProp) (isoToPath (isProp→Iso (isPropIsInIm _ _) diff --git a/Cubical.Algebra.Lattice.Properties.html b/Cubical.Algebra.Lattice.Properties.html index b01f5f5051..63d9059396 100644 --- a/Cubical.Algebra.Lattice.Properties.html +++ b/Cubical.Algebra.Lattice.Properties.html @@ -94,7 +94,7 @@ _ = snd M LatticeHom≡f : fst φ fst ψ φ ψ - LatticeHom≡f = Σ≡Prop λ f isPropIsLatticeHom _ f _ + LatticeHom≡f = Σ≡Prop λ f isPropIsLatticeHom _ f _ diff --git a/Cubical.Algebra.Matrix.CommRingCoefficient.html b/Cubical.Algebra.Matrix.CommRingCoefficient.html index b357d3696b..48e175cf2a 100644 --- a/Cubical.Algebra.Matrix.CommRingCoefficient.html +++ b/Cubical.Algebra.Matrix.CommRingCoefficient.html @@ -117,7 +117,7 @@ isInv {n = n} M = Σ[ N Mat n n ] isInv' M N isPropIsInv : (M : Mat n n) isProp (isInv M) - isPropIsInv M p q = Σ≡Prop _ isPropIsInv' M _) (invUniq M _ _ (p .snd) (q .snd)) + isPropIsInv M p q = Σ≡Prop _ isPropIsInv' M _) (invUniq M _ _ (p .snd) (q .snd)) isInv⋆ : {M M' : Mat n n} isInv M isInv M' isInv (M M') isInv⋆ (N , p) (N' , q) .fst = N' N diff --git a/Cubical.Algebra.Monoid.Submonoid.html b/Cubical.Algebra.Monoid.Submonoid.html index 9095736f2f..8f60e3df8e 100644 --- a/Cubical.Algebra.Monoid.Submonoid.html +++ b/Cubical.Algebra.Monoid.Submonoid.html @@ -28,9 +28,9 @@ ε' = ε , ε-closed _·'_ = λ where (m , m∈) (n , n∈) m · n , ·-closed m∈ n∈ is-setM' = isSetΣSndProp is-set (∈-isProp S) - ·Assoc' = λ x y z Σ≡Prop (∈-isProp S) (·Assoc (fst x) (fst y) (fst z)) - ·IdR' = λ x Σ≡Prop (∈-isProp S) (·IdR (fst x)) - ·IdL' = λ x Σ≡Prop (∈-isProp S) (·IdL (fst x)) + ·Assoc' = λ x y z Σ≡Prop (∈-isProp S) (·Assoc (fst x) (fst y) (fst z)) + ·IdR' = λ x Σ≡Prop (∈-isProp S) (·IdR (fst x)) + ·IdL' = λ x Σ≡Prop (∈-isProp S) (·IdL (fst x)) in makeMonoid ε' _·'_ is-setM' ·Assoc' ·IdR' ·IdL' module _ where diff --git a/Cubical.Algebra.OrderedCommMonoid.PropCompletion.html b/Cubical.Algebra.OrderedCommMonoid.PropCompletion.html index 4f8a253ca8..737a511c76 100644 --- a/Cubical.Algebra.OrderedCommMonoid.PropCompletion.html +++ b/Cubical.Algebra.OrderedCommMonoid.PropCompletion.html @@ -106,10 +106,10 @@ where seqPath : fst s fst l seqPath i n = - Σ≡Prop _ isPropIsProp) {u = fst s n} {v = fst l n} (pwPath n) i + Σ≡Prop _ isPropIsProp) {u = fst s n} {v = fst l n} (pwPath n) i path : s l - path = Σ≡Prop isPropUpwardClosed seqPath + path = Σ≡Prop isPropUpwardClosed seqPath pathFromImplications : (s l : M↑) ((n : fst M) typeAt n s typeAt n l) diff --git a/Cubical.Algebra.OrderedCommMonoid.Properties.html b/Cubical.Algebra.OrderedCommMonoid.Properties.html index 84715c692c..9de010d27e 100644 --- a/Cubical.Algebra.OrderedCommMonoid.Properties.html +++ b/Cubical.Algebra.OrderedCommMonoid.Properties.html @@ -49,7 +49,7 @@ x is-refl (fst x)) x y z is-trans (fst x) (fst y) (fst z)) x y x≤y y≤x - Σ≡Prop x snd (P x)) + Σ≡Prop x snd (P x)) (is-antisym (fst x) (fst y) (pres≤ x y x≤y) (pres≤ y x y≤x))) x y z x≤y MonotoneR (pres≤ x y x≤y)) λ x y z x≤y MonotoneL (pres≤ x y x≤y) diff --git a/Cubical.Algebra.Polynomials.UnivariateList.Base.html b/Cubical.Algebra.Polynomials.UnivariateList.Base.html index 7964387c93..7f678e0b1b 100644 --- a/Cubical.Algebra.Polynomials.UnivariateList.Base.html +++ b/Cubical.Algebra.Polynomials.UnivariateList.Base.html @@ -165,7 +165,7 @@ shiftPolyFunPrepends0 : (p : Poly R') shiftPolyFun (Poly→PolyFun p) Poly→PolyFun (0r p) shiftPolyFunPrepends0 p = - Σ≡Prop _ isPropPropTrunc) + Σ≡Prop _ isPropPropTrunc) λ {i zero 0r; i (suc n) fst (Poly→PolyFun p) n} ---------------------------------------------------- diff --git a/Cubical.Algebra.Polynomials.UnivariateList.Properties.html b/Cubical.Algebra.Polynomials.UnivariateList.Properties.html index ca84c0131a..27a37ef97c 100644 --- a/Cubical.Algebra.Polynomials.UnivariateList.Properties.html +++ b/Cubical.Algebra.Polynomials.UnivariateList.Properties.html @@ -661,7 +661,7 @@ p≡0 = p ≡⟨ sym (PolyFun→Poly→PolyFun p) PolyFun→Poly (Poly→PolyFun p) ≡⟨ cong PolyFun→Poly - (Poly→PolyFun p ≡⟨ ( Σ≡Prop (f : R) isPropPropTrunc) λ i n Funp≡0 n i) + (Poly→PolyFun p ≡⟨ ( Σ≡Prop (f : R) isPropPropTrunc) λ i n Funp≡0 n i) Poly→PolyFun [] ) PolyFun→Poly (Poly→PolyFun []) ≡⟨ PolyFun→Poly→PolyFun 0P 0P diff --git a/Cubical.Algebra.Ring.Base.html b/Cubical.Algebra.Ring.Base.html index ff1980de63..7754940f44 100644 --- a/Cubical.Algebra.Ring.Base.html +++ b/Cubical.Algebra.Ring.Base.html @@ -205,7 +205,7 @@ RingHomPathP R S T p φ ψ q = ΣPathP (q , isProp→PathP _ isPropIsRingHom _ _ _) _ _) RingHom≡ : {R : Ring } {S : Ring ℓ'} {φ ψ : RingHom R S} fst φ fst ψ φ ψ -RingHom≡ = Σ≡Prop λ f isPropIsRingHom _ f _ +RingHom≡ = Σ≡Prop λ f isPropIsRingHom _ f _ 𝒮ᴰ-Ring : DUARel (𝒮-Univ ) RingStr 𝒮ᴰ-Ring = diff --git a/Cubical.Algebra.Ring.DirectProd.html b/Cubical.Algebra.Ring.DirectProd.html index 832bb05d01..9081b6a08e 100644 --- a/Cubical.Algebra.Ring.DirectProd.html +++ b/Cubical.Algebra.Ring.DirectProd.html @@ -101,7 +101,7 @@ _·Y×Y'_ = _·_ (snd (DirectProd-Ring Yr Y'r)) re×re' : (re : RingEquiv Xr Yr) (re' : RingEquiv X'r Y'r) (X × X') (Y × Y') - re×re' re re' = ≃-× (fst re) (fst re') + re×re' re re' = ≃-× (fst re) (fst re') Coproduct-Equiv-12 : (re : RingEquiv Xr Yr) (re' : RingEquiv X'r Y'r) RingEquiv (DirectProd-Ring Xr X'r) (DirectProd-Ring Yr Y'r) diff --git a/Cubical.Algebra.Ring.Properties.html b/Cubical.Algebra.Ring.Properties.html index 48f7ffa89e..fb9aa8d5dc 100644 --- a/Cubical.Algebra.Ring.Properties.html +++ b/Cubical.Algebra.Ring.Properties.html @@ -296,7 +296,7 @@ ∙∙ transportTransport⁻ (ua (Ring≡ A B)) q where helper : transport (sym (ua (Ring≡ A B))) p transport (sym (ua (Ring≡ A B))) q - helper = Σ≡Prop + helper = Σ≡Prop _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) λ _ isPropΣ (isOfHLevelPathP' 1 (is-set (snd B)) _ _) diff --git a/Cubical.Algebra.Ring.Quotient.html b/Cubical.Algebra.Ring.Quotient.html index 66ba031073..14fa1ea11b 100644 --- a/Cubical.Algebra.Ring.Quotient.html +++ b/Cubical.Algebra.Ring.Quotient.html @@ -9,7 +9,7 @@ open import Cubical.Foundations.Powerset using (_∈_; _⊆_; ⊆-extensionality) -- \in, \sub= open import Cubical.Functions.Surjection -open import Cubical.Data.Sigma using (Σ≡Prop) +open import Cubical.Data.Sigma using (Σ≡Prop) open import Cubical.Relation.Binary @@ -320,6 +320,6 @@ kernel≡I : {R : Ring } (I : IdealsIn R) kernelIdeal (quotientHom R I) I -kernel≡I {R = R} I = Σ≡Prop (isPropIsIdeal R) (⊆-extensionality _ _ (ker⊆I , I⊆ker)) +kernel≡I {R = R} I = Σ≡Prop (isPropIsIdeal R) (⊆-extensionality _ _ (ker⊆I , I⊆ker)) where open idealIsKernel I \ No newline at end of file diff --git a/Cubical.Algebra.ZariskiLattice.StructureSheaf.html b/Cubical.Algebra.ZariskiLattice.StructureSheaf.html index 8adec51727..51b2173a62 100644 --- a/Cubical.Algebra.ZariskiLattice.StructureSheaf.html +++ b/Cubical.Algebra.ZariskiLattice.StructureSheaf.html @@ -150,7 +150,7 @@ ZariskiCat = DistLatticeCategory ZariskiLattice BOCat : Category - BOCat = ΣPropCat ZariskiCat BasicOpens + BOCat = ΣPropCat ZariskiCat BasicOpens private P : ZL Type _ @@ -168,42 +168,42 @@ open PreSheafFromUniversalProp ZariskiCat P 𝓕 uniqueHom - 𝓞ᴮ : Functor (BOCat ^op) CommRingsCategory - 𝓞ᴮ = funcComp (ForgetfulCommAlgebra→CommRing R') universalPShf + 𝓞ᴮ : Functor (BOCat ^op) CommRingsCategory + 𝓞ᴮ = funcComp (ForgetfulCommAlgebra→CommRing R') universalPShf -- The extension - open Functor + open Functor open PreSheafExtension ZariskiLattice CommRingsCategory LimitsCommRingsCategory BasicOpens - 𝓞 : Functor (ZariskiCat ^op) CommRingsCategory + 𝓞 : Functor (ZariskiCat ^op) CommRingsCategory 𝓞 = DLRan 𝓞ᴮ - toBasisPath : f 𝓞 .F-ob (D f) 𝓞ᴮ .F-ob (D f , f , refl ∣₁) - toBasisPath f = cong F F .F-ob (D f , f , refl ∣₁)) - (NatIsoToPath isUnivalentCommRingsCategory (DLRanNatIso 𝓞ᴮ)) + toBasisPath : f 𝓞 .F-ob (D f) 𝓞ᴮ .F-ob (D f , f , refl ∣₁) + toBasisPath f = cong F F .F-ob (D f , f , refl ∣₁)) + (NatIsoToPath isUnivalentCommRingsCategory (DLRanNatIso 𝓞ᴮ)) open InvertingElementsBase R' private Forgetful = ForgetfulCommAlgebra→CommRing R' {ℓ' = } - 𝓞ᴮOb≡ : f 𝓞ᴮ .F-ob (D f , f , refl ∣₁) R[1/ f ]AsCommRing - 𝓞ᴮOb≡ f = 𝓞ᴮ .F-ob (D f , f , refl ∣₁) ≡⟨ refl + 𝓞ᴮOb≡ : f 𝓞ᴮ .F-ob (D f , f , refl ∣₁) R[1/ f ]AsCommRing + 𝓞ᴮOb≡ f = 𝓞ᴮ .F-ob (D f , f , refl ∣₁) ≡⟨ refl -- all of this should hold by refl ----------------------------------------------------------- -- but somehow Agda takes forever to type-check if you don't use ----------------------------- -- the lemma funcCompOb≡ (which is just refl itself) or if you leave out --------------------- -- any of the intermediate refl steps -------------------------------------------------------- - (funcComp (ForgetfulCommAlgebra→CommRing R') universalPShf) .F-ob (D f , f , refl ∣₁) - ≡⟨ funcCompOb≡ Forgetful universalPShf _ - Forgetful .F-ob R[1/ f ]AsCommAlgebra + (funcComp (ForgetfulCommAlgebra→CommRing R') universalPShf) .F-ob (D f , f , refl ∣₁) + ≡⟨ funcCompOb≡ Forgetful universalPShf _ + Forgetful .F-ob R[1/ f ]AsCommAlgebra ≡⟨ refl ---------------------------------------------------------------------------------------------- CommAlgebra→CommRing R[1/ f ]AsCommAlgebra ≡⟨ invElCommAlgebra→CommRingPath f R[1/ f ]AsCommRing - baseSections : f 𝓞 .F-ob (D f) R[1/ f ]AsCommRing + baseSections : f 𝓞 .F-ob (D f) R[1/ f ]AsCommRing baseSections f = toBasisPath f 𝓞ᴮOb≡ f - globalSection : 𝓞 .F-ob (D 1r) R' + globalSection : 𝓞 .F-ob (D 1r) R' globalSection = baseSections 1r invertingUnitsPath _ _ (Units.RˣContainsOne _) @@ -219,15 +219,15 @@ λ φ _ isTerminal𝓞ᴮ[0] A .snd φ where -- D(0) is not 0 of the Zariski lattice by refl! - p : 𝓞ᴮ .F-ob (0l , isBO⋁α) R[1/ 0r ]AsCommRing - p = 𝓞ᴮ .F-ob (0l , isBO⋁α) - ≡⟨ cong (𝓞ᴮ .F-ob) (Σ≡Prop _ ∈ₚ-isProp _ _) + p : 𝓞ᴮ .F-ob (0l , isBO⋁α) R[1/ 0r ]AsCommRing + p = 𝓞ᴮ .F-ob (0l , isBO⋁α) + ≡⟨ cong (𝓞ᴮ .F-ob) (Σ≡Prop _ ∈ₚ-isProp _ _) (eq/ _ _ ((λ ()) , λ {zero 1 , ()) , 0LeftAnnihilates _ ∣₁ ∣₁ }))) - 𝓞ᴮ .F-ob (D 0r , 0r , refl ∣₁) + 𝓞ᴮ .F-ob (D 0r , 0r , refl ∣₁) ≡⟨ 𝓞ᴮOb≡ 0r R[1/ 0r ]AsCommRing - isTerminal𝓞ᴮ[0] : isTerminal CommRingsCategory (𝓞ᴮ .F-ob (0l , isBO⋁α)) + isTerminal𝓞ᴮ[0] : isTerminal CommRingsCategory (𝓞ᴮ .F-ob (0l , isBO⋁α)) isTerminal𝓞ᴮ[0] = subst (isTerminal CommRingsCategory) (sym (p R[1/0]≡0)) (TerminalCommRing .snd) @@ -362,25 +362,25 @@ pres+ (snd (coneOut /1/1Cone (pair i j i<j))) x y = cong [_] (≡-× (cong [_] (≡-× (cong₂ _+_ (useSolver x) (useSolver y)) - (Σ≡Prop _ isPropPropTrunc) (useSolver 1r)))) - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (useSolver 1r)))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) where useSolver : a a a · 1r · (1r · 1r) useSolver = solve R' pres· (snd (coneOut /1/1Cone (pair i j i<j))) x y = cong [_] (≡-× (cong [_] (≡-× refl - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r))))) - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) pres- (snd (coneOut /1/1Cone (pair i j i<j))) _ = refl coneOutCommutes /1/1Cone idAr = idCompCommRingHom _ coneOutCommutes /1/1Cone singPairL = RingHom≡ (funExt x cong [_] (≡-× (cong [_] (≡-× (cong (x ·_) (transportRefl 1r) ·IdR x) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) coneOutCommutes /1/1Cone singPairR = RingHom≡ (funExt x cong [_] (≡-× (cong [_] (≡-× (cong (x ·_) (transportRefl 1r) ·IdR x) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) open LimitFromCommRing R' R[1/ h ]AsCommRing (DLShfDiag (suc n) ) doubleLocDiag doubleLocCone /1/1Cone @@ -398,7 +398,7 @@ -- we only give the paths on objects -- R[1/h][1/fᵢ] ≡ [1/fᵢ] -- R[1/h][1/fᵢfⱼ] ≡ R[1/fᵢfⱼ] - algPaths : v F-ob algDiag v F-ob (funcComp universalPShf BDiag) v + algPaths : v F-ob algDiag v F-ob (funcComp universalPShf BDiag) v algPaths (sing i) = doubleLocCancel (f∈√⟨h⟩ i) where open DoubleAlgLoc R' h (f i) @@ -411,7 +411,7 @@ R[1/h][1/fᵢfⱼ]AsCommRingReg = InvertingElementsBase.R[1/_]AsCommRing R[1/ h ]AsCommRing ((f i · f j) /1) - path : toCommAlg ( F-ob doubleLocDiag (pair i j i<j) + path : toCommAlg ( F-ob doubleLocDiag (pair i j i<j) , coneOut /1/1Cone (pair i j i<j)) toCommAlg (R[1/h][1/fᵢfⱼ]AsCommRingReg , /1/1AsCommRingHom (f i · f j)) path = cong toCommAlg (ΣPathP (p , q)) @@ -419,15 +419,15 @@ eqInR[1/h] : (f i /1) · (f j /1) (f i · f j) /1 eqInR[1/h] = sym (/1AsCommRingHom .snd .pres· (f i) (f j)) - p : F-ob doubleLocDiag (pair i j i<j) R[1/h][1/fᵢfⱼ]AsCommRingReg + p : F-ob doubleLocDiag (pair i j i<j) R[1/h][1/fᵢfⱼ]AsCommRingReg p i = InvertingElementsBase.R[1/_]AsCommRing R[1/ h ]AsCommRing (eqInR[1/h] i) q : PathP i CommRingHom R' (p i)) (coneOut /1/1Cone (pair i j i<j)) (/1/1AsCommRingHom (f i · f j)) q = toPathP (RingHom≡ (funExt ( λ r cong [_] (≡-× (cong [_] (≡-× (transportRefl _ transportRefl r) - (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))) - (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))))) + (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))) + (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))))) -- our main result diff --git a/Cubical.Algebra.ZariskiLattice.StructureSheafPullback.html b/Cubical.Algebra.ZariskiLattice.StructureSheafPullback.html index 9e8aef953c..675a4df8f1 100644 --- a/Cubical.Algebra.ZariskiLattice.StructureSheafPullback.html +++ b/Cubical.Algebra.ZariskiLattice.StructureSheafPullback.html @@ -133,7 +133,7 @@ ZariskiCat = DistLatticeCategory ZariskiLattice BOCat : Category - BOCat = ΣPropCat ZariskiCat BasicOpens + BOCat = ΣPropCat ZariskiCat BasicOpens private P : ZL Type _ @@ -171,7 +171,7 @@ open PreSheafFromUniversalProp ZariskiCat P 𝓕 uniqueHom - BasisStructurePShf : Functor (BOCat ^op) (CommAlgebrasCategory R') + BasisStructurePShf : Functor (BOCat ^op) (CommAlgebrasCategory R') BasisStructurePShf = universalPShf @@ -182,10 +182,10 @@ -- only proof for weak notion of sheaf on a basis isSheafBasisStructurePShf : isDLBasisSheafPullback BasisStructurePShf fst isSheafBasisStructurePShf 0∈BO = subst (isTerminal (CommAlgebrasCategory R')) - (sym R[1/0]≡0 λ i F-ob (0z , canonical0∈BO≡0∈BO i)) + (sym R[1/0]≡0 λ i F-ob (0z , canonical0∈BO≡0∈BO i)) (TerminalCommAlgebra R' .snd) where - open Functor ⦃...⦄ + open Functor ⦃...⦄ instance _ = BasisStructurePShf @@ -237,15 +237,15 @@ -- write everything explicitly so things can type-check thePShfCospan : (a : Σ[ f R ] D f 𝔞) (b : Σ[ g R ] D g 𝔟) Cospan (CommAlgebrasCategory R') - Cospan.l (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob (𝔟 , g , Dg≡𝔟 ∣₁) - Cospan.m (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob + Cospan.l (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob (𝔟 , g , Dg≡𝔟 ∣₁) + Cospan.m (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob (𝔞 ∧z 𝔟 , basicOpensAreBasis .∧lClosed 𝔞 𝔟 f , Df≡𝔞 ∣₁ g , Dg≡𝔟 ∣₁) - Cospan.r (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob (𝔞 , f , Df≡𝔞 ∣₁) - Cospan.s₁ (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-hom + Cospan.r (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-ob (𝔞 , f , Df≡𝔞 ∣₁) + Cospan.s₁ (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-hom {x = (𝔟 , g , Dg≡𝔟 ∣₁)} {y = (𝔞 ∧z 𝔟 , basicOpensAreBasis .∧lClosed 𝔞 𝔟 f , Df≡𝔞 ∣₁ g , Dg≡𝔟 ∣₁)} (hom-∧₂ ZariskiLattice (CommAlgebrasCategory R' {ℓ' = }) 𝔞 𝔟) - Cospan.s₂ (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-hom + Cospan.s₂ (thePShfCospan (f , Df≡𝔞) (g , Dg≡𝔟)) = BasisStructurePShf .Functor.F-hom {x = (𝔞 , f , Df≡𝔞 ∣₁)} {y = (𝔞 ∧z 𝔟 , basicOpensAreBasis .∧lClosed 𝔞 𝔟 f , Df≡𝔞 ∣₁ g , Dg≡𝔟 ∣₁)} (hom-∧₁ ZariskiLattice (CommAlgebrasCategory R' {ℓ' = }) 𝔞 𝔟) @@ -373,14 +373,14 @@ pres1 (snd /1/1AsCommRingHomFG) = refl pres+ (snd /1/1AsCommRingHomFG) x y = cong [_] (≡-× (cong [_] (≡-× (cong₂ _+_ (useSolver x) (useSolver y)) - (Σ≡Prop _ isPropPropTrunc) (useSolver 1r)))) - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (useSolver 1r)))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) where useSolver : a a a · 1r · (1r · 1r) useSolver = solve R' pres· (snd /1/1AsCommRingHomFG) x y = cong [_] (≡-× (cong [_] (≡-× refl - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r))))) - (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (sym (·IdR 1r)))) pres- (snd /1/1AsCommRingHomFG) x = refl open Cospan @@ -395,14 +395,14 @@ isRHomR[1/h][1/f]→R[1/h][1/fg] : theRingCospan .s₂ ∘r /1/1AsCommRingHom f /1/1AsCommRingHomFG isRHomR[1/h][1/f]→R[1/h][1/fg] = RingHom≡ (funExt x cong [_] (≡-× (cong [_] (≡-× (cong (x ·_) (transportRefl 1r) ·IdR x) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) isRHomR[1/h][1/g]→R[1/h][1/fg] : theRingCospan .s₁ ∘r /1/1AsCommRingHom g /1/1AsCommRingHomFG isRHomR[1/h][1/g]→R[1/h][1/fg] = RingHom≡ (funExt x cong [_] (≡-× (cong [_] (≡-× (cong (x ·_) (transportRefl 1r) ·IdR x) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) - (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r)))) + (Σ≡Prop _ isPropPropTrunc) (cong (1r ·_) (transportRefl 1r) ·IdR 1r))))) open PullbackFromCommRing R' theRingCospan theRingPullback @@ -448,6 +448,6 @@ q : PathP i CommRingHom R' (p i)) /1/1AsCommRingHomFG (/1/1AsCommRingHom (f · g)) q = toPathP (RingHom≡ (funExt ( λ x cong [_] (≡-× (cong [_] (≡-× (transportRefl _ transportRefl x) - (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))) - (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))))) + (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))) + (Σ≡Prop _ isPropPropTrunc) (transportRefl 1r)))))) \ No newline at end of file diff --git a/Cubical.Algebra.ZariskiLattice.UniversalProperty.html b/Cubical.Algebra.ZariskiLattice.UniversalProperty.html index 301015d1fa..8e49bdad2e 100644 --- a/Cubical.Algebra.ZariskiLattice.UniversalProperty.html +++ b/Cubical.Algebra.ZariskiLattice.UniversalProperty.html @@ -277,7 +277,7 @@ χunique : (y : Σ[ χ' DistLatticeHom ZariskiLattice L' ] fst χ' D d) (χ , funExt χcomp) y - χunique (χ' , χ'∘D≡d) = Σ≡Prop _ isSetΠ _ isSetL) _ _) (LatticeHom≡f _ _ + χunique (χ' , χ'∘D≡d) = Σ≡Prop _ isSetΠ _ isSetL) _ _) (LatticeHom≡f _ _ (funExt (elimProp _ isSetL _ _) (uncurry uniqHelper)))) where uniqHelper : (n : ) (α : FinVec R n) fst χ [ n , α ] fst χ' [ n , α ] diff --git a/Cubical.Categories.Adjoint.html b/Cubical.Categories.Adjoint.html index 8aeb18d0e9..079c7dc937 100644 --- a/Cubical.Categories.Adjoint.html +++ b/Cubical.Categories.Adjoint.html @@ -4,19 +4,22 @@ module Cubical.Categories.Adjoint where open import Cubical.Foundations.Prelude -open import Cubical.Data.Sigma -open import Cubical.Categories.Category -open import Cubical.Categories.Functor -open import Cubical.Categories.NaturalTransformation -open import Cubical.Foundations.Isomorphism -open import Cubical.Foundations.Univalence +open import Cubical.Foundations.Equiv -open Functor +open import Cubical.Data.Sigma +open import Cubical.Categories.Category +open import Cubical.Categories.Functor +open import Cubical.Categories.Instances.Functors +open import Cubical.Categories.NaturalTransformation +open import Cubical.Foundations.Isomorphism +open import Cubical.Foundations.Univalence -open Iso -open Category +open Functor -{- +open Iso +open Category + +{- ============================================== Overview ============================================== @@ -27,11 +30,11 @@ equivalence. -} -private - variable - ℓC ℓC' ℓD ℓD' : Level +private + variable + ℓC ℓC' ℓD ℓD' : Level -{- +{- ============================================== Adjoint definitions ============================================== @@ -42,76 +45,195 @@ definition. -} -module UnitCounit {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (G : Functor D C) where - record TriangleIdentities - (η : 𝟙⟨ C (funcComp G F)) - (ε : (funcComp F G) 𝟙⟨ D ) - : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) - where - field - Δ₁ : c F η c ⋆⟨ D ε F c D .id - Δ₂ : d η G d ⋆⟨ C G ε d C .id - - -- Adjoint def 1: unit-counit - record _⊣_ : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where - field - -- unit - η : 𝟙⟨ C (funcComp G F) - -- counit - ε : (funcComp F G) 𝟙⟨ D - triangleIdentities : TriangleIdentities η ε - open TriangleIdentities triangleIdentities public - -module NaturalBijection where - -- Adjoint def 2: natural bijection - record _⊣_ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (G : Functor D C) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where - field - adjIso : {c d} Iso (D [ F c , d ]) (C [ c , G d ]) - - infix 40 _♭ - infix 40 _♯ - _♭ : {c d} (D [ F c , d ]) (C [ c , G d ]) - (_♭) {_} {_} = adjIso .fun - - _♯ : {c d} (C [ c , G d ]) (D [ F c , d ]) - (_♯) {_} {_} = adjIso .inv - - field - adjNatInD : {c : C .ob} {d d'} (f : D [ F c , d ]) (k : D [ d , d' ]) - (f ⋆⟨ D k) f ⋆⟨ C G k - - adjNatInC : {c' c d} (g : C [ c , G d ]) (h : C [ c' , c ]) - (h ⋆⟨ C g) F h ⋆⟨ D g - - adjNatInD' : {c : C .ob} {d d'} (g : C [ c , G d ]) (k : D [ d , d' ]) - g ⋆⟨ D k (g ⋆⟨ C G k ) - adjNatInD' {c} {d} {d'} g k = - g ⋆⟨ D k - ≡⟨ sym (adjIso .leftInv (g ⋆⟨ D k)) - ((g ⋆⟨ D k) ) - ≡⟨ cong _♯ (adjNatInD (g ) k) - ((g ) ⋆⟨ C G k ) - ≡⟨ cong _♯ (cong g' seq' C g' (G k )) (adjIso .rightInv g)) - (g ⋆⟨ C G k ) - - adjNatInC' : {c' c d} (f : D [ F c , d ]) (h : C [ c' , c ]) - h ⋆⟨ C (f ) (F h ⋆⟨ D f) - adjNatInC' {c'} {c} {d} f h = - h ⋆⟨ C (f ) - ≡⟨ sym (adjIso .rightInv (h ⋆⟨ C (f ))) - ((h ⋆⟨ C (f )) ) - ≡⟨ cong _♭ (adjNatInC (f ) h) - ((F h ⋆⟨ D (f ) ) ) - ≡⟨ cong _♭ (cong f' seq' D (F h ) f') (adjIso .leftInv f)) - (F h ⋆⟨ D f) - - isLeftAdjoint : {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) - isLeftAdjoint {C = C}{D} F = Σ[ G Functor D C ] F G - - isRightAdjoint : {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (G : Functor D C) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) - isRightAdjoint {C = C}{D} G = Σ[ F Functor C D ] F G - -{- +module UnitCounit {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (G : Functor D C) where + record TriangleIdentities + (η : 𝟙⟨ C (funcComp G F)) + (ε : (funcComp F G) 𝟙⟨ D ) + : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) + where + field + Δ₁ : c F η c ⋆⟨ D ε F c D .id + Δ₂ : d η G d ⋆⟨ C G ε d C .id + + -- Adjoint def 1: unit-counit + record _⊣_ : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + field + -- unit + η : 𝟙⟨ C (funcComp G F) + -- counit + ε : (funcComp F G) 𝟙⟨ D + triangleIdentities : TriangleIdentities η ε + open TriangleIdentities triangleIdentities public + + +private + variable + C : Category ℓC ℓC' + D : Category ℓC ℓC' + + +module _ {F : Functor C D} {G : Functor D C} where + open UnitCounit + open _⊣_ + open NatTrans + open TriangleIdentities + opositeAdjunction : (F G) ((G ^opF) (F ^opF)) + N-ob (η (opositeAdjunction x)) = N-ob (ε x) + N-hom (η (opositeAdjunction x)) f = sym (N-hom (ε x) f) + N-ob (ε (opositeAdjunction x)) = N-ob (η x) + N-hom (ε (opositeAdjunction x)) f = sym (N-hom (η x) f) + Δ₁ (triangleIdentities (opositeAdjunction x)) = + Δ₂ (triangleIdentities x) + Δ₂ (triangleIdentities (opositeAdjunction x)) = + Δ₁ (triangleIdentities x) + + Iso⊣^opF : Iso (F G) ((G ^opF) (F ^opF)) + fun Iso⊣^opF = opositeAdjunction + inv Iso⊣^opF = _ + rightInv Iso⊣^opF _ = refl + leftInv Iso⊣^opF _ = refl + +private + variable + F F' : Functor C D + G G' : Functor D C + + +module AdjointUniqeUpToNatIso where + open UnitCounit + module Left + (F⊣G : _⊣_ {D = D} F G) + (F'⊣G : F' G) where + open NatTrans + + private + variable + H H' : Functor C D + + _D⋆_ = seq' D + + m : (H⊣G : H G) (H'⊣G : H' G) + {x} D [ H x , H' x ] + m {H = H} H⊣G H'⊣G = + H (H'⊣G .η) _ ⋆⟨ D (H⊣G .ε) _ where open _⊣_ + + private + s : (H⊣G : H G) (H'⊣G : H' G) {x} + seq' D (m H'⊣G H⊣G {x}) (m H⊣G H'⊣G {x}) + D .id + s {H = H} {H' = H'} H⊣G H'⊣G = by-N-homs by-Δs + where + open _⊣_ H⊣G using (η ; Δ₂) + open _⊣_ H'⊣G using (ε ; Δ₁) + by-N-homs = + AssocCong₂⋆R {C = D} _ + (AssocCong₂⋆L {C = D} (sym (N-hom ε _)) _) + cong₂ _D⋆_ + (sym (F-seq H' _ _) + ∙∙ cong (H' ⟪_⟫) ((sym (N-hom η _))) + ∙∙ F-seq H' _ _) + (sym (N-hom ε _)) + + by-Δs = + ⋆Assoc D _ _ _ + ∙∙ cong (H' _ D⋆_) + (sym (⋆Assoc D _ _ _) + cong (_D⋆ ε _ ) + ( sym (F-seq H' _ _) + ∙∙ cong (H' ⟪_⟫) (Δ₂ (H' _ )) + ∙∙ F-id H') + ⋆IdL D _) + ∙∙ Δ₁ _ + + open NatIso + open isIso + + F≅ᶜF' : F ≅ᶜ F' + N-ob (trans F≅ᶜF') _ = _ + N-hom (trans F≅ᶜF') _ = + sym (⋆Assoc D _ _ _) + ∙∙ cong (_D⋆ (F⊣G .ε) _ ) + (sym (F-seq F _ _) + ∙∙ cong (F ⟪_⟫) (N-hom (F'⊣G .η) _) + ∙∙ (F-seq F _ _)) + ∙∙ AssocCong₂⋆R {C = D} _ (N-hom (F⊣G .ε) _) + where open _⊣_ + inv (nIso F≅ᶜF' _) = _ + sec (nIso F≅ᶜF' _) = s F⊣G F'⊣G + ret (nIso F≅ᶜF' _) = s F'⊣G F⊣G + + F≡F' : isUnivalent D F F' + F≡F' univD = + isUnivalent.CatIsoToPath + (isUnivalentFUNCTOR _ _ univD) + (NatIso→FUNCTORIso _ _ F≅ᶜF') + + module Right (F⊣G : F UnitCounit.⊣ G) + (F⊣G' : F UnitCounit.⊣ G') where + + G≅ᶜG' : G ≅ᶜ G' + G≅ᶜG' = Iso.inv congNatIso^opFiso + (Left.F≅ᶜF' (opositeAdjunction F⊣G') + (opositeAdjunction F⊣G)) + + open NatIso + + G≡G' : isUnivalent _ G G' + G≡G' univC = + isUnivalent.CatIsoToPath + (isUnivalentFUNCTOR _ _ univC) + (NatIso→FUNCTORIso _ _ G≅ᶜG') + +module NaturalBijection where + -- Adjoint def 2: natural bijection + record _⊣_ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (G : Functor D C) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + field + adjIso : {c d} Iso (D [ F c , d ]) (C [ c , G d ]) + + infix 40 _♭ + infix 40 _♯ + _♭ : {c d} (D [ F c , d ]) (C [ c , G d ]) + (_♭) {_} {_} = adjIso .fun + + _♯ : {c d} (C [ c , G d ]) (D [ F c , d ]) + (_♯) {_} {_} = adjIso .inv + + field + adjNatInD : {c : C .ob} {d d'} (f : D [ F c , d ]) (k : D [ d , d' ]) + (f ⋆⟨ D k) f ⋆⟨ C G k + + adjNatInC : {c' c d} (g : C [ c , G d ]) (h : C [ c' , c ]) + (h ⋆⟨ C g) F h ⋆⟨ D g + + adjNatInD' : {c : C .ob} {d d'} (g : C [ c , G d ]) (k : D [ d , d' ]) + g ⋆⟨ D k (g ⋆⟨ C G k ) + adjNatInD' {c} {d} {d'} g k = + g ⋆⟨ D k + ≡⟨ sym (adjIso .leftInv (g ⋆⟨ D k)) + ((g ⋆⟨ D k) ) + ≡⟨ cong _♯ (adjNatInD (g ) k) + ((g ) ⋆⟨ C G k ) + ≡⟨ cong _♯ (cong g' seq' C g' (G k )) (adjIso .rightInv g)) + (g ⋆⟨ C G k ) + + adjNatInC' : {c' c d} (f : D [ F c , d ]) (h : C [ c' , c ]) + h ⋆⟨ C (f ) (F h ⋆⟨ D f) + adjNatInC' {c'} {c} {d} f h = + h ⋆⟨ C (f ) + ≡⟨ sym (adjIso .rightInv (h ⋆⟨ C (f ))) + ((h ⋆⟨ C (f )) ) + ≡⟨ cong _♭ (adjNatInC (f ) h) + ((F h ⋆⟨ D (f ) ) ) + ≡⟨ cong _♭ (cong f' seq' D (F h ) f') (adjIso .leftInv f)) + (F h ⋆⟨ D f) + + isLeftAdjoint : {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) + isLeftAdjoint {C = C}{D} F = Σ[ G Functor D C ] F G + + isRightAdjoint : {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (G : Functor D C) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) + isRightAdjoint {C = C}{D} G = Σ[ F Functor C D ] F G + +{- ============================================== Proofs of equivalence ============================================== @@ -123,160 +245,160 @@ The second unnamed module does the reverse. -} -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (G : Functor D C) where - open UnitCounit - open NaturalBijection renaming (_⊣_ to _⊣²_) - module _ (adj : F ⊣² G) where - open _⊣²_ adj - open _⊣_ - - -- Naturality condition implies that a commutative square in C - -- appears iff the transpose in D is commutative as well - -- Used in adj'→adj - adjNat' : {c c' d d'} {f : D [ F c , d ]} {k : D [ d , d' ]} - {h : C [ c , c' ]} {g : C [ c' , G d' ]} - -- commutativity of squares is iff - ((f ⋆⟨ D k F h ⋆⟨ D g ) (f ⋆⟨ C G k h ⋆⟨ C g)) - × ((f ⋆⟨ C G k h ⋆⟨ C g) (f ⋆⟨ D k F h ⋆⟨ D g )) - adjNat' {c} {c'} {d} {d'} {f} {k} {h} {g} = D→C , C→D - where - D→C : (f ⋆⟨ D k F h ⋆⟨ D g ) (f ⋆⟨ C G k h ⋆⟨ C g) - D→C eq = f ⋆⟨ C G k - ≡⟨ sym (adjNatInD _ _) - ((f ⋆⟨ D k) ) - ≡⟨ cong _♭ eq - (F h ⋆⟨ D g ) - ≡⟨ sym (cong _♭ (adjNatInC _ _)) - (h ⋆⟨ C g) - ≡⟨ adjIso .rightInv _ - h ⋆⟨ C g - - C→D : (f ⋆⟨ C G k h ⋆⟨ C g) (f ⋆⟨ D k F h ⋆⟨ D g ) - C→D eq = f ⋆⟨ D k - ≡⟨ sym (adjIso .leftInv _) - (f ⋆⟨ D k) - ≡⟨ cong _♯ (adjNatInD _ _) - (f ⋆⟨ C G k ) - ≡⟨ cong _♯ eq - (h ⋆⟨ C g) - ≡⟨ adjNatInC _ _ - F h ⋆⟨ D g - - - open NatTrans - - -- note : had to make this record syntax because termination checker was complaining - -- due to referencing η and ε from the definitions of Δs - adj'→adj : F G - adj'→adj = record - { η = η' - ; ε = ε' - ; triangleIdentities = record - {Δ₁ = Δ₁' - ; Δ₂ = Δ₂' }} - - where - -- ETA - - -- trivial commutative diagram between identities in D - commInD : {x y} (f : C [ x , y ]) D .id ⋆⟨ D F f F f ⋆⟨ D D .id - commInD f = (D .⋆IdL _) sym (D .⋆IdR _) - - sharpen1 : {x y} (f : C [ x , y ]) F f ⋆⟨ D D .id F f ⋆⟨ D D .id - sharpen1 f = cong v F f ⋆⟨ D v) (sym (adjIso .leftInv _)) - - η' : 𝟙⟨ C G ∘F F - η' .N-ob x = D .id - η' .N-hom f = sym (fst (adjNat') (commInD f sharpen1 f)) - - -- EPSILON - - -- trivial commutative diagram between identities in C - commInC : {x y} (g : D [ x , y ]) C .id ⋆⟨ C G g G g ⋆⟨ C C .id - commInC g = (C .⋆IdL _) sym (C .⋆IdR _) - - sharpen2 : {x y} (g : D [ x , y ]) C .id ⋆⟨ C G g C .id ⋆⟨ C G g - sharpen2 g = cong v v ⋆⟨ C G g ) (adjIso .rightInv _) - - ε' : F ∘F G 𝟙⟨ D - ε' .N-ob x = C .id - ε' .N-hom g = sym (snd adjNat' (sharpen2 g commInC g)) - - -- DELTA 1 - - Δ₁' : c F η' c ⋆⟨ D ε' F c D .id - Δ₁' c = - F η' c ⋆⟨ D ε' F c - ≡⟨ sym (snd adjNat' (cong v (η' c ) ⋆⟨ C v) (G .F-id))) - D .id ⋆⟨ D D .id - ≡⟨ D .⋆IdL _ - D .id - - - -- DELTA 2 - - Δ₂' : d η' G d ⋆⟨ C G ε' d C .id - Δ₂' d = - (η' G d ) ⋆⟨ C (G ε' d ) - ≡⟨ fst adjNat' (cong v v ⋆⟨ D (ε' d )) (sym (F .F-id))) - C .id ⋆⟨ C C .id - ≡⟨ C .⋆IdL _ - C .id - - - - module _ (adj : F G) where - open _⊣_ adj - open _⊣²_ - open NatTrans - - adj→adj' : F ⊣² G - -- ∀ {c d} → Iso (D [ F ⟅ c ⟆ , d ]) (C [ c , G ⟅ d ⟆ ]) - -- takes f to Gf precomposed with the unit - adj→adj' .adjIso {c = c} .fun f = η c ⋆⟨ C G f - -- takes g to Fg postcomposed with the counit - adj→adj' .adjIso {d = d} .inv g = F g ⋆⟨ D ε d - -- invertibility follows from the triangle identities - adj→adj' .adjIso {c = c} {d} .rightInv g - = η c ⋆⟨ C G F g ⋆⟨ D ε d - ≡⟨ cong v η c ⋆⟨ C v) (G .F-seq _ _) - η c ⋆⟨ C (G F g ⋆⟨ C G ε d ) - ≡⟨ sym (C .⋆Assoc _ _ _) - η c ⋆⟨ C G F g ⋆⟨ C G ε d - -- apply naturality - ≡⟨ rCatWhisker {C = C} _ _ _ natu - (g ⋆⟨ C η G d ) ⋆⟨ C G ε d - ≡⟨ C .⋆Assoc _ _ _ - g ⋆⟨ C (η G d ⋆⟨ C G ε d ) - ≡⟨ lCatWhisker {C = C} _ _ _ (Δ₂ d) - g ⋆⟨ C C .id - ≡⟨ C .⋆IdR _ - g - - where - natu : η c ⋆⟨ C G F g g ⋆⟨ C η G d - natu = sym (η .N-hom _) - adj→adj' .adjIso {c = c} {d} .leftInv f - = F η c ⋆⟨ C G f ⋆⟨ D ε d - ≡⟨ cong v v ⋆⟨ D ε d ) (F .F-seq _ _) - F η c ⋆⟨ D F G f ⋆⟨ D ε d - ≡⟨ D .⋆Assoc _ _ _ - F η c ⋆⟨ D (F G f ⋆⟨ D ε d ) - -- apply naturality - ≡⟨ lCatWhisker {C = D} _ _ _ natu - F η c ⋆⟨ D (ε F c ⋆⟨ D f) - ≡⟨ sym (D .⋆Assoc _ _ _) - F η c ⋆⟨ D ε F c ⋆⟨ D f - -- apply triangle identity - ≡⟨ rCatWhisker {C = D} _ _ _ (Δ₁ c) - D .id ⋆⟨ D f - ≡⟨ D .⋆IdL _ - f - - where - natu : F G f ⋆⟨ D ε d ε F c ⋆⟨ D f - natu = ε .N-hom _ - -- follows directly from functoriality - adj→adj' .adjNatInD {c = c} f k = cong v η c ⋆⟨ C v) (G .F-seq _ _) (sym (C .⋆Assoc _ _ _)) - adj→adj' .adjNatInC {d = d} g h = cong v v ⋆⟨ D ε d ) (F .F-seq _ _) D .⋆Assoc _ _ _ +module _ (F : Functor C D) (G : Functor D C) where + open UnitCounit + open NaturalBijection renaming (_⊣_ to _⊣²_) + module _ (adj : F ⊣² G) where + open _⊣²_ adj + open _⊣_ + + -- Naturality condition implies that a commutative square in C + -- appears iff the transpose in D is commutative as well + -- Used in adj'→adj + adjNat' : {c c' d d'} {f : D [ F c , d ]} {k : D [ d , d' ]} + {h : C [ c , c' ]} {g : C [ c' , G d' ]} + -- commutativity of squares is iff + ((f ⋆⟨ D k F h ⋆⟨ D g ) (f ⋆⟨ C G k h ⋆⟨ C g)) + × ((f ⋆⟨ C G k h ⋆⟨ C g) (f ⋆⟨ D k F h ⋆⟨ D g )) + adjNat' {c} {c'} {d} {d'} {f} {k} {h} {g} = D→C , C→D + where + D→C : (f ⋆⟨ D k F h ⋆⟨ D g ) (f ⋆⟨ C G k h ⋆⟨ C g) + D→C eq = f ⋆⟨ C G k + ≡⟨ sym (adjNatInD _ _) + ((f ⋆⟨ D k) ) + ≡⟨ cong _♭ eq + (F h ⋆⟨ D g ) + ≡⟨ sym (cong _♭ (adjNatInC _ _)) + (h ⋆⟨ C g) + ≡⟨ adjIso .rightInv _ + h ⋆⟨ C g + + C→D : (f ⋆⟨ C G k h ⋆⟨ C g) (f ⋆⟨ D k F h ⋆⟨ D g ) + C→D eq = f ⋆⟨ D k + ≡⟨ sym (adjIso .leftInv _) + (f ⋆⟨ D k) + ≡⟨ cong _♯ (adjNatInD _ _) + (f ⋆⟨ C G k ) + ≡⟨ cong _♯ eq + (h ⋆⟨ C g) + ≡⟨ adjNatInC _ _ + F h ⋆⟨ D g + + + open NatTrans + + -- note : had to make this record syntax because termination checker was complaining + -- due to referencing η and ε from the definitions of Δs + adj'→adj : F G + adj'→adj = record + { η = η' + ; ε = ε' + ; triangleIdentities = record + {Δ₁ = Δ₁' + ; Δ₂ = Δ₂' }} + + where + -- ETA + + -- trivial commutative diagram between identities in D + commInD : {x y} (f : C [ x , y ]) D .id ⋆⟨ D F f F f ⋆⟨ D D .id + commInD f = (D .⋆IdL _) sym (D .⋆IdR _) + + sharpen1 : {x y} (f : C [ x , y ]) F f ⋆⟨ D D .id F f ⋆⟨ D D .id + sharpen1 f = cong v F f ⋆⟨ D v) (sym (adjIso .leftInv _)) + + η' : 𝟙⟨ C G ∘F F + η' .N-ob x = D .id + η' .N-hom f = sym (fst (adjNat') (commInD f sharpen1 f)) + + -- EPSILON + + -- trivial commutative diagram between identities in C + commInC : {x y} (g : D [ x , y ]) C .id ⋆⟨ C G g G g ⋆⟨ C C .id + commInC g = (C .⋆IdL _) sym (C .⋆IdR _) + + sharpen2 : {x y} (g : D [ x , y ]) C .id ⋆⟨ C G g C .id ⋆⟨ C G g + sharpen2 g = cong v v ⋆⟨ C G g ) (adjIso .rightInv _) + + ε' : F ∘F G 𝟙⟨ D + ε' .N-ob x = C .id + ε' .N-hom g = sym (snd adjNat' (sharpen2 g commInC g)) + + -- DELTA 1 + + Δ₁' : c F η' c ⋆⟨ D ε' F c D .id + Δ₁' c = + F η' c ⋆⟨ D ε' F c + ≡⟨ sym (snd adjNat' (cong v (η' c ) ⋆⟨ C v) (G .F-id))) + D .id ⋆⟨ D D .id + ≡⟨ D .⋆IdL _ + D .id + + + -- DELTA 2 + + Δ₂' : d η' G d ⋆⟨ C G ε' d C .id + Δ₂' d = + (η' G d ) ⋆⟨ C (G ε' d ) + ≡⟨ fst adjNat' (cong v v ⋆⟨ D (ε' d )) (sym (F .F-id))) + C .id ⋆⟨ C C .id + ≡⟨ C .⋆IdL _ + C .id + + + + module _ (adj : F G) where + open _⊣_ adj + open _⊣²_ + open NatTrans + + adj→adj' : F ⊣² G + -- ∀ {c d} → Iso (D [ F ⟅ c ⟆ , d ]) (C [ c , G ⟅ d ⟆ ]) + -- takes f to Gf precomposed with the unit + adj→adj' .adjIso {c = c} .fun f = η c ⋆⟨ C G f + -- takes g to Fg postcomposed with the counit + adj→adj' .adjIso {d = d} .inv g = F g ⋆⟨ D ε d + -- invertibility follows from the triangle identities + adj→adj' .adjIso {c = c} {d} .rightInv g + = η c ⋆⟨ C G F g ⋆⟨ D ε d + ≡⟨ cong v η c ⋆⟨ C v) (G .F-seq _ _) + η c ⋆⟨ C (G F g ⋆⟨ C G ε d ) + ≡⟨ sym (C .⋆Assoc _ _ _) + η c ⋆⟨ C G F g ⋆⟨ C G ε d + -- apply naturality + ≡⟨ rCatWhisker {C = C} _ _ _ natu + (g ⋆⟨ C η G d ) ⋆⟨ C G ε d + ≡⟨ C .⋆Assoc _ _ _ + g ⋆⟨ C (η G d ⋆⟨ C G ε d ) + ≡⟨ lCatWhisker {C = C} _ _ _ (Δ₂ d) + g ⋆⟨ C C .id + ≡⟨ C .⋆IdR _ + g + + where + natu : η c ⋆⟨ C G F g g ⋆⟨ C η G d + natu = sym (η .N-hom _) + adj→adj' .adjIso {c = c} {d} .leftInv f + = F η c ⋆⟨ C G f ⋆⟨ D ε d + ≡⟨ cong v v ⋆⟨ D ε d ) (F .F-seq _ _) + F η c ⋆⟨ D F G f ⋆⟨ D ε d + ≡⟨ D .⋆Assoc _ _ _ + F η c ⋆⟨ D (F G f ⋆⟨ D ε d ) + -- apply naturality + ≡⟨ lCatWhisker {C = D} _ _ _ natu + F η c ⋆⟨ D (ε F c ⋆⟨ D f) + ≡⟨ sym (D .⋆Assoc _ _ _) + F η c ⋆⟨ D ε F c ⋆⟨ D f + -- apply triangle identity + ≡⟨ rCatWhisker {C = D} _ _ _ (Δ₁ c) + D .id ⋆⟨ D f + ≡⟨ D .⋆IdL _ + f + + where + natu : F G f ⋆⟨ D ε d ε F c ⋆⟨ D f + natu = ε .N-hom _ + -- follows directly from functoriality + adj→adj' .adjNatInD {c = c} f k = cong v η c ⋆⟨ C v) (G .F-seq _ _) (sym (C .⋆Assoc _ _ _)) + adj→adj' .adjNatInC {d = d} g h = cong v v ⋆⟨ D ε d ) (F .F-seq _ _) D .⋆Assoc _ _ _ \ No newline at end of file diff --git a/Cubical.Categories.Category.Base.html b/Cubical.Categories.Category.Base.html index 65f1e64575..1163e412d1 100644 --- a/Cubical.Categories.Category.Base.html +++ b/Cubical.Categories.Category.Base.html @@ -83,7 +83,7 @@ CatIso C x y = Σ[ f C [ x , y ] ] isIso C f CatIso≡ : {C : Category ℓ'}{x y : C .ob}(f g : CatIso C x y) f .fst g .fst f g -CatIso≡ f g = Σ≡Prop isPropIsIso +CatIso≡ f g = Σ≡Prop isPropIsIso -- `constructor` of CatIso catiso : {C : Category ℓ'}{x y : C .ob} @@ -137,22 +137,21 @@ ⋆Assoc (C ^op) f g h = sym (C .⋆Assoc _ _ _) isSetHom (C ^op) = C .isSetHom - -ΣPropCat : (C : Category ℓ') (P : (ob C)) Category ℓ' -ob (ΣPropCat C P) = Σ[ x ob C ] x P -Hom[_,_] (ΣPropCat C P) x y = C [ fst x , fst y ] -id (ΣPropCat C P) = id C -_⋆_ (ΣPropCat C P) = _⋆_ C -⋆IdL (ΣPropCat C P) = ⋆IdL C -⋆IdR (ΣPropCat C P) = ⋆IdR C -⋆Assoc (ΣPropCat C P) = ⋆Assoc C -isSetHom (ΣPropCat C P) = isSetHom C - -isIsoΣPropCat : {C : Category ℓ'} {P : (ob C)} - {x y : ob C} (p : x P) (q : y P) - (f : C [ x , y ]) - isIso C f isIso (ΣPropCat C P) {x , p} {y , q} f -inv (isIsoΣPropCat p q f isIsoF) = isIsoF .inv -sec (isIsoΣPropCat p q f isIsoF) = isIsoF .sec -ret (isIsoΣPropCat p q f isIsoF) = isIsoF .ret +ΣPropCat : (C : Category ℓ') (P : (ob C)) Category ℓ' +ob (ΣPropCat C P) = Σ[ x ob C ] x P +Hom[_,_] (ΣPropCat C P) x y = C [ fst x , fst y ] +id (ΣPropCat C P) = id C +_⋆_ (ΣPropCat C P) = _⋆_ C +⋆IdL (ΣPropCat C P) = ⋆IdL C +⋆IdR (ΣPropCat C P) = ⋆IdR C +⋆Assoc (ΣPropCat C P) = ⋆Assoc C +isSetHom (ΣPropCat C P) = isSetHom C + +isIsoΣPropCat : {C : Category ℓ'} {P : (ob C)} + {x y : ob C} (p : x P) (q : y P) + (f : C [ x , y ]) + isIso C f isIso (ΣPropCat C P) {x , p} {y , q} f +inv (isIsoΣPropCat p q f isIsoF) = isIsoF .inv +sec (isIsoΣPropCat p q f isIsoF) = isIsoF .sec +ret (isIsoΣPropCat p q f isIsoF) = isIsoF .ret \ No newline at end of file diff --git a/Cubical.Categories.Category.Properties.html b/Cubical.Categories.Category.Properties.html index ae39d91b42..71ac7f0c2d 100644 --- a/Cubical.Categories.Category.Properties.html +++ b/Cubical.Categories.Category.Properties.html @@ -92,4 +92,28 @@ (r : PathP i C [ x , p i ]) f' f) f ⋆⟨ C g seqP' {p = p} f' g rCatWhiskerP f' f g r = cong v v ⋆⟨ C g) (sym (fromPathP r)) + + + AssocCong₂⋆L : {x y' y z w : C .ob} + {f' : C [ x , y' ]} {f : C [ x , y ]} + {g' : C [ y' , z ]} {g : C [ y , z ]} + f ⋆⟨ C g f' ⋆⟨ C g' (h : C [ z , w ]) + f ⋆⟨ C (g ⋆⟨ C h) + f' ⋆⟨ C (g' ⋆⟨ C h) + AssocCong₂⋆L p h = + sym (⋆Assoc C _ _ h) + ∙∙ i p i ⋆⟨ C h) ∙∙ + ⋆Assoc C _ _ h + + AssocCong₂⋆R : {x y z z' w : C .ob} + (f : C [ x , y ]) + {g' : C [ y , z' ]} {g : C [ y , z ]} + {h' : C [ z' , w ]} {h : C [ z , w ]} + g ⋆⟨ C h g' ⋆⟨ C h' + (f ⋆⟨ C g) ⋆⟨ C h + (f ⋆⟨ C g') ⋆⟨ C h' + AssocCong₂⋆R f p = + ⋆Assoc C f _ _ + ∙∙ i f ⋆⟨ C p i) ∙∙ + sym (⋆Assoc C _ _ _) \ No newline at end of file diff --git a/Cubical.Categories.Constructions.BinProduct.html b/Cubical.Categories.Constructions.BinProduct.html index 097299f3e9..110613873a 100644 --- a/Cubical.Categories.Constructions.BinProduct.html +++ b/Cubical.Categories.Constructions.BinProduct.html @@ -32,19 +32,19 @@ infixr 5 _×C_ -open Functor +open Functor -Fst : (C : Category ℓC ℓC') (D : Category ℓD ℓD') Functor (C ×C D) C -F-ob (Fst C D) = fst -F-hom (Fst C D) = fst -F-id (Fst C D) = refl -F-seq (Fst C D) _ _ = refl +Fst : (C : Category ℓC ℓC') (D : Category ℓD ℓD') Functor (C ×C D) C +F-ob (Fst C D) = fst +F-hom (Fst C D) = fst +F-id (Fst C D) = refl +F-seq (Fst C D) _ _ = refl -Snd : (C : Category ℓC ℓC') (D : Category ℓD ℓD') Functor (C ×C D) D -F-ob (Snd C D) = snd -F-hom (Snd C D) = snd -F-id (Snd C D) = refl -F-seq (Snd C D) _ _ = refl +Snd : (C : Category ℓC ℓC') (D : Category ℓD ℓD') Functor (C ×C D) D +F-ob (Snd C D) = snd +F-hom (Snd C D) = snd +F-id (Snd C D) = refl +F-seq (Snd C D) _ _ = refl module _ where private @@ -55,36 +55,36 @@ D : Category ℓD ℓD' E : Category ℓE ℓE' - open Functor + open Functor - _,F_ : Functor C D Functor C E Functor C (D ×C E) - (G ,F H) .F-ob a = (G a , H a ) - (G ,F H) .F-hom g = (G g , H g ) - (G ,F H) .F-id = ≡-× (G .F-id) (H .F-id) - (G ,F H) .F-seq _ _ = ≡-× (G .F-seq _ _) (H .F-seq _ _) + _,F_ : Functor C D Functor C E Functor C (D ×C E) + (G ,F H) .F-ob a = (G a , H a ) + (G ,F H) .F-hom g = (G g , H g ) + (G ,F H) .F-id = ≡-× (G .F-id) (H .F-id) + (G ,F H) .F-seq _ _ = ≡-× (G .F-seq _ _) (H .F-seq _ _) - _×F_ : Functor A C Functor B D Functor (A ×C B) (C ×C D) - _×F_ {A = A} {B = B} G H = G ∘F Fst A B ,F H ∘F Snd A B + _×F_ : Functor A C Functor B D Functor (A ×C B) (C ×C D) + _×F_ {A = A} {B = B} G H = G ∘F Fst A B ,F H ∘F Snd A B -- Some useful functors module _ (C : Category ℓC ℓC') (D : Category ℓD ℓD') where - open Functor + open Functor module _ (E : Category ℓE ℓE') where -- Associativity of product - ×C-assoc : Functor (C ×C (D ×C E)) ((C ×C D) ×C E) - ×C-assoc .F-ob (c , (d , e)) = ((c , d), e) - ×C-assoc .F-hom (f , (g , h)) = ((f , g), h) - ×C-assoc .F-id = refl - ×C-assoc .F-seq _ _ = refl + ×C-assoc : Functor (C ×C (D ×C E)) ((C ×C D) ×C E) + ×C-assoc .F-ob (c , (d , e)) = ((c , d), e) + ×C-assoc .F-hom (f , (g , h)) = ((f , g), h) + ×C-assoc .F-id = refl + ×C-assoc .F-seq _ _ = refl -- Left/right injections into product - linj : (d : ob D) Functor C (C ×C D) - linj d = Id ,F Constant C D d + linj : (d : ob D) Functor C (C ×C D) + linj d = Id ,F Constant C D d - rinj : (c : ob C) Functor D (C ×C D) - rinj c = Constant D C c ,F Id + rinj : (c : ob C) Functor D (C ×C D) + rinj c = Constant D C c ,F Id {- TODO: diff --git a/Cubical.Categories.Constructions.Elements.html b/Cubical.Categories.Constructions.Elements.html index a7288cb559..7410b27181 100644 --- a/Cubical.Categories.Constructions.Elements.html +++ b/Cubical.Categories.Constructions.Elements.html @@ -25,88 +25,88 @@ -- some issues -- * always need to specify objects during composition because can't infer isSet open Category -open Functor +open Functor module Covariant { ℓ'} {C : Category ℓ'} where - getIsSet : {ℓS} (F : Functor C (SET ℓS)) (c : C .ob) isSet (fst (F c )) - getIsSet F c = snd (F c ) + getIsSet : {ℓS} (F : Functor C (SET ℓS)) (c : C .ob) isSet (fst (F c )) + getIsSet F c = snd (F c ) - Element : {ℓS} (F : Functor C (SET ℓS)) Type (ℓ-max ℓS) - Element F = Σ[ c C .ob ] fst (F c ) + Element : {ℓS} (F : Functor C (SET ℓS)) Type (ℓ-max ℓS) + Element F = Σ[ c C .ob ] fst (F c ) infix 50 ∫_ - ∫_ : {ℓS} Functor C (SET ℓS) Category (ℓ-max ℓS) (ℓ-max ℓ' ℓS) + ∫_ : {ℓS} Functor C (SET ℓS) Category (ℓ-max ℓS) (ℓ-max ℓ' ℓS) -- objects are (c , x) pairs where c ∈ C and x ∈ F c ( F) .ob = Element F -- morphisms are f : c → c' which take x to x' - ( F) .Hom[_,_] (c , x) (c' , x') = fiber (f : C [ c , c' ]) (F f ) x) x' - ( F) .id {x = (c , x)} = C .id , funExt⁻ (F .F-id) x + ( F) .Hom[_,_] (c , x) (c' , x') = fiber (f : C [ c , c' ]) (F f ) x) x' + ( F) .id {x = (c , x)} = C .id , funExt⁻ (F .F-id) x ( F) ._⋆_ {c , x} {c₁ , x₁} {c₂ , x₂} (f , p) (g , q) - = (f ⋆⟨ C g) , ((F f ⋆⟨ C g ) x - ≡⟨ funExt⁻ (F .F-seq _ _) _ - (F g ) ((F f ) x) - ≡⟨ cong (F g ) p - (F g ) x₁ + = (f ⋆⟨ C g) , ((F f ⋆⟨ C g ) x + ≡⟨ funExt⁻ (F .F-seq _ _) _ + (F g ) ((F f ) x) + ≡⟨ cong (F g ) p + (F g ) x₁ ≡⟨ q x₂ ) ( F) .⋆IdL o@{c , x} o1@{c' , x'} f'@(f , p) i - = (cIdL i) , isOfHLevel→isOfHLevelDep 1 a isS' ((F a ) x) x') p' p cIdL i + = (cIdL i) , isOfHLevel→isOfHLevelDep 1 a isS' ((F a ) x) x') p' p cIdL i where isS = getIsSet F c isS' = getIsSet F c' cIdL = C .⋆IdL f -- proof from composition with id - p' : (F C .id ⋆⟨ C f ) x x' + p' : (F C .id ⋆⟨ C f ) x x' p' = snd (( F) ._⋆_ (( F) .id) f') ( F) .⋆IdR o@{c , x} o1@{c' , x'} f'@(f , p) i - = (cIdR i) , isOfHLevel→isOfHLevelDep 1 a isS' ((F a ) x) x') p' p cIdR i + = (cIdR i) , isOfHLevel→isOfHLevelDep 1 a isS' ((F a ) x) x') p' p cIdR i where cIdR = C .⋆IdR f isS' = getIsSet F c' - p' : (F f ⋆⟨ C C .id ) x x' + p' : (F f ⋆⟨ C C .id ) x x' p' = snd (( F) ._⋆_ f' (( F) .id)) ( F) .⋆Assoc o@{c , x} o1@{c₁ , x₁} o2@{c₂ , x₂} o3@{c₃ , x₃} f'@(f , p) g'@(g , q) h'@(h , r) i - = (cAssoc i) , isOfHLevel→isOfHLevelDep 1 a isS₃ ((F a ) x) x₃) p1 p2 cAssoc i + = (cAssoc i) , isOfHLevel→isOfHLevelDep 1 a isS₃ ((F a ) x) x₃) p1 p2 cAssoc i where cAssoc = C .⋆Assoc f g h isS₃ = getIsSet F c₃ - p1 : (F (f ⋆⟨ C g) ⋆⟨ C h ) x x₃ + p1 : (F (f ⋆⟨ C g) ⋆⟨ C h ) x x₃ p1 = snd (( F) ._⋆_ (( F) ._⋆_ {o} {o1} {o2} f' g') h') - p2 : (F f ⋆⟨ C (g ⋆⟨ C h) ) x x₃ + p2 : (F f ⋆⟨ C (g ⋆⟨ C h) ) x x₃ p2 = snd (( F) ._⋆_ f' (( F) ._⋆_ {o1} {o2} {o3} g' h')) - ( F) .isSetHom {x} {y} = isSetΣSndProp (C .isSetHom) λ _ (F fst y ) .snd _ _ + ( F) .isSetHom {x} {y} = isSetΣSndProp (C .isSetHom) λ _ (F fst y ) .snd _ _ - ForgetElements : {ℓS} (F : Functor C (SET ℓS)) Functor ( F) C - F-ob (ForgetElements F) = fst - F-hom (ForgetElements F) = fst - F-id (ForgetElements F) = refl - F-seq (ForgetElements F) _ _ = refl + ForgetElements : {ℓS} (F : Functor C (SET ℓS)) Functor ( F) C + F-ob (ForgetElements F) = fst + F-hom (ForgetElements F) = fst + F-id (ForgetElements F) = refl + F-seq (ForgetElements F) _ _ = refl module Contravariant { ℓ'} {C : Category ℓ'} where open Covariant {C = C ^op} -- same thing but for presheaves - ∫ᴾ_ : {ℓS} Functor (C ^op) (SET ℓS) Category (ℓ-max ℓS) (ℓ-max ℓ' ℓS) + ∫ᴾ_ : {ℓS} Functor (C ^op) (SET ℓS) Category (ℓ-max ℓS) (ℓ-max ℓ' ℓS) ∫ᴾ F = ( F) ^op - Elementᴾ : {ℓS} Functor (C ^op) (SET ℓS) Type (ℓ-max ℓS) + Elementᴾ : {ℓS} Functor (C ^op) (SET ℓS) Type (ℓ-max ℓS) Elementᴾ F = (∫ᴾ F) .ob -- helpful results - module _ {ℓS} {F : Functor (C ^op) (SET ℓS)} where + module _ {ℓS} {F : Functor (C ^op) (SET ℓS)} where -- morphisms are equal as long as the morphisms in C are equal ∫ᴾhomEq : {o1 o1' o2 o2'} (f : (∫ᴾ F) [ o1 , o2 ]) (g : (∫ᴾ F) [ o1' , o2' ]) (p : o1 o1') (q : o2 o2') (eqInC : PathP i C [ fst (p i) , fst (q i) ]) (fst f) (fst g)) PathP i (∫ᴾ F) [ p i , q i ]) f g - ∫ᴾhomEq _ _ _ _ = ΣPathPProp f snd (F _ ) _ _) + ∫ᴾhomEq _ _ _ _ = ΣPathPProp f snd (F _ ) _ _) ∫ᴾhomEqSimpl : {o1 o2} (f g : (∫ᴾ F) [ o1 , o2 ]) fst f fst g f g diff --git a/Cubical.Categories.Constructions.EssentialImage.html b/Cubical.Categories.Constructions.EssentialImage.html index 26bd2f0796..6e7865adda 100644 --- a/Cubical.Categories.Constructions.EssentialImage.html +++ b/Cubical.Categories.Constructions.EssentialImage.html @@ -22,14 +22,14 @@ module _ {C : Category ℓC ℓC'}{D : Category ℓD ℓD'} - (F : Functor C D) where + (F : Functor C D) where open Category - open Functor + open Functor isInEssentialImage : D .ob Type (ℓ-max ℓC ℓD') - isInEssentialImage d = ∃[ c C .ob ] CatIso D (F .F-ob c) d + isInEssentialImage d = ∃[ c C .ob ] CatIso D (F .F-ob c) d isPropIsInEssentialImage : (d : D .ob) isProp (isInEssentialImage d) isPropIsInEssentialImage _ = squash₁ @@ -40,27 +40,27 @@ EssentialImage = FullSubcategory D isInEssentialImage - ToEssentialImage : Functor C EssentialImage - ToEssentialImage .F-ob c = F .F-ob c , c , idCatIso ∣₁ - ToEssentialImage .F-hom = F .F-hom - ToEssentialImage .F-id = F .F-id - ToEssentialImage .F-seq = F .F-seq + ToEssentialImage : Functor C EssentialImage + ToEssentialImage .F-ob c = F .F-ob c , c , idCatIso ∣₁ + ToEssentialImage .F-hom = F .F-hom + ToEssentialImage .F-id = F .F-id + ToEssentialImage .F-seq = F .F-seq - FromEssentialImage : Functor EssentialImage D + FromEssentialImage : Functor EssentialImage D FromEssentialImage = FullInclusion D isInEssentialImage - CompEssentialImage : funcComp FromEssentialImage ToEssentialImage F - CompEssentialImage = Functor≡ _ refl) _ refl) + CompEssentialImage : funcComp FromEssentialImage ToEssentialImage F + CompEssentialImage = Functor≡ _ refl) _ refl) - isEssentiallySurjToEssentialImage : isEssentiallySurj ToEssentialImage + isEssentiallySurjToEssentialImage : isEssentiallySurj ToEssentialImage isEssentiallySurjToEssentialImage (d , p) = PropTrunc.map (c , f) c , Incl-Iso-inv _ _ _ _ f) p - isFullyFaithfulFromEssentialImage : isFullyFaithful FromEssentialImage + isFullyFaithfulFromEssentialImage : isFullyFaithful FromEssentialImage isFullyFaithfulFromEssentialImage = isFullyFaithfulIncl D isInEssentialImage - isFullyFaithfulToEssentialImage : isFullyFaithful F isFullyFaithful ToEssentialImage + isFullyFaithfulToEssentialImage : isFullyFaithful F isFullyFaithful ToEssentialImage isFullyFaithfulToEssentialImage fullfaith = fullfaith diff --git a/Cubical.Categories.Constructions.Free.Category.Base.html b/Cubical.Categories.Constructions.Free.Category.Base.html index b1a0be6a95..4d7fea8e06 100644 --- a/Cubical.Categories.Constructions.Free.Category.Base.html +++ b/Cubical.Categories.Constructions.Free.Category.Base.html @@ -26,7 +26,7 @@ ℓc ℓc' ℓd ℓd' ℓg ℓg' : Level open Category -open Functor +open Functor open NatIso hiding (sqRL; sqLL) open NatTrans @@ -55,7 +55,7 @@ η ._$g_ = λ z z η ._<$g>_ = ↑_ - module _ {ℓc ℓc'} {𝓒 : Category ℓc ℓc'} (F F' : Functor FreeCat 𝓒) where + module _ {ℓc ℓc'} {𝓒 : Category ℓc ℓc'} (F F' : Functor FreeCat 𝓒) where -- Formulating uniqueness this way works out best definitionally. -- If you prove induction from the alternative below of @@ -63,20 +63,20 @@ -- then you have to use path comp which has bad definitional behavior module _ (agree-on-η : F ∘Interp η F' ∘Interp η) where private - aoo : c F c F' c + aoo : c F c F' c aoo = c i agree-on-η i $g c) aom-t : {c c'} (e : Exp c c') Type _ aom-t {c}{c'} e = - PathP i 𝓒 [ aoo c i , aoo c' i ]) (F e ) (F' e ) + PathP i 𝓒 [ aoo c i , aoo c' i ]) (F e ) (F' e ) aom-id : {c} aom-t (idₑ {c}) - aom-id = F .F-id i 𝓒 .id) sym (F' .F-id) + aom-id = F .F-id i 𝓒 .id) sym (F' .F-id) aom-seq : {c c' c''} (e : Exp c c')(e' : Exp c' c'') aom-t e aom-t e' aom-t (e ⋆ₑ e') aom-seq e e' ihe ihe' = - F .F-seq e e' i ihe i ⋆⟨ 𝓒 ihe' i) sym (F' .F-seq e e') + F .F-seq e e' i ihe i ⋆⟨ 𝓒 ihe' i) sym (F' .F-seq e e') aom : {c c'} (e : Exp c c') aom-t e aom ( x) = λ i agree-on-η i <$g> x @@ -87,27 +87,27 @@ i j 𝓒 .isSetHom) (aom-seq idₑ e aom-id (aom e)) (aom e) - i F ⋆ₑIdL e i ) ((λ i F' ⋆ₑIdL e i )) i + i F ⋆ₑIdL e i ) ((λ i F' ⋆ₑIdL e i )) i aom (⋆ₑIdR e i) = isSet→SquareP i j 𝓒 .isSetHom) (aom-seq e idₑ (aom e) aom-id) (aom e) - i F ⋆ₑIdR e i ) ((λ i F' ⋆ₑIdR e i )) i + i F ⋆ₑIdR e i ) ((λ i F' ⋆ₑIdR e i )) i aom (⋆ₑAssoc e e' e'' i) = isSet→SquareP _ _ 𝓒 .isSetHom) (aom-seq _ _ (aom-seq _ _ (aom e) (aom e')) (aom e'')) (aom-seq _ _ (aom e) (aom-seq _ _ (aom e') (aom e''))) - ((λ i F ⋆ₑAssoc e e' e'' i )) - i F' ⋆ₑAssoc e e' e'' i ) + ((λ i F ⋆ₑAssoc e e' e'' i )) + i F' ⋆ₑAssoc e e' e'' i ) i aom (isSetExp e e' x y i j) = isSet→SquareP {A = λ i j aom-t (isSetExp e e' x y i j)} i j isOfHLevelPathP 2 (𝓒 .isSetHom) - (F isSetExp e e' x y i j ) - (F' isSetExp e e' x y i j )) + (F isSetExp e e' x y i j ) + (F' isSetExp e e' x y i j )) j aom (x j)) j aom (y j)) i aom e) @@ -115,7 +115,7 @@ i j induction : F F' - induction = Functor≡ aoo aom + induction = Functor≡ aoo aom module Semantics {ℓc ℓc'} (𝓒 : Category ℓc ℓc') @@ -130,19 +130,19 @@ isSetExp e e' p q i j = 𝓒 .isSetHom e e' (cong ⟦_⟧ p) (cong ⟦_⟧ q) i j - sem : Functor FreeCat 𝓒 - sem .Functor.F-ob v = ı $g v - sem .Functor.F-hom e = e - sem .Functor.F-id = refl - sem .Functor.F-seq e e' = refl + sem : Functor FreeCat 𝓒 + sem .Functor.F-ob v = ı $g v + sem .Functor.F-hom e = e + sem .Functor.F-id = refl + sem .Functor.F-seq e e' = refl sem-extends-ı : (η ⋆Interp sem) ı sem-extends-ı = refl - sem-uniq : {F : Functor FreeCat 𝓒} ((Functor→GraphHom F ∘GrHom η) ı) F sem + sem-uniq : {F : Functor FreeCat 𝓒} ((Functor→GraphHom F ∘GrHom η) ı) F sem sem-uniq {F} aog = induction F sem aog - sem-contr : ∃![ F Functor FreeCat 𝓒 ] Functor→GraphHom F ∘GrHom η ı + sem-contr : ∃![ F Functor FreeCat 𝓒 ] Functor→GraphHom F ∘GrHom η ı sem-contr .fst = sem , sem-extends-ı sem-contr .snd (sem' , sem'-extends-ı) = ΣPathP paths where @@ -153,18 +153,18 @@ paths .fst = sym (sem-uniq sem'-extends-ı) paths .snd i j = sem'-extends-ı ((~ i) j) - η-expansion : {𝓒 : Category ℓc ℓc'} (F : Functor FreeCat 𝓒) + η-expansion : {𝓒 : Category ℓc ℓc'} (F : Functor FreeCat 𝓒) F Semantics.sem 𝓒 (F ∘Interp η) η-expansion {𝓒 = 𝓒} F = induction F (Semantics.sem 𝓒 (F ∘Interp η)) refl -- co-unit of the 2-adjunction module _ {𝓒 : Category ℓc ℓc'} where open FreeCategory (Cat→Graph 𝓒) - ε : Functor FreeCat 𝓒 - ε = Semantics.sem 𝓒 (Functor→GraphHom {𝓓 = 𝓒} Id) + ε : Functor FreeCat 𝓒 + ε = Semantics.sem 𝓒 (Functor→GraphHom {𝓓 = 𝓒} Id) ε-reasoning : {𝓓 : Category ℓd ℓd'} - (𝓕 : Functor 𝓒 𝓓) - 𝓕 ∘F ε Semantics.sem 𝓓 (Functor→GraphHom 𝓕) + (𝓕 : Functor 𝓒 𝓓) + 𝓕 ∘F ε Semantics.sem 𝓓 (Functor→GraphHom 𝓕) ε-reasoning {𝓓 = 𝓓} 𝓕 = Semantics.sem-uniq 𝓓 (Functor→GraphHom 𝓕) refl \ No newline at end of file diff --git a/Cubical.Categories.Constructions.Free.Functor.html b/Cubical.Categories.Constructions.Free.Functor.html index 1b8e8a7c7f..b9d2628806 100644 --- a/Cubical.Categories.Constructions.Free.Functor.html +++ b/Cubical.Categories.Constructions.Free.Functor.html @@ -29,7 +29,7 @@ ℓ' ℓc ℓc' ℓd ℓd' ℓg ℓg' ℓh ℓh' : Level open Category -open Functor +open Functor open NatTrans open NatIso open isIso @@ -69,11 +69,11 @@ FH .⋆Assoc = ⋆ₑAssoc FH .isSetHom = isSetFExp - : Functor FG FH - .F-ob = ϕ - .F-hom = F⟪_⟫ - .F-id = F-idₑ - .F-seq = F-seqₑ + : Functor FG FH + .F-ob = ϕ + .F-hom = F⟪_⟫ + .F-id = F-idₑ + .F-seq = F-seqₑ -- The universal interpretation ηG = FreeCatG.η @@ -86,10 +86,10 @@ Fϕ-homo $g x = ϕ x Fϕ-homo <$g> x = F⟪ x - ηϕ : Eq ( .F-ob ∘f ηG ._$g_) (ηH ._$g_ ∘f ϕ) + ηϕ : Eq ( .F-ob ∘f ηG ._$g_) (ηH ._$g_ ∘f ϕ) ηϕ = reflEq - module _ {𝓒 : Category ℓc ℓc'}{𝓓 : Category ℓd ℓd'} {𝓕 : Functor 𝓒 𝓓} where + module _ {𝓒 : Category ℓc ℓc'}{𝓓 : Category ℓd ℓd'} {𝓕 : Functor 𝓒 𝓓} where {- It is very important for the implementation of the functor @@ -101,7 +101,7 @@ -} module Semantics (ıG : Interp G 𝓒) (ıH : Interp H 𝓓) - (ıϕ : Eq (𝓕 .F-ob ∘f ıG ._$g_) (ıH ._$g_ ∘f ϕ)) + (ıϕ : Eq (𝓕 .F-ob ∘f ıG ._$g_) (ıH ._$g_ ∘f ϕ)) where semG = FreeCatG.Semantics.sem 𝓒 ıG @@ -112,34 +112,34 @@ semH-hom (F⟪_⟫ {A}{B} x) = transportEq (f : G .Node 𝓓 .ob) 𝓓 [ f A , f B ]) ıϕ - (𝓕 semG x ) + (𝓕 semG x ) semH-hom (⋆ₑIdL f i) = 𝓓 .⋆IdL (semH-hom f) i semH-hom (⋆ₑIdR f i) = 𝓓 .⋆IdR (semH-hom f) i semH-hom (⋆ₑAssoc f f' f'' i) = 𝓓 .⋆Assoc (semH-hom f) (semH-hom f') (semH-hom f'') i semH-hom (F-idₑ {A} i) = unbound i where - unbound : transportEq f 𝓓 [ f A , f A ]) ıϕ (𝓕 semG idₑ ) + unbound : transportEq f 𝓓 [ f A , f A ]) ıϕ (𝓕 semG idₑ ) 𝓓 .id unbound = J g p transportEq f 𝓓 [ f A , f A ]) p - (𝓕 semG idₑ ) + (𝓕 semG idₑ ) 𝓓 .id) - ((𝓕 ∘F semG) .F-id) ıϕ + ((𝓕 ∘F semG) .F-id) ıϕ semH-hom (F-seqₑ {A}{B}{C} e e' i) = unbound i where unbound : - transportEq f 𝓓 [ f A , f C ]) ıϕ (𝓕 semG e ⋆ₑ e' ) - (transportEq f 𝓓 [ f A , f B ]) ıϕ (𝓕 semG e )) + transportEq f 𝓓 [ f A , f C ]) ıϕ (𝓕 semG e ⋆ₑ e' ) + (transportEq f 𝓓 [ f A , f B ]) ıϕ (𝓕 semG e )) ⋆⟨ 𝓓 (transportEq f 𝓓 [ f B , f C ]) ıϕ - (𝓕 semG e' )) + (𝓕 semG e' )) unbound = J g p - transportEq f 𝓓 [ f A , f C ]) p (𝓕 semG e ⋆ₑ e' ) - (transportEq f 𝓓 [ f A , f B ]) p (𝓕 semG e )) + transportEq f 𝓓 [ f A , f C ]) p (𝓕 semG e ⋆ₑ e' ) + (transportEq f 𝓓 [ f A , f B ]) p (𝓕 semG e )) ⋆⟨ 𝓓 (transportEq f 𝓓 [ f B , f C ]) p - (𝓕 semG e' ))) - ((𝓕 ∘F semG) .F-seq e e') + (𝓕 semG e' ))) + ((𝓕 ∘F semG) .F-seq e e') ıϕ semH-hom (isSetFExp f g p q i j) = 𝓓 .isSetHom (semH-hom f) @@ -149,18 +149,18 @@ i j - semH : Functor FH 𝓓 - semH .F-ob = ıH ._$g_ - semH .F-hom = semH-hom - semH .F-id = refl - semH .F-seq f g = refl + semH : Functor FH 𝓓 + semH .F-ob = ıH ._$g_ + semH .F-hom = semH-hom + semH .F-id = refl + semH .F-seq f g = refl - semϕ : Eq (𝓕 ∘F semG) (semH ∘F ) - semϕ = pathToEq (FreeCatG.induction (funcComp 𝓕 semG) - (funcComp semH ) + semϕ : Eq (𝓕 ∘F semG) (semH ∘F ) + semϕ = pathToEq (FreeCatG.induction (funcComp 𝓕 semG) + (funcComp semH ) (GrHom≡ aoo aoe)) where - 𝓕G = (𝓕 .F-ob ∘f ıG ._$g_) + 𝓕G = (𝓕 .F-ob ∘f ıG ._$g_) = (ıH ._$g_ ∘f ϕ) aoo-gen : (v : Node G) f g @@ -168,125 +168,125 @@ Path _ (f v) (g v) aoo-gen v f g = J ((λ f' _ Path _ (f v) (f' v))) refl aoo : (v : Node G) - Path _ (((𝓕 ∘F semG) ∘Interp ηG) $g v) - (((semH ∘F ) ∘Interp ηG) $g v) + Path _ (((𝓕 ∘F semG) ∘Interp ηG) $g v) + (((semH ∘F ) ∘Interp ηG) $g v) aoo v = aoo-gen v 𝓕G ıϕ aoe : {v w : Node G} (e : G .Edge v w) PathP i 𝓓 .Hom[_,_] (aoo v i) (aoo w i)) - (𝓕 semG e ) - (semH e ) + (𝓕 semG e ) + (semH e ) aoe {v}{w} e = toPathP lem where lem : Path _ (transport i 𝓓 [ aoo-gen v 𝓕G ıϕ i , aoo-gen w 𝓕G ıϕ i ]) - (𝓕 ıG <$g> e )) - (transportEq f 𝓓 [ f v , f w ]) ıϕ (𝓕 ıG <$g> e )) + (𝓕 ıG <$g> e )) + (transportEq f 𝓓 [ f v , f w ]) ıϕ (𝓕 ıG <$g> e )) lem = J f p Path _ ((transport i 𝓓 [ aoo-gen v 𝓕G f p i , aoo-gen w 𝓕G f p i ]) - (𝓕 ıG <$g> e ))) + (𝓕 ıG <$g> e ))) ((transportEq f 𝓓 [ f v , f w ]) p - (𝓕 ıG <$g> e )))) - (transportRefl (𝓕 ıG <$g> e )) + (𝓕 ıG <$g> e )))) + (transportRefl (𝓕 ıG <$g> e )) ıϕ - module Uniqueness (arb𝓒 : Functor FG 𝓒) - (arb𝓓 : Functor FH 𝓓) - (arb𝓕 : Path (Functor FG 𝓓) (𝓕 ∘F arb𝓒) (arb𝓓 ∘F )) + module Uniqueness (arb𝓒 : Functor FG 𝓒) + (arb𝓓 : Functor FH 𝓓) + (arb𝓕 : Path (Functor FG 𝓓) (𝓕 ∘F arb𝓒) (arb𝓓 ∘F )) (arb𝓒-agree : arb𝓒 ∘Interp ηG ıG) (arb𝓓-agree : arb𝓓 ∘Interp ηH ıH) (arb𝓕-agree : Square {A = G .Node 𝓓 .ob} - i x arb𝓕 i x ) + i x arb𝓕 i x ) (eqToPath ıϕ) - i x 𝓕 arb𝓒-agree i $g x ) + i x 𝓕 arb𝓒-agree i $g x ) i x arb𝓓-agree i $g (ϕ x))) where sem-uniq-G : arb𝓒 semG sem-uniq-G = FreeCatG.Semantics.sem-uniq _ _ arb𝓒-agree sem-uniq-H : arb𝓓 semH - sem-uniq-H = Functor≡ aoo aom where - aoo : (v : H .Node) arb𝓓 v ıH $g v + sem-uniq-H = Functor≡ aoo aom where + aoo : (v : H .Node) arb𝓓 v ıH $g v aoo = v i arb𝓓-agree i $g v) aom-type : {v w} (f : FH [ v , w ]) Type _ aom-type {v}{w} f = PathP i 𝓓 [ aoo v i , aoo w i ]) - (arb𝓓 f ) - (semH f ) + (arb𝓓 f ) + (semH f ) aom-id : {v} aom-type {v} idₑ - aom-id = arb𝓓 .F-id λ i 𝓓 .id + aom-id = arb𝓓 .F-id λ i 𝓓 .id aom-seq : {v w x} {f : FH [ v , w ]} {g : FH [ w , x ]} aom-type f aom-type g aom-type (f ⋆ₑ g) - aom-seq hypf hypg = arb𝓓 .F-seq _ _ λ i hypf i ⋆⟨ 𝓓 hypg i + aom-seq hypf hypg = arb𝓓 .F-seq _ _ λ i hypf i ⋆⟨ 𝓓 hypg i ıϕp = eqToPath ıϕ aom-F : {v w} (e : FG [ v , w ]) PathP i 𝓓 [ (arb𝓓-agree i $g (ϕ v)) , (arb𝓓-agree i $g (ϕ w)) ]) - (arb𝓓 e ) + (arb𝓓 e ) (transportEq (f : G .Node 𝓓 .ob) 𝓓 [ f v , f w ]) ıϕ - (𝓕 semG e )) + (𝓕 semG e )) aom-F {v}{w} e = pathified eqToPath ( substPath≡transport' (f : G .Node 𝓓 .ob) 𝓓 [ f v , f w ]) - (𝓕 semG e ) + (𝓕 semG e ) ıϕ) where pathified : PathP i 𝓓 [ arb𝓓-agree i $g ϕ v , arb𝓓-agree i $g ϕ w ]) - (arb𝓓 e ) + (arb𝓓 e ) (transport i 𝓓 [ ıϕp i v , ıϕp i w ]) - (𝓕 semG e )) + (𝓕 semG e )) pathified = toPathP⁻ (( fromPathP⁻ lem' - cong (transport⁻ i 𝓓 [ arb𝓕 (~ i) v - , arb𝓕 (~ i) w ])) + cong (transport⁻ i 𝓓 [ arb𝓕 (~ i) v + , arb𝓕 (~ i) w ])) (fromPathP⁻ lem𝓒) sym (transportComposite - ((λ i 𝓓 [ 𝓕 arb𝓒-agree (~ i) $g v - , 𝓕 arb𝓒-agree (~ i) $g w ])) - i 𝓓 [ arb𝓕 i v , arb𝓕 i w ]) - ((𝓕 semG e ))) - ((λ i transport (substOf-sems-agreeϕ i) (𝓕 semG e ))) + ((λ i 𝓓 [ 𝓕 arb𝓒-agree (~ i) $g v + , 𝓕 arb𝓒-agree (~ i) $g w ])) + i 𝓓 [ arb𝓕 i v , arb𝓕 i w ]) + ((𝓕 semG e ))) + ((λ i transport (substOf-sems-agreeϕ i) (𝓕 semG e ))) transportComposite i 𝓓 [ ıϕp i v , ıϕp i w ]) i 𝓓 [ arb𝓓-agree (~ i) $g ϕ v , arb𝓓-agree (~ i) $g ϕ w ]) - (𝓕 semG e ) + (𝓕 semG e ) )) where - lem' : PathP i 𝓓 [ arb𝓕 (~ i) v - , arb𝓕 (~ i) w ]) - (arb𝓓 e ) - (𝓕 arb𝓒 e ) - lem' i = arb𝓕 (~ i) e + lem' : PathP i 𝓓 [ arb𝓕 (~ i) v + , arb𝓕 (~ i) w ]) + (arb𝓓 e ) + (𝓕 arb𝓒 e ) + lem' i = arb𝓕 (~ i) e - lem𝓒 : PathP i 𝓓 [ 𝓕 arb𝓒-agree i $g v - , 𝓕 arb𝓒-agree i $g w ]) - (𝓕 arb𝓒 e ) - (𝓕 semG e ) - lem𝓒 i = 𝓕 sem-uniq-G i e + lem𝓒 : PathP i 𝓓 [ 𝓕 arb𝓒-agree i $g v + , 𝓕 arb𝓒-agree i $g w ]) + (𝓕 arb𝓒 e ) + (𝓕 semG e ) + lem𝓒 i = 𝓕 sem-uniq-G i e substOf-sems-agreeϕ : - ((λ i 𝓓 [ 𝓕 arb𝓒-agree (~ i) $g v - , 𝓕 arb𝓒-agree (~ i) $g w ]) - i 𝓓 [ arb𝓕 i v , arb𝓕 i w ])) + ((λ i 𝓓 [ 𝓕 arb𝓒-agree (~ i) $g v + , 𝓕 arb𝓒-agree (~ i) $g w ]) + i 𝓓 [ arb𝓕 i v , arb𝓕 i w ])) ((λ i 𝓓 [ ıϕp i v , ıϕp i w ]) i 𝓓 [ arb𝓓-agree (~ i) $g ϕ v , arb𝓓-agree (~ i) $g ϕ w ])) substOf-sems-agreeϕ = - sym (cong-∙ A i x 𝓕 arb𝓒-agree (~ i) $g x ) - λ i x arb𝓕 i x ) + sym (cong-∙ A i x 𝓕 arb𝓒-agree (~ i) $g x ) + λ i x arb𝓕 i x ) cong (cong A) (Square→compPath λ i j x arb𝓕-agree (~ i) j x) cong-∙ A i x ıϕp i x) @@ -303,46 +303,46 @@ i j 𝓓 .isSetHom) (aom-seq aom-id (aom f)) (aom f) - i arb𝓓 ⋆ₑIdL f i ) - i (semH ⋆ₑIdL f i )) + i arb𝓓 ⋆ₑIdL f i ) + i (semH ⋆ₑIdL f i )) i aom (⋆ₑIdR f i) = isSet→SquareP i j 𝓓 .isSetHom) (aom-seq (aom f) aom-id) (aom f ) - i arb𝓓 ⋆ₑIdR f i ) - i semH ⋆ₑIdR f i ) + i arb𝓓 ⋆ₑIdR f i ) + i semH ⋆ₑIdR f i ) i aom (⋆ₑAssoc f f₁ f₂ i) = isSet→SquareP i j 𝓓 .isSetHom) (aom-seq (aom-seq (aom f) (aom f₁)) (aom f₂)) (aom-seq (aom f) (aom-seq (aom f₁) (aom f₂))) - i arb𝓓 ⋆ₑAssoc f f₁ f₂ i ) - i semH ⋆ₑAssoc f f₁ f₂ i ) + i arb𝓓 ⋆ₑAssoc f f₁ f₂ i ) + i semH ⋆ₑAssoc f f₁ f₂ i ) i aom (F-idₑ i) = isSet→SquareP i j 𝓓 .isSetHom) (aom-F idₑ) aom-id - i arb𝓓 F-idₑ i ) - i semH F-idₑ i ) + i arb𝓓 F-idₑ i ) + i semH F-idₑ i ) i aom (F-seqₑ f g i) = isSet→SquareP i j 𝓓 .isSetHom) (aom-F (f ⋆ₑ g)) (aom-seq (aom-F f) (aom-F g)) - i arb𝓓 F-seqₑ f g i ) - i semH F-seqₑ f g i ) + i arb𝓓 F-seqₑ f g i ) + i semH F-seqₑ f g i ) i aom (isSetFExp f f₁ x y i j) k = isSet→SquareP i j (isOfHLevelPathP {A = λ k 𝓓 [ aoo _ k , aoo _ k ]} 2 (𝓓 .isSetHom) - (arb𝓓 isSetFExp f f₁ x y i j ) - ((semH isSetFExp f f₁ x y i j )))) + (arb𝓓 isSetFExp f f₁ x y i j ) + ((semH isSetFExp f f₁ x y i j )))) j k aom (x j) k) j k aom (y j) k) i k aom f k) diff --git a/Cubical.Categories.Constructions.FullSubcategory.html b/Cubical.Categories.Constructions.FullSubcategory.html index 3c47ff6853..169648966b 100644 --- a/Cubical.Categories.Constructions.FullSubcategory.html +++ b/Cubical.Categories.Constructions.FullSubcategory.html @@ -14,7 +14,7 @@ open import Cubical.Categories.Category open import Cubical.Categories.Isomorphism -open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) +open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) private variable @@ -24,7 +24,7 @@ private module C = Category C open Category - open Functor + open Functor FullSubcategory : Category (ℓ-max ℓC ℓP) ℓC' ob FullSubcategory = Σ[ x C.ob ] P x @@ -36,13 +36,13 @@ ⋆Assoc FullSubcategory = C.⋆Assoc isSetHom FullSubcategory = C.isSetHom - FullInclusion : Functor FullSubcategory C - F-ob FullInclusion = fst - F-hom FullInclusion = idfun _ - F-id FullInclusion = refl - F-seq FullInclusion f g = refl + FullInclusion : Functor FullSubcategory C + F-ob FullInclusion = fst + F-hom FullInclusion = idfun _ + F-id FullInclusion = refl + F-seq FullInclusion f g = refl - isFullyFaithfulIncl : isFullyFaithful FullInclusion + isFullyFaithfulIncl : isFullyFaithful FullInclusion isFullyFaithfulIncl _ _ = idEquiv _ .snd module _ (x y : FullSubcategory .ob) where @@ -79,13 +79,13 @@ module C = Category C module D = Category D open Category - open Functor + open Functor - ToFullSubcategory : (F : Functor C D) ((c : C.ob) Q (F-ob F c)) Functor C (FullSubcategory D Q) - F-ob (ToFullSubcategory F f) c = F-ob F c , f c - F-hom (ToFullSubcategory F f) = F-hom F - F-id (ToFullSubcategory F f) = F-id F - F-seq (ToFullSubcategory F f) = F-seq F + ToFullSubcategory : (F : Functor C D) ((c : C.ob) Q (F-ob F c)) Functor C (FullSubcategory D Q) + F-ob (ToFullSubcategory F f) c = F-ob F c , f c + F-hom (ToFullSubcategory F f) = F-hom F + F-id (ToFullSubcategory F f) = F-id F + F-seq (ToFullSubcategory F f) = F-seq F module _ (C : Category ℓC ℓC') (P : Category.ob C Type ℓP) (D : Category ℓD ℓD') (Q : Category.ob D Type ℓQ) where @@ -93,23 +93,23 @@ module C = Category C module D = Category D open Category - open Functor + open Functor - MapFullSubcategory : (F : Functor C D) ((c : C.ob) P c Q (F-ob F c)) - Functor (FullSubcategory C P) (FullSubcategory D Q) + MapFullSubcategory : (F : Functor C D) ((c : C.ob) P c Q (F-ob F c)) + Functor (FullSubcategory C P) (FullSubcategory D Q) MapFullSubcategory F f = ToFullSubcategory (FullSubcategory C P) D Q - (funcComp F (FullInclusion C P) ) + (funcComp F (FullInclusion C P) ) λ (c , p) f c p module _ (C : Category ℓC ℓC') (P : Category.ob C Type ℓP) where private module C = Category C open Category - open Functor + open Functor MapFullSubcategory-id : MapFullSubcategory C P C P (funcId C) c p p) funcId (FullSubcategory C P) - MapFullSubcategory-id = Functor≡ + MapFullSubcategory-id = Functor≡ (c , p) refl) γ refl) @@ -121,16 +121,16 @@ module D = Category D module E = Category E open Category - open Functor + open Functor MapFullSubcategory-seq : - (F : Functor C D) (f : (c : C.ob) P c Q (F-ob F c)) - (G : Functor D E) (g : (d : D.ob) Q d R (F-ob G d)) - MapFullSubcategory C P E R (funcComp G F) c p g (F-ob F c) (f c p)) - funcComp + (F : Functor C D) (f : (c : C.ob) P c Q (F-ob F c)) + (G : Functor D E) (g : (d : D.ob) Q d R (F-ob G d)) + MapFullSubcategory C P E R (funcComp G F) c p g (F-ob F c) (f c p)) + funcComp (MapFullSubcategory D Q E R G g) (MapFullSubcategory C P D Q F f) - MapFullSubcategory-seq F f G g = Functor≡ + MapFullSubcategory-seq F f G g = Functor≡ (c , p) refl) γ refl) @@ -144,14 +144,14 @@ {P : C .ob Type ℓP}(isPropP : (c : C .ob) isProp (P c)) where - open Functor + open Functor open isUnivalent -- Full subcategory (injective on objects) is injective on objects. - isEmbdIncl-ob : isEmbedding (FullInclusion C P .F-ob) - isEmbdIncl-ob _ _ = isEmbeddingFstΣProp isPropP + isEmbdIncl-ob : isEmbedding (FullInclusion C P .F-ob) + isEmbdIncl-ob _ _ = isEmbeddingFstΣProp isPropP -- Full subcategory (injective on objects) of univalent category is univalent. diff --git a/Cubical.Categories.Constructions.Lift.html b/Cubical.Categories.Constructions.Lift.html index 1491cd056c..ed22f47328 100644 --- a/Cubical.Categories.Constructions.Lift.html +++ b/Cubical.Categories.Constructions.Lift.html @@ -25,15 +25,15 @@ LiftHoms .⋆Assoc f g h = cong lift (C .⋆Assoc (f .lower) (g .lower) (h .lower)) LiftHoms .isSetHom = isOfHLevelLift 2 (C .isSetHom) - liftHoms : Functor C LiftHoms - liftHoms .Functor.F-ob = λ z z - liftHoms .Functor.F-hom = lift - liftHoms .Functor.F-id = refl - liftHoms .Functor.F-seq f g = refl + liftHoms : Functor C LiftHoms + liftHoms .Functor.F-ob = λ z z + liftHoms .Functor.F-hom = lift + liftHoms .Functor.F-id = refl + liftHoms .Functor.F-seq f g = refl - lowerHoms : Functor LiftHoms C - lowerHoms .Functor.F-ob = λ z z - lowerHoms .Functor.F-hom = lower - lowerHoms .Functor.F-id = refl - lowerHoms .Functor.F-seq f g = refl + lowerHoms : Functor LiftHoms C + lowerHoms .Functor.F-ob = λ z z + lowerHoms .Functor.F-hom = lower + lowerHoms .Functor.F-id = refl + lowerHoms .Functor.F-seq f g = refl \ No newline at end of file diff --git a/Cubical.Categories.Constructions.Power.html b/Cubical.Categories.Constructions.Power.html index c757f79913..8c10bfa3f3 100644 --- a/Cubical.Categories.Constructions.Power.html +++ b/Cubical.Categories.Constructions.Power.html @@ -19,11 +19,11 @@ PowerCategory X C = ΠC X _ C) PseudoYoneda : {C : Category ℓc ℓc'} - Functor C (PowerCategory (C .ob) (SET ℓc')) + Functor C (PowerCategory (C .ob) (SET ℓc')) PseudoYoneda {C = C} = Π-intro _ _ SET _) λ a C [ a ,-] isFaithfulPseudoYoneda : {C : Category ℓc ℓc'} - Functor.isFaithful (PseudoYoneda {C = C}) + Functor.isFaithful (PseudoYoneda {C = C}) isFaithfulPseudoYoneda {C = C} x y f g p = sym (C .⋆IdL f) i p i _ (C .id)) C .⋆IdL g \ No newline at end of file diff --git a/Cubical.Categories.Constructions.Product.html b/Cubical.Categories.Constructions.Product.html index 5c71a16657..ffdb17f421 100644 --- a/Cubical.Categories.Constructions.Product.html +++ b/Cubical.Categories.Constructions.Product.html @@ -15,7 +15,7 @@ ℓA ℓC ℓC' ℓD ℓD' : Level open Category -open Functor +open Functor module _ (A : Type ℓA) (catC : A Category ℓC ℓC') where ΠC : Category (ℓ-max ℓA ℓC) (ℓ-max ℓA ℓC') @@ -28,15 +28,15 @@ ΠC .⋆Assoc h g f = funExt λ a ⋆Assoc (catC a) (h a) (g a) (f a) ΠC .isSetHom = isSetΠ a isSetHom (catC a)) - Π-intro : {D : Category ℓD ℓD'} (∀ (a : A) Functor D (catC a)) Functor D ΠC - Π-intro Fs .Functor.F-ob d a = Fs a d - Π-intro Fs .Functor.F-hom f a = Fs a f - Π-intro Fs .Functor.F-id = funExt a Fs a .F-id) - Π-intro Fs .Functor.F-seq f g = funExt a Fs a .F-seq f g) - - πC : (a : A) Functor ΠC (catC a) - πC a .Functor.F-ob = λ xs xs a - πC a .Functor.F-hom = λ fs fs a - πC a .Functor.F-id = refl - πC a .Functor.F-seq fs gs = refl + Π-intro : {D : Category ℓD ℓD'} (∀ (a : A) Functor D (catC a)) Functor D ΠC + Π-intro Fs .Functor.F-ob d a = Fs a d + Π-intro Fs .Functor.F-hom f a = Fs a f + Π-intro Fs .Functor.F-id = funExt a Fs a .F-id) + Π-intro Fs .Functor.F-seq f g = funExt a Fs a .F-seq f g) + + πC : (a : A) Functor ΠC (catC a) + πC a .Functor.F-ob = λ xs xs a + πC a .Functor.F-hom = λ fs fs a + πC a .Functor.F-id = refl + πC a .Functor.F-seq fs gs = refl \ No newline at end of file diff --git a/Cubical.Categories.Constructions.Quotient.html b/Cubical.Categories.Constructions.Quotient.html index f947554723..c451b6fb56 100644 --- a/Cubical.Categories.Constructions.Quotient.html +++ b/Cubical.Categories.Constructions.Quotient.html @@ -67,12 +67,12 @@ C/~ = QuotientCategory -- Quotient map - open Functor - QuoFunctor : Functor C C/~ - QuoFunctor .F-ob x = x - QuoFunctor .F-hom = ⟦_⟧ - QuoFunctor .F-id = refl - QuoFunctor .F-seq f g = refl + open Functor + QuoFunctor : Functor C C/~ + QuoFunctor .F-ob x = x + QuoFunctor .F-hom = ⟦_⟧ + QuoFunctor .F-id = refl + QuoFunctor .F-seq f g = refl -- Quotients preserve initial / terminal objects isInitial/~ : {z : ob C} isInitial C z isInitial C/~ z diff --git a/Cubical.Categories.Constructions.Slice.Properties.html b/Cubical.Categories.Constructions.Slice.Properties.html index 12bbf76c41..712e9ad1a3 100644 --- a/Cubical.Categories.Constructions.Slice.Properties.html +++ b/Cubical.Categories.Constructions.Slice.Properties.html @@ -27,20 +27,20 @@ open Elements.Contravariant {C = C} open _≃ᶜ_ -open Functor +open Functor open WeakInverse -slice→el : Functor (SliceCat C c) (∫ᴾ (C [-, c ])) -slice→el .F-ob s = s .S-ob , s .S-arr -slice→el .F-hom f = f .S-hom , f .S-comm -slice→el .F-id = ΣPathP (refl , (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _)) -slice→el .F-seq _ _ = ΣPathP (refl , (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _)) +slice→el : Functor (SliceCat C c) (∫ᴾ (C [-, c ])) +slice→el .F-ob s = s .S-ob , s .S-arr +slice→el .F-hom f = f .S-hom , f .S-comm +slice→el .F-id = ΣPathP (refl , (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _)) +slice→el .F-seq _ _ = ΣPathP (refl , (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _)) -el→slice : Functor (∫ᴾ (C [-, c ])) (SliceCat C c) -el→slice .F-ob (_ , s) = sliceob s -el→slice .F-hom (f , comm) = slicehom f comm -el→slice .F-id = SliceHom-≡-intro C c refl (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _) -el→slice .F-seq _ _ = SliceHom-≡-intro C c refl (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _) +el→slice : Functor (∫ᴾ (C [-, c ])) (SliceCat C c) +el→slice .F-ob (_ , s) = sliceob s +el→slice .F-hom (f , comm) = slicehom f comm +el→slice .F-id = SliceHom-≡-intro C c refl (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _) +el→slice .F-seq _ _ = SliceHom-≡-intro C c refl (isOfHLevelPath' 1 (C .isSetHom) _ _ _ _) open NatTrans open NatIso diff --git a/Cubical.Categories.Constructions.SubObject.html b/Cubical.Categories.Constructions.SubObject.html index 26911d2b42..a5b3b9e354 100644 --- a/Cubical.Categories.Constructions.SubObject.html +++ b/Cubical.Categories.Constructions.SubObject.html @@ -24,10 +24,10 @@ isSubObj (sliceob arr) = isMonic C arr , isPropIsMonic C arr SubObjCat : Category (ℓ-max ℓ') ℓ' -SubObjCat = ΣPropCat SliceCat isSubObj +SubObjCat = ΣPropCat SliceCat isSubObj -SubObjCat→SliceCat : Functor SubObjCat SliceCat -SubObjCat→SliceCat = forgetΣPropCat SliceCat isSubObj +SubObjCat→SliceCat : Functor SubObjCat SliceCat +SubObjCat→SliceCat = forgetΣPropCat SliceCat isSubObj subObjMorIsMonic : {s t : SubObjCat .ob} (f : SubObjCat [ s , t ]) isMonic C (S-hom f) diff --git a/Cubical.Categories.Constructions.TwistedArrow.html b/Cubical.Categories.Constructions.TwistedArrow.html index adce364358..a7d4b918de 100644 --- a/Cubical.Categories.Constructions.TwistedArrow.html +++ b/Cubical.Categories.Constructions.TwistedArrow.html @@ -20,12 +20,12 @@ TwistedArrowCategory : (C : Category ℓ') Category (ℓ-max ℓ') ℓ' TwistedArrowCategory C = HomFunctor C -TwistedEnds : (C : Category ℓ') Functor (TwistedArrowCategory C) (C ^op ×C C) +TwistedEnds : (C : Category ℓ') Functor (TwistedArrowCategory C) (C ^op ×C C) TwistedEnds C = ForgetElements (HomFunctor C) -TwistedDom : (C : Category ℓ') Functor ((TwistedArrowCategory C) ^op) C -TwistedDom C = ((Fst (C ^op) C) ^opF) ∘F (ForgetElements (HomFunctor C) ^opF) +TwistedDom : (C : Category ℓ') Functor ((TwistedArrowCategory C) ^op) C +TwistedDom C = ((Fst (C ^op) C) ^opF) ∘F (ForgetElements (HomFunctor C) ^opF) -TwistedCod : (C : Category ℓ') Functor (TwistedArrowCategory C) C -TwistedCod C = (Snd (C ^op) C) ∘F ForgetElements (HomFunctor C) +TwistedCod : (C : Category ℓ') Functor (TwistedArrowCategory C) C +TwistedCod C = (Snd (C ^op) C) ∘F ForgetElements (HomFunctor C) \ No newline at end of file diff --git a/Cubical.Categories.Displayed.Adjoint.html b/Cubical.Categories.Displayed.Adjoint.html index b6697389e0..fe891b8505 100644 --- a/Cubical.Categories.Displayed.Adjoint.html +++ b/Cubical.Categories.Displayed.Adjoint.html @@ -21,16 +21,16 @@ -- Adjoint definition 1: unit-counit record _⊣[_]_ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - {F : Functor C D} {G : Functor D C} + {F : Functor C D} {G : Functor D C} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} - (Fᴰ : Functorᴰ F Cᴰ Dᴰ) (A : F UnitCounit.⊣ G) (Gᴰ : Functorᴰ G Dᴰ Cᴰ) + (Fᴰ : Functorᴰ F Cᴰ Dᴰ) (A : F UnitCounit.⊣ G) (Gᴰ : Functorᴰ G Dᴰ Cᴰ) : Type (ℓ-max (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓCᴰ ℓCᴰ')) (ℓ-max (ℓ-max ℓD ℓD') (ℓ-max ℓDᴰ ℓDᴰ'))) where open Category open NatTransᴰ private - module A = UnitCounit._⊣_ A + module A = UnitCounit._⊣_ A module Cᴰ = Categoryᴰ Cᴰ module Dᴰ = Categoryᴰ Dᴰ module Fᴰ = Functorᴰ Fᴰ @@ -38,16 +38,16 @@ field -- unit - ηᴰ : NatTransᴰ A.η 𝟙ᴰ⟨ Cᴰ (funcCompᴰ Gᴰ Fᴰ) + ηᴰ : NatTransᴰ A.η 𝟙ᴰ⟨ Cᴰ (funcCompᴰ Gᴰ Fᴰ) -- counit - εᴰ : NatTransᴰ A.ε (funcCompᴰ Fᴰ Gᴰ) 𝟙ᴰ⟨ Dᴰ + εᴰ : NatTransᴰ A.ε (funcCompᴰ Fᴰ Gᴰ) 𝟙ᴰ⟨ Dᴰ -- triangle identities Δ₁ᴰ : {x : C .ob} (xᴰ : Cᴰ.ob[ x ]) Fᴰ.F-homᴰ (ηᴰ .N-obᴰ xᴰ) Dᴰ.⋆ᴰ εᴰ .N-obᴰ (Fᴰ.F-obᴰ xᴰ) - Dᴰ.≡[ A.Δ₁ x ] + Dᴰ.≡[ A.Δ₁ x ] Dᴰ.idᴰ Δ₂ᴰ : {y : D .ob} (yᴰ : Dᴰ.ob[ y ]) ηᴰ .N-obᴰ (Gᴰ.F-obᴰ yᴰ) Cᴰ.⋆ᴰ Gᴰ.F-homᴰ (εᴰ .N-obᴰ yᴰ) - Cᴰ.≡[ A.Δ₂ y ] + Cᴰ.≡[ A.Δ₂ y ] Cᴰ.idᴰ \ No newline at end of file diff --git a/Cubical.Categories.Displayed.Cartesian.html b/Cubical.Categories.Displayed.Cartesian.html index 417b85f6ef..b80d9dff54 100644 --- a/Cubical.Categories.Displayed.Cartesian.html +++ b/Cubical.Categories.Displayed.Cartesian.html @@ -96,7 +96,7 @@ -- It trivially composes to the expected morphism. , Homᴰ≡-DiscreteOpfibration _ _) -- And it's trivially equal to any other choice. - , λ _ Σ≡Prop _ isSetHomᴰ _ _) (Homᴰ≡-DiscreteOpfibration _ _) + , λ _ Σ≡Prop _ isSetHomᴰ _ _) (Homᴰ≡-DiscreteOpfibration _ _) where lift-g : Σ[ cᴰ ob[ c ] ] Hom[ g ][ bᴰ , cᴰ ] lift-g = unique-lift g bᴰ .fst @@ -120,17 +120,17 @@ uniqueOpcleavageDiscreteOpfibration .snd opcleavage = implicitFunExt $ implicitFunExt $ funExt λ f funExt λ aᴰ ΣPathP $ - map-snd (ΣPathPProp isPropIsOpcartesian) $ + map-snd (ΣPathPProp isPropIsOpcartesian) $ PathPΣ $ unique-lift f aᴰ .snd (map-snd fst (opcleavage f aᴰ)) - open Functor - discreteOpfibrationToCopresheaf : Functor B (SET ℓC) - discreteOpfibrationToCopresheaf .F-ob b = ob[ b ] , isSet-fibers b - discreteOpfibrationToCopresheaf .F-hom f a = unique-lift f a .fst .fst - discreteOpfibrationToCopresheaf .F-id = funExt λ a + open Functor + discreteOpfibrationToCopresheaf : Functor B (SET ℓC) + discreteOpfibrationToCopresheaf .F-ob b = ob[ b ] , isSet-fibers b + discreteOpfibrationToCopresheaf .F-hom f a = unique-lift f a .fst .fst + discreteOpfibrationToCopresheaf .F-id = funExt λ a cong fst $ unique-lift B.id a .snd (a , idᴰ) - discreteOpfibrationToCopresheaf .F-seq f g = funExt λ a + discreteOpfibrationToCopresheaf .F-seq f g = funExt λ a let step1 = unique-lift f a .fst step2 = unique-lift g (step1 .fst) .fst @@ -172,7 +172,7 @@ R.[ _ ]∙[ _ ] Cᴰ.⋆IdLᴰ fgᴰ isIsoᴰ→isOpcartesian g .equiv-proof fgᴰ .snd (gᴰ , gᴰ-infib) = - Σ≡Prop _ isOfHLevelPathP' 1 Cᴰ.isSetHomᴰ _ _) $ + Σ≡Prop _ isOfHLevelPathP' 1 Cᴰ.isSetHomᴰ _ _) $ R.≡[]-rectify $ symP (R.reind-filler (basepath g) _) R.[ sym (basepath g) ]∙[ _ ] @@ -225,7 +225,7 @@ (σ : B [ a , b ]) where - open Functor + open Functor open Category -- Nice universal characterization of candidates for arrow substitution. @@ -243,7 +243,7 @@ symP (R.reind-filler _ _)) (cart .fst) , λ g' - Σ≡Prop + Σ≡Prop _ isOfHLevelPathP' 1 isSetHomᴰ _ _) (cong fst $ cart .snd $ map-snd @@ -255,10 +255,10 @@ cleavage σ _ .snd .snd _ .equiv-proof $ R.reind (B.⋆IdL _ sym (B.⋆IdR _)) (f ⋆ᴰ cleavage σ _ .snd .fst) - substitutionFunctor : Functor (VerticalCategory Cᴰ a) (VerticalCategory Cᴰ b) - substitutionFunctor .F-ob c = cleavage σ c .fst - substitutionFunctor .F-hom f = substituteArrow f .fst .fst - substitutionFunctor .F-id {x} = cong fst $ + substitutionFunctor : Functor (VerticalCategory Cᴰ a) (VerticalCategory Cᴰ b) + substitutionFunctor .F-ob c = cleavage σ c .fst + substitutionFunctor .F-hom f = substituteArrow f .fst .fst + substitutionFunctor .F-id {x} = cong fst $ substituteArrow (VerticalCategory Cᴰ a .Category.id) .snd $ VerticalCategory Cᴰ b .Category.id , R.≡[]-rectify @@ -269,7 +269,7 @@ symP (⋆IdLᴰ (cleavage σ x .snd .fst)) R.[ sym (B.⋆IdL σ) ]∙[ _ ] (R.reind-filler refl idᴰ R.[ refl ]⋆[ refl ] refl)) - substitutionFunctor .F-seq {x} {y} {z} f g = cong fst $ + substitutionFunctor .F-seq {x} {y} {z} f g = cong fst $ substituteArrow (VerticalCategory Cᴰ a .Category._⋆_ f g) .snd $ VerticalCategory Cᴰ b .Category._⋆_ (stepf .fst) (stepg .fst) , R.≡[]-rectify diff --git a/Cubical.Categories.Displayed.Functor.html b/Cubical.Categories.Displayed.Functor.html index 47de885258..30d575f1a8 100644 --- a/Cubical.Categories.Displayed.Functor.html +++ b/Cubical.Categories.Displayed.Functor.html @@ -20,34 +20,34 @@ ℓB ℓB' ℓBᴰ ℓBᴰ' ℓC ℓC' ℓCᴰ ℓCᴰ' ℓD ℓD' ℓDᴰ ℓDᴰ' ℓE ℓE' ℓEᴰ ℓEᴰ' : Level record Functorᴰ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (F : Functor C D) (Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ') (Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ') + (F : Functor C D) (Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ') (Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ') : Type (ℓ-max (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) (ℓ-max (ℓ-max ℓCᴰ ℓCᴰ') (ℓ-max ℓDᴰ ℓDᴰ'))) where no-eta-equality open Category - open Functor F + open Functor F private module Cᴰ = Categoryᴰ Cᴰ module Dᴰ = Categoryᴰ Dᴰ field - F-obᴰ : {x : C .ob} Cᴰ.ob[ x ] Dᴰ.ob[ F-ob x ] + F-obᴰ : {x : C .ob} Cᴰ.ob[ x ] Dᴰ.ob[ F-ob x ] F-homᴰ : {x y : C .ob} {f : C [ x , y ]} {xᴰ : Cᴰ.ob[ x ]} {yᴰ : Cᴰ.ob[ y ]} - Cᴰ [ f ][ xᴰ , yᴰ ] Dᴰ [ F-hom f ][ F-obᴰ xᴰ , F-obᴰ yᴰ ] + Cᴰ [ f ][ xᴰ , yᴰ ] Dᴰ [ F-hom f ][ F-obᴰ xᴰ , F-obᴰ yᴰ ] F-idᴰ : {x : C .ob} {xᴰ : Cᴰ.ob[ x ]} - F-homᴰ (Cᴰ.idᴰ {p = xᴰ}) Dᴰ.≡[ F-id {x} ] (Dᴰ.idᴰ {p = F-obᴰ xᴰ}) + F-homᴰ (Cᴰ.idᴰ {p = xᴰ}) Dᴰ.≡[ F-id {x} ] (Dᴰ.idᴰ {p = F-obᴰ xᴰ}) F-seqᴰ : {x y z : C .ob} {f : C [ x , y ]} {g : C [ y , z ]} {xᴰ : Cᴰ.ob[ x ]} {yᴰ : Cᴰ.ob[ y ]} {zᴰ : Cᴰ.ob[ z ]} (fᴰ : Cᴰ [ f ][ xᴰ , yᴰ ]) (gᴰ : Cᴰ [ g ][ yᴰ , zᴰ ]) - F-homᴰ (fᴰ Cᴰ.⋆ᴰ gᴰ) Dᴰ.≡[ F-seq f g ] F-homᴰ fᴰ Dᴰ.⋆ᴰ F-homᴰ gᴰ + F-homᴰ (fᴰ Cᴰ.⋆ᴰ gᴰ) Dᴰ.≡[ F-seq f g ] F-homᴰ fᴰ Dᴰ.⋆ᴰ F-homᴰ gᴰ -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {F G : Functor C D} {H : F G} +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {F G : Functor C D} {H : F G} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} {Fᴰ : Functorᴰ F Cᴰ Dᴰ} {Gᴰ : Functorᴰ G Cᴰ Dᴰ} where open Category - open Functor + open Functor open Functorᴰ private module Cᴰ = Categoryᴰ Cᴰ @@ -56,15 +56,15 @@ module Gᴰ = Functorᴰ Gᴰ Functorᴰ≡ : - (Hᴰ : {x : C .ob} (xᴰ : Cᴰ.ob[ x ]) PathP i Dᴰ.ob[ H i x ]) (Fᴰ.F-obᴰ xᴰ) (Gᴰ.F-obᴰ xᴰ)) + (Hᴰ : {x : C .ob} (xᴰ : Cᴰ.ob[ x ]) PathP i Dᴰ.ob[ H i x ]) (Fᴰ.F-obᴰ xᴰ) (Gᴰ.F-obᴰ xᴰ)) ({x y : C .ob} {f : C [ x , y ]} {xᴰ : Cᴰ.ob[ x ]} {yᴰ : Cᴰ.ob[ y ]} (fᴰ : Cᴰ [ f ][ xᴰ , yᴰ ]) - PathP i Dᴰ [ H i f ][ Hᴰ xᴰ i , Hᴰ yᴰ i ]) (Fᴰ.F-homᴰ fᴰ) (Gᴰ.F-homᴰ fᴰ)) + PathP i Dᴰ [ H i f ][ Hᴰ xᴰ i , Hᴰ yᴰ i ]) (Fᴰ.F-homᴰ fᴰ) (Gᴰ.F-homᴰ fᴰ)) PathP i Functorᴰ (H i) Cᴰ Dᴰ) Fᴰ Gᴰ Functorᴰ≡ Hᴰ α i .F-obᴰ xᴰ = Hᴰ xᴰ i Functorᴰ≡ Hᴰ α i .F-homᴰ fᴰ = α fᴰ i Functorᴰ≡ Hᴰ α i .F-idᴰ {xᴰ = xᴰ} = isProp→PathP - {B = λ i PathP j Dᴰ [ H i .F-id j ][ Hᴰ xᴰ i , Hᴰ xᴰ i ]) (α (Cᴰ.idᴰ) i) Dᴰ.idᴰ} + {B = λ i PathP j Dᴰ [ H i .F-id j ][ Hᴰ xᴰ i , Hᴰ xᴰ i ]) (α (Cᴰ.idᴰ) i) Dᴰ.idᴰ} i isOfHLevelPathP' 1 Dᴰ.isSetHomᴰ _ _) Fᴰ.F-idᴰ Gᴰ.F-idᴰ @@ -72,7 +72,7 @@ Functorᴰ≡ Hᴰ α i .F-seqᴰ {f = f} {g = g} {xᴰ = xᴰ} {zᴰ = zᴰ} fᴰ gᴰ = isProp→PathP {B = λ i - PathP j Dᴰ [ H i .F-seq f g j ][ Hᴰ xᴰ i , Hᴰ zᴰ i ]) + PathP j Dᴰ [ H i .F-seq f g j ][ Hᴰ xᴰ i , Hᴰ zᴰ i ]) (α (fᴰ Cᴰ.⋆ᴰ gᴰ) i) (α fᴰ i Dᴰ.⋆ᴰ α gᴰ i)} i isOfHLevelPathP' 1 Dᴰ.isSetHomᴰ _ _) (Fᴰ.F-seqᴰ fᴰ gᴰ) @@ -84,7 +84,7 @@ module _ where open Functorᴰ - 𝟙ᴰ⟨_⟩ : {C : Category ℓC ℓC'} (Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ') Functorᴰ 𝟙⟨ C Cᴰ Cᴰ + 𝟙ᴰ⟨_⟩ : {C : Category ℓC ℓC'} (Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ') Functorᴰ 𝟙⟨ C Cᴰ Cᴰ 𝟙ᴰ⟨ Cᴰ .F-obᴰ x = x 𝟙ᴰ⟨ Cᴰ .F-homᴰ f = f 𝟙ᴰ⟨ Cᴰ .F-idᴰ = refl @@ -93,7 +93,7 @@ -- Displayed functor composition module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {E : Category ℓE ℓE'} - {F : Functor C D} {G : Functor D E} + {F : Functor C D} {G : Functor D E} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} {Eᴰ : Categoryᴰ E ℓEᴰ ℓEᴰ'} (Gᴰ : Functorᴰ G Dᴰ Eᴰ) (Fᴰ : Functorᴰ F Cᴰ Dᴰ) where @@ -103,7 +103,7 @@ module Fᴰ = Functorᴰ Fᴰ module Gᴰ = Functorᴰ Gᴰ - funcCompᴰ : Functorᴰ (funcComp G F) Cᴰ Eᴰ + funcCompᴰ : Functorᴰ (funcComp G F) Cᴰ Eᴰ funcCompᴰ .F-obᴰ = Gᴰ.F-obᴰ Fᴰ.F-obᴰ funcCompᴰ .F-homᴰ = Gᴰ.F-homᴰ Fᴰ.F-homᴰ funcCompᴰ .F-idᴰ = compPathP' {B = Eᴰ [_][ _ , _ ]} (congP _ Gᴰ.F-homᴰ) Fᴰ.F-idᴰ) Gᴰ.F-idᴰ @@ -115,7 +115,7 @@ -- Displayed functor associativity F-assocᴰ : {B : Category ℓB ℓB'} {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {E : Category ℓE ℓE'} - {F : Functor B C} {G : Functor C D} {H : Functor D E} + {F : Functor B C} {G : Functor C D} {H : Functor D E} {Bᴰ : Categoryᴰ B ℓBᴰ ℓBᴰ'} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} {Eᴰ : Categoryᴰ E ℓEᴰ ℓEᴰ'} {Fᴰ : Functorᴰ F Bᴰ Cᴰ} {Gᴰ : Functorᴰ G Cᴰ Dᴰ} {Hᴰ : Functorᴰ H Dᴰ Eᴰ} @@ -124,7 +124,7 @@ -- Displayed functor unit laws -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {F : Functor C D} +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {F : Functor C D} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} {Fᴰ : Functorᴰ F Cᴰ Dᴰ} where open Functorᴰ @@ -145,17 +145,17 @@ -- Total functor of a displayed functor module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - {F : Functor C D} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} + {F : Functor C D} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} (Fᴰ : Functorᴰ F Cᴰ Dᴰ) where - open Functor + open Functor private module Fᴰ = Functorᴰ Fᴰ - ∫F : Functor (∫C Cᴰ) (∫C Dᴰ) - ∫F .F-ob (x , xᴰ) = _ , Fᴰ.F-obᴰ xᴰ - ∫F .F-hom (_ , fᴰ) = _ , Fᴰ.F-homᴰ fᴰ - ∫F .F-id = ΣPathP (_ , Fᴰ.F-idᴰ) - ∫F .F-seq _ _ = ΣPathP (_ , (Fᴰ.F-seqᴰ _ _)) + ∫F : Functor (∫C Cᴰ) (∫C Dᴰ) + ∫F .F-ob (x , xᴰ) = _ , Fᴰ.F-obᴰ xᴰ + ∫F .F-hom (_ , fᴰ) = _ , Fᴰ.F-homᴰ fᴰ + ∫F .F-id = ΣPathP (_ , Fᴰ.F-idᴰ) + ∫F .F-seq _ _ = ΣPathP (_ , (Fᴰ.F-seqᴰ _ _)) \ No newline at end of file diff --git a/Cubical.Categories.Displayed.Instances.Codomain.html b/Cubical.Categories.Displayed.Instances.Codomain.html index 161c1a9cd1..fb4ca2c2de 100644 --- a/Cubical.Categories.Displayed.Instances.Codomain.html +++ b/Cubical.Categories.Displayed.Instances.Codomain.html @@ -34,10 +34,10 @@ sym (C.⋆Assoc _ _ _) cong (C._⋆ _) fᴰ-comm C.⋆Assoc _ _ _ - codomainᴰ .⋆IdLᴰ (fᴰ , _) = ΣPathPProp _ C.isSetHom _ _) (C.⋆IdL fᴰ) - codomainᴰ .⋆IdRᴰ (fᴰ , _) = ΣPathPProp _ C.isSetHom _ _) (C.⋆IdR fᴰ) + codomainᴰ .⋆IdLᴰ (fᴰ , _) = ΣPathPProp _ C.isSetHom _ _) (C.⋆IdL fᴰ) + codomainᴰ .⋆IdRᴰ (fᴰ , _) = ΣPathPProp _ C.isSetHom _ _) (C.⋆IdR fᴰ) codomainᴰ .⋆Assocᴰ (fᴰ , _) (gᴰ , _) (hᴰ , _) = - ΣPathPProp _ C.isSetHom _ _) (C.⋆Assoc fᴰ gᴰ hᴰ) + ΣPathPProp _ C.isSetHom _ _) (C.⋆Assoc fᴰ gᴰ hᴰ) codomainᴰ .isSetHomᴰ = isSetΣSndProp C.isSetHom _ C.isSetHom _ _) open Covariant @@ -47,9 +47,9 @@ codomainOpcleavage _ _ .snd .fst = C.id , C.⋆IdL _ codomainOpcleavage _ _ .snd .snd _ .equiv-proof (gᴰ , gᴰ-commutes) .fst = (gᴰ , gᴰ-commutes sym (C.⋆Assoc _ _ _)) - , Σ≡Prop _ C.isSetHom _ _) (C.⋆IdL _) + , Σ≡Prop _ C.isSetHom _ _) (C.⋆IdL _) codomainOpcleavage _ _ .snd .snd _ .equiv-proof _ .snd (_ , infib) = - Σ≡Prop _ isSetΣSndProp C.isSetHom _ C.isSetHom _ _) _ _) $ - Σ≡Prop _ C.isSetHom _ _) $ + Σ≡Prop _ isSetΣSndProp C.isSetHom _ C.isSetHom _ _) _ _) $ + Σ≡Prop _ C.isSetHom _ _) $ sym (cong fst infib) C.⋆IdL _ \ No newline at end of file diff --git a/Cubical.Categories.Displayed.NaturalTransformation.html b/Cubical.Categories.Displayed.NaturalTransformation.html index 7c46582b53..62d7086709 100644 --- a/Cubical.Categories.Displayed.NaturalTransformation.html +++ b/Cubical.Categories.Displayed.NaturalTransformation.html @@ -19,7 +19,7 @@ module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where record NatTransᴰ - {F : Functor C D} {G : Functor C D} + {F : Functor C D} {G : Functor C D} (α : NatTrans F G) {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} (Fᴰ : Functorᴰ F Cᴰ Dᴰ) (Gᴰ : Functorᴰ G Cᴰ Dᴰ) @@ -44,7 +44,7 @@ open NatTrans open NatTransᴰ - module _ {F G H : Functor C D} {α : NatTrans F G} {β : NatTrans G H} + module _ {F G H : Functor C D} {α : NatTrans F G} {β : NatTrans G H} {Cᴰ : Categoryᴰ C ℓCᴰ ℓCᴰ'} {Dᴰ : Categoryᴰ D ℓDᴰ ℓDᴰ'} {Fᴰ : Functorᴰ F Cᴰ Dᴰ} {Gᴰ : Functorᴰ G Cᴰ Dᴰ} {Hᴰ : Functorᴰ H Cᴰ Dᴰ} where diff --git a/Cubical.Categories.Displayed.Properties.html b/Cubical.Categories.Displayed.Properties.html index 92238a96d5..002fece041 100644 --- a/Cubical.Categories.Displayed.Properties.html +++ b/Cubical.Categories.Displayed.Properties.html @@ -20,7 +20,7 @@ module _ {C : Category ℓC ℓ'C} {D : Category ℓD ℓ'D} - (Dᴰ : Categoryᴰ D ℓDᴰ ℓ'Dᴰ) (F : Functor C D) + (Dᴰ : Categoryᴰ D ℓDᴰ ℓ'Dᴰ) (F : Functor C D) where private @@ -29,35 +29,35 @@ module D = Category D open Categoryᴰ Dᴰ - open Functor F + open Functor F reindex : Categoryᴰ C ℓDᴰ ℓ'Dᴰ - reindex .Categoryᴰ.ob[_] c = ob[ F-ob c ] - reindex .Categoryᴰ.Hom[_][_,_] f aᴰ bᴰ = Hom[ F-hom f ][ aᴰ , bᴰ ] - reindex .Categoryᴰ.idᴰ = R.reind (sym F-id) idᴰ - reindex .Categoryᴰ._⋆ᴰ_ fᴰ gᴰ = R.reind (sym $ F-seq _ _) (fᴰ ⋆ᴰ gᴰ) + reindex .Categoryᴰ.ob[_] c = ob[ F-ob c ] + reindex .Categoryᴰ.Hom[_][_,_] f aᴰ bᴰ = Hom[ F-hom f ][ aᴰ , bᴰ ] + reindex .Categoryᴰ.idᴰ = R.reind (sym F-id) idᴰ + reindex .Categoryᴰ._⋆ᴰ_ fᴰ gᴰ = R.reind (sym $ F-seq _ _) (fᴰ ⋆ᴰ gᴰ) reindex .Categoryᴰ.⋆IdLᴰ fᴰ = R.≡[]-rectify $ - R.reind-filler-sym (F-seq _ _) _ + R.reind-filler-sym (F-seq _ _) _ R.[ _ ]∙[ _ ] - (R.reind-filler-sym F-id idᴰ R.[ _ ]⋆[ refl ] refl) + (R.reind-filler-sym F-id idᴰ R.[ _ ]⋆[ refl ] refl) R.[ _ ]∙[ _ ] ⋆IdLᴰ fᴰ reindex .Categoryᴰ.⋆IdRᴰ fᴰ = R.≡[]-rectify $ - R.reind-filler-sym (F-seq _ _) _ + R.reind-filler-sym (F-seq _ _) _ R.[ _ ]∙[ _ ] - (refl R.[ refl ]⋆[ _ ] R.reind-filler-sym F-id idᴰ) + (refl R.[ refl ]⋆[ _ ] R.reind-filler-sym F-id idᴰ) R.[ _ ]∙[ _ ] ⋆IdRᴰ fᴰ reindex .Categoryᴰ.⋆Assocᴰ fᴰ gᴰ hᴰ = R.≡[]-rectify $ - R.reind-filler-sym (F-seq _ _) _ + R.reind-filler-sym (F-seq _ _) _ R.[ _ ]∙[ _ ] - (R.reind-filler-sym (F-seq _ _) _ R.[ _ ]⋆[ refl ] refl) + (R.reind-filler-sym (F-seq _ _) _ R.[ _ ]⋆[ refl ] refl) R.[ _ ]∙[ _ ] ⋆Assocᴰ fᴰ gᴰ hᴰ R.[ _ ]∙[ _ ] - (refl R.[ refl ]⋆[ _ ] R.reind-filler (sym $ F-seq _ _) _) + (refl R.[ refl ]⋆[ _ ] R.reind-filler (sym $ F-seq _ _) _) R.[ _ ]∙[ _ ] - R.reind-filler (sym $ F-seq _ _) _ + R.reind-filler (sym $ F-seq _ _) _ reindex .Categoryᴰ.isSetHomᴰ = isSetHomᴰ diff --git a/Cubical.Categories.DistLatticeSheaf.Base.html b/Cubical.Categories.DistLatticeSheaf.Base.html index 30797c1cb5..96ec9676b5 100644 --- a/Cubical.Categories.DistLatticeSheaf.Base.html +++ b/Cubical.Categories.DistLatticeSheaf.Base.html @@ -40,7 +40,7 @@ module _ (L : DistLattice ) (C : Category ℓ' ℓ'') where open Category hiding (_⋆_ ; _∘_) - open Functor + open Functor open Order (DistLattice→Lattice L) open DistLatticeStr (snd L) open JoinSemilattice (Lattice→JoinSemilattice (DistLattice→Lattice L)) @@ -54,7 +54,7 @@ -- C-valued presheaves on a distributive lattice DLPreSheaf : Type (ℓ-max (ℓ-max ℓ') ℓ'') - DLPreSheaf = Functor (DLCat ^op) C + DLPreSheaf = Functor (DLCat ^op) C module _ (x y : L .fst)where hom-∨₁ : DLCat [ x , x ∨l y ] @@ -88,12 +88,12 @@ F(y) ------→ F(x ∧ y) -} Fsq : (F : DLPreSheaf) - F .F-hom hom-∨₂ ⋆⟨ C F .F-hom hom-∧₂ - F .F-hom hom-∨₁ ⋆⟨ C F .F-hom hom-∧₁ - Fsq F = F-square F sq + F .F-hom hom-∨₂ ⋆⟨ C F .F-hom hom-∧₂ + F .F-hom hom-∨₁ ⋆⟨ C F .F-hom hom-∧₁ + Fsq F = F-square F sq isDLSheafPullback : (F : DLPreSheaf) Type (ℓ-max (ℓ-max ℓ') ℓ'') - isDLSheafPullback F = isTerminal C (F-ob F 0l) + isDLSheafPullback F = isTerminal C (F-ob F 0l) × ((x y : L .fst) isPullback C _ _ _ (Fsq x y F)) isPropIsDLSheafPullback : F isProp (isDLSheafPullback F) @@ -114,7 +114,7 @@ open LimCone isDLSheafLimCone : (F : DLPreSheaf) isDLSheaf F - (n : ) (α : FinVec (fst L) n) LimCone (F ∘F (FinVec→Diag L α)) + (n : ) (α : FinVec (fst L) n) LimCone (F ∘F (FinVec→Diag L α)) lim (isDLSheafLimCone F isSheafF n α) = _ limCone (isDLSheafLimCone F isSheafF n α) = F-cone F (⋁Cone L α) univProp (isDLSheafLimCone F isSheafF n α) = isSheafF n α @@ -140,27 +140,27 @@ F≤PathPLemma : {x y z w : ob DLCat} (p : x y) (q : z w) (x≥z : (DLCat ^op) [ x , z ]) (y≥w : (DLCat ^op) [ y , w ]) - PathP i C [ F .F-ob (p i) , F .F-ob (q i) ]) (F .F-hom x≥z) (F .F-hom y≥w) - F≤PathPLemma p q x≥z y≥w i = F .F-hom (≤PathPLemma p q x≥z y≥w i) + PathP i C [ F .F-ob (p i) , F .F-ob (q i) ]) (F .F-hom x≥z) (F .F-hom y≥w) + F≤PathPLemma p q x≥z y≥w i = F .F-hom (≤PathPLemma p q x≥z y≥w i) L→P : isDLSheaf F isDLSheafPullback F fst (L→P isSheafF) = isTerminalF0 where -- F(0) ≡ terminal obj. - isLimConeF0 : isLimCone _ (F .F-ob 0l) (F-cone F (⋁Cone L ()))) + isLimConeF0 : isLimCone _ (F .F-ob 0l) (F-cone F (⋁Cone L ()))) isLimConeF0 = isSheafF 0 ()) - toCone : (y : ob C) Cone (funcComp F (FinVec→Diag L {n = 0} ()))) y + toCone : (y : ob C) Cone (funcComp F (FinVec→Diag L {n = 0} ()))) y coneOut (toCone y) (sing ()) coneOut (toCone y) (pair () _ _) coneOutCommutes (toCone y) {u = sing ()} idAr coneOutCommutes (toCone y) {u = pair () _ _} idAr - toConeMor : (y : ob C) (f : C [ y , F .F-ob 0l ]) + toConeMor : (y : ob C) (f : C [ y , F .F-ob 0l ]) isConeMor (toCone y) (F-cone F (⋁Cone L ()))) f toConeMor y f (sing ()) toConeMor y f (pair () _ _) - isTerminalF0 : isTerminal C (F .F-ob 0l) + isTerminalF0 : isTerminal C (F .F-ob 0l) fst (isTerminalF0 y) = isLimConeF0 _ (toCone y) .fst .fst snd (isTerminalF0 y) f = cong fst (isLimConeF0 _ (toCone y) .snd (_ , toConeMor y f)) @@ -170,22 +170,22 @@ xyVec zero = y xyVec one = x - inducedLimCone : LimCone (funcComp F (FinVec→Diag L xyVec)) - lim inducedLimCone = F .F-ob ( xyVec) + inducedLimCone : LimCone (funcComp F (FinVec→Diag L xyVec)) + lim inducedLimCone = F .F-ob ( xyVec) limCone inducedLimCone = F-cone F (⋁Cone L xyVec) univProp inducedLimCone = isSheafF 2 xyVec - theCone : Cone (funcComp F (FinVec→Diag L xyVec)) (F .F-ob (x ∨l y)) - coneOut (theCone) (sing zero) = F .F-hom (hom-∨₂ x y) - coneOut (theCone) (sing one) = F .F-hom (hom-∨₁ x y) + theCone : Cone (funcComp F (FinVec→Diag L xyVec)) (F .F-ob (x ∨l y)) + coneOut (theCone) (sing zero) = F .F-hom (hom-∨₂ x y) + coneOut (theCone) (sing one) = F .F-hom (hom-∨₁ x y) coneOut (theCone) (pair zero zero ()) coneOut (theCone) (pair zero one (s≤s z≤)) = - F .F-hom (hom-∨₂ x y) ⋆⟨ C F .F-hom (hom-∧₂ x y) + F .F-hom (hom-∨₂ x y) ⋆⟨ C F .F-hom (hom-∧₂ x y) coneOut (theCone) (pair one zero ()) coneOut (theCone) (pair one one (s≤s ())) coneOut (theCone) (pair (suc (suc _)) one (s≤s ())) coneOutCommutes (theCone) {u = u} idAr = - cong (seq' C (coneOut (theCone) u)) (F .F-id) ⋆IdR C _ + cong (seq' C (coneOut (theCone) u)) (F .F-id) ⋆IdR C _ coneOutCommutes (theCone) (singPairL {zero} {zero} {()}) coneOutCommutes (theCone) (singPairL {zero} {one} {s≤s z≤}) = refl coneOutCommutes (theCone) (singPairL {one} {zero} {()}) @@ -197,7 +197,7 @@ coneOutCommutes (theCone) (singPairR {one} {one} {s≤s ()}) coneOutCommutes (theCone) (singPairR {suc (suc _)} {one} {s≤s ()}) - theLimCone : LimCone (funcComp F (FinVec→Diag L xyVec)) + theLimCone : LimCone (funcComp F (FinVec→Diag L xyVec)) lim theLimCone = _ limCone theLimCone = theCone univProp theLimCone = @@ -207,26 +207,26 @@ xyPath = cong (y ∨l_) (∨lRid x) ∨lComm _ _ limPath : lim inducedLimCone lim theLimCone - limPath = cong (F .F-ob) xyPath + limPath = cong (F .F-ob) xyPath - limConePathP : PathP i Cone (funcComp F (FinVec→Diag L xyVec)) (limPath i)) + limConePathP : PathP i Cone (funcComp F (FinVec→Diag L xyVec)) (limPath i)) (limCone inducedLimCone) theCone limConePathP = conePathPOb helperPathP where helperPathP : - v PathP i C [ limPath i , F-ob (funcComp F (FinVec→Diag L xyVec)) v ]) + v PathP i C [ limPath i , F-ob (funcComp F (FinVec→Diag L xyVec)) v ]) (coneOut (limCone inducedLimCone) v) (coneOut theCone v) helperPathP (sing zero) = F≤PathPLemma xyPath refl (ind≤⋁ xyVec zero) (hom-∨₂ x y) helperPathP (sing one) = F≤PathPLemma xyPath refl (ind≤⋁ xyVec one) (hom-∨₁ x y) helperPathP (pair zero zero ()) helperPathP (pair zero one (s≤s z≤)) = - subst f PathP i C [ limPath i , F .F-ob (x ∧l y) ]) + subst f PathP i C [ limPath i , F .F-ob (x ∧l y) ]) (coneOut (limCone inducedLimCone) (pair zero one (s≤s z≤))) f) - (F-seq F _ _) helperHelperPathP + (F-seq F _ _) helperHelperPathP where - helperHelperPathP : PathP i C [ limPath i , F .F-ob (x ∧l y) ]) + helperHelperPathP : PathP i C [ limPath i , F .F-ob (x ∧l y) ]) (coneOut (limCone inducedLimCone) (pair zero one (s≤s z≤))) - (F .F-hom (hom-∨₂ x y ⋆⟨ (DLCat ^op) hom-∧₂ x y)) + (F .F-hom (hom-∨₂ x y ⋆⟨ (DLCat ^op) hom-∧₂ x y)) helperHelperPathP = F≤PathPLemma xyPath refl (is-trans _ (xyVec zero) _ (≤m→≤j _ _ (∧≤LCancel _ _)) (ind≤⋁ xyVec zero)) (hom-∨₂ x y ⋆⟨ (DLCat ^op) hom-∧₂ x y) @@ -242,7 +242,7 @@ snd (fst (P→L (isTerminalF0 , _) ℕ.zero α c cc)) (sing ()) snd (fst (P→L (isTerminalF0 , _) ℕ.zero α c cc)) (pair () _ _) snd (P→L (isTerminalF0 , _) ℕ.zero α c cc) _ = - Σ≡Prop (isPropIsConeMor _ _) (isTerminalF0 c .snd _) + Σ≡Prop (isPropIsConeMor _ _) (isTerminalF0 c .snd _) P→L (F0=1 , presPBSq) (ℕ.suc n) α c cc = uniqueExists (uniqH .fst .fst) @@ -258,20 +258,20 @@ -- the square we want theCospan : Cospan C - l theCospan = F .F-ob ( (α suc)) - m theCospan = F .F-ob ( β) - r theCospan = F .F-ob (α zero) - s₁ theCospan = F .F-hom (≤-⋁Ext _ _ λ _ hom-∧₁ _ _) - s₂ theCospan = F .F-hom (⋁IsMax _ _ λ _ hom-∧₂ _ _) + l theCospan = F .F-ob ( (α suc)) + m theCospan = F .F-ob ( β) + r theCospan = F .F-ob (α zero) + s₁ theCospan = F .F-hom (≤-⋁Ext _ _ λ _ hom-∧₁ _ _) + s₂ theCospan = F .F-hom (⋁IsMax _ _ λ _ hom-∧₂ _ _) thePB : Pullback C theCospan - pbOb thePB = F .F-ob ( α) - pbPr₁ thePB = F .F-hom (hom-∨₂ _ _) - pbPr₂ thePB = F .F-hom (hom-∨₁ _ _) - pbCommutes thePB = F-square F (is-prop-valued _ _ _ _) + pbOb thePB = F .F-ob ( α) + pbPr₁ thePB = F .F-hom (hom-∨₂ _ _) + pbPr₂ thePB = F .F-hom (hom-∨₁ _ _) + pbCommutes thePB = F-square F (is-prop-valued _ _ _ _) univProp thePB f g square = presPBSq (α zero) ( (α suc)) f g squarePath where - squarePath : f ⋆⟨ C F .F-hom (hom-∧₂ _ _) g ⋆⟨ C F .F-hom (hom-∧₁ _ _) + squarePath : f ⋆⟨ C F .F-hom (hom-∧₂ _ _) g ⋆⟨ C F .F-hom (hom-∧₁ _ _) squarePath = transport i f ⋆⟨ C F≤PathPLemma refl αβPath (hom-∧₂ _ _) (≤-⋁Ext _ _ λ _ hom-∧₁ _ _) (~ i) @@ -280,7 +280,7 @@ square -- the two induced cones on which we use the ind. hyp. - ccSuc : Cone (funcComp F (FinVec→Diag L (α suc))) c + ccSuc : Cone (funcComp F (FinVec→Diag L (α suc))) c coneOut ccSuc (sing i) = coneOut cc (sing (suc i)) coneOut ccSuc (pair i j i<j) = coneOut cc (pair (suc i) (suc j) (s≤s i<j)) coneOutCommutes ccSuc {sing _} idAr = coneOutCommutes cc idAr @@ -288,83 +288,83 @@ coneOutCommutes ccSuc singPairL = coneOutCommutes cc singPairL coneOutCommutes ccSuc singPairR = coneOutCommutes cc singPairR - cc∧Suc : Cone (funcComp F (FinVec→Diag L β)) c + cc∧Suc : Cone (funcComp F (FinVec→Diag L β)) c coneOut cc∧Suc (sing i) = coneOut cc (pair zero (suc i) (s≤s z≤)) coneOut cc∧Suc (pair i j i<j) = coneOut cc (pair (suc i) (suc j) (s≤s i<j)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) --(αⱼ ∧ αᵢ) ≥ (αⱼ ∧ α₀) ∧ (αᵢ ∧ α₀) coneOutCommutes cc∧Suc idAr = - cong (seq' C (coneOut cc∧Suc _)) ((funcComp F (FinVec→Diag L β)) .F-id) ⋆IdR C _ + cong (seq' C (coneOut cc∧Suc _)) ((funcComp F (FinVec→Diag L β)) .F-id) ⋆IdR C _ coneOutCommutes cc∧Suc (singPairL {i = i} {j = j} {i<j = i<j}) = coneOut cc (pair zero (suc i) (s≤s z≤)) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL) - ≡⟨ cong x seq' C x (funcComp F (FinVec→Diag L β) .F-hom singPairL)) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL) + ≡⟨ cong x seq' C x (funcComp F (FinVec→Diag L β) .F-hom singPairL)) (sym (coneOutCommutes cc singPairR)) - (coneOut cc (sing (suc i)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL) + (coneOut cc (sing (suc i)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL) ≡⟨ ⋆Assoc C _ _ _ - coneOut cc (sing (suc i)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL)) - ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C x) (sym (F .F-seq _ _)) - coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom - ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s z≤}) - ⋆⟨ DLCat ^op (FinVec→Diag L β) .F-hom (singPairL {i<j = i<j})) - ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom x) + coneOut cc (sing (suc i)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairL)) + ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C x) (sym (F .F-seq _ _)) + coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom + ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s z≤}) + ⋆⟨ DLCat ^op (FinVec→Diag L β) .F-hom (singPairL {i<j = i<j})) + ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) - coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom - ((FinVec→Diag L α) .F-hom (singPairL {i<j = s≤s i<j}) + coneOut cc (sing (suc i)) ⋆⟨ C F .F-hom + ((FinVec→Diag L α) .F-hom (singPairL {i<j = s≤s i<j}) ⋆⟨ DLCat ^op (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) - ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C x) (F .F-seq _ _) - coneOut cc (sing (suc i)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairL) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) + ≡⟨ cong x coneOut cc (sing (suc i)) ⋆⟨ C x) (F .F-seq _ _) + coneOut cc (sing (suc i)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairL) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) ≡⟨ sym (⋆Assoc C _ _ _) - (coneOut cc (sing (suc i)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairL)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) + (coneOut cc (sing (suc i)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairL)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) ≡⟨ cong - x x ⋆⟨ C F .F-hom + x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) (coneOutCommutes cc singPairL) coneOut cc (pair (suc i) (suc j) (s≤s i<j)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) coneOutCommutes cc∧Suc (singPairR {i = i} {j = j} {i<j = i<j}) = coneOut cc (pair zero (suc j) (s≤s z≤)) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR) - ≡⟨ cong x seq' C x (funcComp F (FinVec→Diag L β) .F-hom singPairR)) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR) + ≡⟨ cong x seq' C x (funcComp F (FinVec→Diag L β) .F-hom singPairR)) (sym (coneOutCommutes cc singPairR)) - (coneOut cc (sing (suc j)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR) + (coneOut cc (sing (suc j)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR) ≡⟨ ⋆Assoc C _ _ _ - coneOut cc (sing (suc j)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) - ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR)) - ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C x) (sym (F .F-seq _ _)) - coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom - ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s z≤}) - ⋆⟨ DLCat ^op (FinVec→Diag L β) .F-hom (singPairR {i<j = i<j})) - ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom x) + coneOut cc (sing (suc j)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) + ⋆⟨ C (funcComp F (FinVec→Diag L β) .F-hom singPairR)) + ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C x) (sym (F .F-seq _ _)) + coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom + ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s z≤}) + ⋆⟨ DLCat ^op (FinVec→Diag L β) .F-hom (singPairR {i<j = i<j})) + ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) - coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom - ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s i<j}) + coneOut cc (sing (suc j)) ⋆⟨ C F .F-hom + ((FinVec→Diag L α) .F-hom (singPairR {i<j = s≤s i<j}) ⋆⟨ DLCat ^op (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) - ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C x) (F .F-seq _ _) - coneOut cc (sing (suc j)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) + ≡⟨ cong x coneOut cc (sing (suc j)) ⋆⟨ C x) (F .F-seq _ _) + coneOut cc (sing (suc j)) ⋆⟨ C ((funcComp F (FinVec→Diag L α) .F-hom singPairR) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) ≡⟨ sym (⋆Assoc C _ _ _) - (coneOut cc (sing (suc j)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) + (coneOut cc (sing (suc j)) ⋆⟨ C (funcComp F (FinVec→Diag L α) .F-hom singPairR)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) ≡⟨ cong - x x ⋆⟨ C F .F-hom + x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _)))) (coneOutCommutes cc singPairR) coneOut cc (pair (suc i) (suc j) (s≤s i<j)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤RCancel _ _) (∧≤RCancel _ _))) -- our morphisms: - f : C [ c , F .F-ob (α zero) ] + f : C [ c , F .F-ob (α zero) ] f = coneOut cc (sing zero) - g : C [ c , F .F-ob ( (α suc)) ] + g : C [ c , F .F-ob ( (α suc)) ] g = P→L (F0=1 , presPBSq) n (α suc) c ccSuc .fst .fst k = g ⋆⟨ C s₁ theCospan @@ -379,21 +379,21 @@ (g ⋆⟨ C s₁ theCospan) ⋆⟨ C (coneOut (F-cone F (⋁Cone L β)) (sing i)) ≡⟨ ⋆Assoc C _ _ _ g ⋆⟨ C (s₁ theCospan ⋆⟨ C (coneOut (F-cone F (⋁Cone L β)) (sing i))) - ≡⟨ cong x g ⋆⟨ C x) (sym (F .F-seq _ _)) - g ⋆⟨ C F .F-hom + ≡⟨ cong x g ⋆⟨ C x) (sym (F .F-seq _ _)) + g ⋆⟨ C F .F-hom ((≤-⋁Ext _ _ λ _ hom-∧₁ _ _) ⋆⟨ DLCat ^op coneOut (⋁Cone L β) (sing i)) - ≡⟨ cong x g ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) - g ⋆⟨ C F .F-hom (coneOut (⋁Cone L (α suc)) (sing i) - ⋆⟨ DLCat ^op (FinVec→Diag L α) .F-hom (singPairR{i<j = s≤s z≤}) ) - ≡⟨ cong x g ⋆⟨ C x) (F .F-seq _ _) + ≡⟨ cong x g ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) + g ⋆⟨ C F .F-hom (coneOut (⋁Cone L (α suc)) (sing i) + ⋆⟨ DLCat ^op (FinVec→Diag L α) .F-hom (singPairR{i<j = s≤s z≤}) ) + ≡⟨ cong x g ⋆⟨ C x) (F .F-seq _ _) g ⋆⟨ C (coneOut (F-cone F (⋁Cone L (α suc))) (sing i) - ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR) + ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR) ≡⟨ sym (⋆Assoc C _ _ _) (g ⋆⟨ C coneOut (F-cone F (⋁Cone L (α suc))) (sing i)) - ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR - ≡⟨ cong x x ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR) + ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR + ≡⟨ cong x x ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR) (P→L (F0=1 , presPBSq) n (α suc) c ccSuc .fst .snd (sing i)) - coneOut cc (sing (suc i)) ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR + coneOut cc (sing (suc i)) ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairR ≡⟨ coneOutCommutes cc singPairR coneOut cc (pair zero (suc i) (s≤s z≤)) @@ -405,13 +405,13 @@ singCase : i o ⋆⟨ C (coneOut (F-cone F (⋁Cone L β)) (sing i)) coneOut cc∧Suc (sing i) singCase i = - o ⋆⟨ C (F .F-hom (ind≤⋁ β i)) + o ⋆⟨ C (F .F-hom (ind≤⋁ β i)) ≡⟨ ⋆Assoc C _ _ _ - f ⋆⟨ C (s₂ theCospan ⋆⟨ C (F .F-hom (ind≤⋁ β i))) - ≡⟨ cong x f ⋆⟨ C x) (sym (F .F-seq _ _)) - f ⋆⟨ C F .F-hom ((⋁IsMax _ _ λ _ hom-∧₂ _ _) ⋆⟨ DLCat ^op ind≤⋁ β i) - ≡⟨ cong x f ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) - f ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairL + f ⋆⟨ C (s₂ theCospan ⋆⟨ C (F .F-hom (ind≤⋁ β i))) + ≡⟨ cong x f ⋆⟨ C x) (sym (F .F-seq _ _)) + f ⋆⟨ C F .F-hom ((⋁IsMax _ _ λ _ hom-∧₂ _ _) ⋆⟨ DLCat ^op ind≤⋁ β i) + ≡⟨ cong x f ⋆⟨ C F .F-hom x) (is-prop-valued _ _ _ _) + f ⋆⟨ C funcComp F (FinVec→Diag L α) .F-hom singPairL ≡⟨ coneOutCommutes cc singPairL coneOut cc (pair zero (suc i) (s≤s z≤)) @@ -419,11 +419,11 @@ fgSquare = cong fst (isContr→isProp (P→L (F0=1 , presPBSq) n β c cc∧Suc) (k , isConeMorK) (o , isConeMorO)) - uniqH : ∃![ h C [ c , F .F-ob ( α) ] ] + uniqH : ∃![ h C [ c , F .F-ob ( α) ] ] (g h ⋆⟨ C pbPr₁ thePB) × (f h ⋆⟨ C pbPr₂ thePB) uniqH = univProp thePB _ _ fgSquare - toIsConeMor : (h : C [ c , F .F-ob ( α) ]) + toIsConeMor : (h : C [ c , F .F-ob ( α) ]) (g h ⋆⟨ C pbPr₁ thePB) × (f h ⋆⟨ C pbPr₂ thePB) isConeMor cc (F-cone F (⋁Cone L α)) h toIsConeMor h (gTriangle , fTriangle) = isConeMorSingLemma cc (F-cone F (⋁Cone L α)) singCase @@ -433,19 +433,19 @@ singCase zero = sym fTriangle singCase (suc i) = h ⋆⟨ C (coneOut (F-cone F (⋁Cone L α)) (sing (suc i))) - ≡⟨ cong x seq' C h (F .F-hom x)) (is-prop-valued _ _ _ _) - h ⋆⟨ C F .F-hom (hom-∨₂ _ _ ⋆⟨ DLCat ^op ⋁Cone L (α suc) .coneOut (sing i)) - ≡⟨ cong (seq' C h) (F .F-seq _ _) - h ⋆⟨ C (pbPr₁ thePB ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i))) + ≡⟨ cong x seq' C h (F .F-hom x)) (is-prop-valued _ _ _ _) + h ⋆⟨ C F .F-hom (hom-∨₂ _ _ ⋆⟨ DLCat ^op ⋁Cone L (α suc) .coneOut (sing i)) + ≡⟨ cong (seq' C h) (F .F-seq _ _) + h ⋆⟨ C (pbPr₁ thePB ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i))) ≡⟨ sym (⋆Assoc C _ _ _) - (h ⋆⟨ C pbPr₁ thePB) ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i)) - ≡⟨ cong x x ⋆⟨ C (F .F-hom (⋁Cone L (α suc) .coneOut (sing i)))) + (h ⋆⟨ C pbPr₁ thePB) ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i)) + ≡⟨ cong x x ⋆⟨ C (F .F-hom (⋁Cone L (α suc) .coneOut (sing i)))) (sym gTriangle) - g ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i)) + g ⋆⟨ C F .F-hom (⋁Cone L (α suc) .coneOut (sing i)) ≡⟨ P→L (F0=1 , presPBSq) n (α suc) c ccSuc .fst .snd (sing i) coneOut cc (sing (suc i)) - fromIsConeMor : (h : C [ c , F .F-ob ( α) ]) + fromIsConeMor : (h : C [ c , F .F-ob ( α) ]) isConeMor cc (F-cone F (⋁Cone L α)) h (g h ⋆⟨ C pbPr₁ thePB) × (f h ⋆⟨ C pbPr₂ thePB) fst (fromIsConeMor h isConeMorH) = @@ -458,12 +458,12 @@ singCase : i s ⋆⟨ C (coneOut (F-cone F (⋁Cone L (α suc))) (sing i)) coneOut ccSuc (sing i) singCase i = - (h ⋆⟨ C pbPr₁ thePB) ⋆⟨ C (F .F-hom (ind≤⋁ (α suc) i)) + (h ⋆⟨ C pbPr₁ thePB) ⋆⟨ C (F .F-hom (ind≤⋁ (α suc) i)) ≡⟨ ⋆Assoc C _ _ _ - h ⋆⟨ C (pbPr₁ thePB ⋆⟨ C (F .F-hom (ind≤⋁ (α suc) i))) - ≡⟨ cong (seq' C h) (sym (F .F-seq _ _)) - h ⋆⟨ C F .F-hom (hom-∨₂ _ _ ⋆⟨ DLCat ^op ind≤⋁ (α suc) i) - ≡⟨ cong x seq' C h (F .F-hom x)) (is-prop-valued _ _ _ _) + h ⋆⟨ C (pbPr₁ thePB ⋆⟨ C (F .F-hom (ind≤⋁ (α suc) i))) + ≡⟨ cong (seq' C h) (sym (F .F-seq _ _)) + h ⋆⟨ C F .F-hom (hom-∨₂ _ _ ⋆⟨ DLCat ^op ind≤⋁ (α suc) i) + ≡⟨ cong x seq' C h (F .F-hom x)) (is-prop-valued _ _ _ _) h ⋆⟨ C coneOut (F-cone F (⋁Cone L α)) (sing (suc i)) ≡⟨ isConeMorH (sing (suc i)) coneOut cc (sing (suc i)) @@ -478,7 +478,7 @@ (L' : (fst L)) (hB : IsBasis L L') where open Category - open Functor + open Functor open DistLatticeStr ⦃...⦄ open SemilatticeStr ⦃...⦄ @@ -486,8 +486,8 @@ private DLCat = DistLatticeCategory L - BasisCat = ΣPropCat DLCat L' - DLBasisPreSheaf = Functor (BasisCat ^op) C + BasisCat = ΣPropCat DLCat L' + DLBasisPreSheaf = Functor (BasisCat ^op) C instance _ = snd L @@ -525,18 +525,18 @@ square in C but now F is only presheaf on BasisCat -} BFsq : (F : DLBasisPreSheaf) - seq' C {x = F .F-ob x∨y} {y = F .F-ob y} {z = F .F-ob (x · y)} - (F .F-hom (hom-∨₂ L C (fst x) (fst y))) - (F .F-hom (hom-∧₂ L C (fst x) (fst y))) - seq' C {x = F .F-ob x∨y} {y = F .F-ob x} {z = F .F-ob (x · y)} - (F .F-hom (hom-∨₁ L C (fst x) (fst y))) - (F .F-hom (hom-∧₁ L C (fst x) (fst y))) - BFsq F = F-square F Bsq + seq' C {x = F .F-ob x∨y} {y = F .F-ob y} {z = F .F-ob (x · y)} + (F .F-hom (hom-∨₂ L C (fst x) (fst y))) + (F .F-hom (hom-∧₂ L C (fst x) (fst y))) + seq' C {x = F .F-ob x∨y} {y = F .F-ob x} {z = F .F-ob (x · y)} + (F .F-hom (hom-∨₁ L C (fst x) (fst y))) + (F .F-hom (hom-∧₁ L C (fst x) (fst y))) + BFsq F = F-square F Bsq -- On a basis this is weaker than the definition below! isDLBasisSheafPullback : DLBasisPreSheaf Type (ℓ-max (ℓ-max ℓ') ℓ'') - isDLBasisSheafPullback F = ((0∈L' : 0l L') isTerminal C (F .F-ob (0l , 0∈L'))) + isDLBasisSheafPullback F = ((0∈L' : 0l L') isTerminal C (F .F-ob (0l , 0∈L'))) × ((x y : ob BasisCat) (x∨y∈L' : fst x ∨l fst y L') isPullback C _ _ _ (BFsq x y x∨y∈L' F)) where open condSquare @@ -561,14 +561,14 @@ open Order (DistLattice→Lattice L) open Cone - BDiag : Functor (DLShfDiag n ) (BasisCat ^op) - F-ob BDiag (sing i) = α i - F-ob BDiag (pair i j _) = α i · α j -- α i ∧ α j + basis is closed under ∧ - F-hom BDiag idAr = is-refl _ - F-hom BDiag singPairL = ≤m→≤j _ _ (∧≤RCancel _ _) - F-hom BDiag singPairR = ≤m→≤j _ _ (∧≤LCancel _ _) - F-id BDiag = is-prop-valued _ _ _ _ - F-seq BDiag _ _ = is-prop-valued _ _ _ _ + BDiag : Functor (DLShfDiag n ) (BasisCat ^op) + F-ob BDiag (sing i) = α i + F-ob BDiag (pair i j _) = α i · α j -- α i ∧ α j + basis is closed under ∧ + F-hom BDiag idAr = is-refl _ + F-hom BDiag singPairL = ≤m→≤j _ _ (∧≤RCancel _ _) + F-hom BDiag singPairR = ≤m→≤j _ _ (∧≤LCancel _ _) + F-id BDiag = is-prop-valued _ _ _ _ + F-seq BDiag _ _ = is-prop-valued _ _ _ _ module _ (⋁α∈L' : i α i .fst) L') where private @@ -598,28 +598,28 @@ DLBasisSheaf→Terminal : (F : DLBasisPreSheaf) isDLBasisSheaf F - (0∈L' : 0l L') isTerminal C (F .F-ob (0l , 0∈L')) + (0∈L' : 0l L') isTerminal C (F .F-ob (0l , 0∈L')) DLBasisSheaf→Terminal F isSheafF 0∈L' = isTerminalF0 where open Cone open condCone {n = 0} ()) emptyCone = B⋁Cone 0∈L' - isLimConeF0 : isLimCone _ (F .F-ob (0l , 0∈L')) (F-cone F emptyCone) + isLimConeF0 : isLimCone _ (F .F-ob (0l , 0∈L')) (F-cone F emptyCone) isLimConeF0 = isSheafF ()) 0∈L' - toCone : (y : ob C) Cone (funcComp F BDiag) y + toCone : (y : ob C) Cone (funcComp F BDiag) y coneOut (toCone y) (sing ()) coneOut (toCone y) (pair () _ _) coneOutCommutes (toCone y) {u = sing ()} idAr coneOutCommutes (toCone y) {u = pair () _ _} idAr - toConeMor : (y : ob C) (f : C [ y , F .F-ob (0l , 0∈L') ]) + toConeMor : (y : ob C) (f : C [ y , F .F-ob (0l , 0∈L') ]) isConeMor (toCone y) (F-cone F emptyCone) f toConeMor y f (sing ()) toConeMor y f (pair () _ _) - isTerminalF0 : isTerminal C (F .F-ob (0l , 0∈L')) + isTerminalF0 : isTerminal C (F .F-ob (0l , 0∈L')) fst (isTerminalF0 y) = isLimConeF0 _ (toCone y) .fst .fst snd (isTerminalF0 y) f = cong fst (isLimConeF0 _ (toCone y) .snd (_ , toConeMor y f)) \ No newline at end of file diff --git a/Cubical.Categories.DistLatticeSheaf.ComparisonLemma.html b/Cubical.Categories.DistLatticeSheaf.ComparisonLemma.html index 446c0a6e3e..b7144b7626 100644 --- a/Cubical.Categories.DistLatticeSheaf.ComparisonLemma.html +++ b/Cubical.Categories.DistLatticeSheaf.ComparisonLemma.html @@ -66,7 +66,7 @@ open Category hiding (_∘_) - open Functor + open Functor open NatTrans open Cone open LimCone @@ -85,51 +85,51 @@ _ = snd L Lᵒᵖ = DistLatticeCategory L ^op - Bᵒᵖ = ΣPropCat (DistLatticeCategory L) B ^op + Bᵒᵖ = ΣPropCat (DistLatticeCategory L) B ^op - SheafB = ΣPropCat (FUNCTOR Bᵒᵖ C) isDLBasisSheafProp - SheafL = ΣPropCat (FUNCTOR Lᵒᵖ C) (isDLSheafProp L C) + SheafB = ΣPropCat (FUNCTOR Bᵒᵖ C) isDLBasisSheafProp + SheafL = ΣPropCat (FUNCTOR Lᵒᵖ C) (isDLSheafProp L C) - i = baseIncl ^opF + i = baseIncl ^opF - restPresSheafProp : (F : Functor Lᵒᵖ C) isDLSheaf L C F isDLBasisSheaf (F ∘F i) + restPresSheafProp : (F : Functor Lᵒᵖ C) isDLSheaf L C F isDLBasisSheaf (F ∘F i) restPresSheafProp F isSheafF α ⋁α∈B = - transport i isLimCone (diagPath i) (F .F-ob ( α')) (limConesPathP i)) (isSheafF _ α') + transport i isLimCone (diagPath i) (F .F-ob ( α')) (limConesPathP i)) (isSheafF _ α') where open condCone α α' : FinVec (fst L) _ α' i = α i .fst - diagPath : F ∘F (FinVec→Diag L α') (F ∘F i) ∘F BDiag - diagPath = Functor≡ diagPathOb diagPathHom + diagPath : F ∘F (FinVec→Diag L α') (F ∘F i) ∘F BDiag + diagPath = Functor≡ diagPathOb diagPathHom where - diagPathOb : c (F ∘F (FinVec→Diag L α')) .F-ob c ((F ∘F i) ∘F BDiag) .F-ob c + diagPathOb : c (F ∘F (FinVec→Diag L α')) .F-ob c ((F ∘F i) ∘F BDiag) .F-ob c diagPathOb (sing i) = refl - diagPathOb (pair i j i<j) = cong (F .F-ob) (∧lComm _ _) + diagPathOb (pair i j i<j) = cong (F .F-ob) (∧lComm _ _) diagPathHom : {c} {d} f PathP i C [ diagPathOb c i , diagPathOb d i ]) - ((F ∘F (FinVec→Diag L α')) .F-hom f) - (((F ∘F i) ∘F BDiag) .F-hom f) + ((F ∘F (FinVec→Diag L α')) .F-hom f) + (((F ∘F i) ∘F BDiag) .F-hom f) diagPathHom {sing i} idAr = refl diagPathHom {pair i j i<j} idAr = functorCongP {F = F} (toPathP (is-prop-valued _ _ _ _)) diagPathHom singPairL = functorCongP {F = F} (toPathP (is-prop-valued _ _ _ _)) diagPathHom singPairR = functorCongP {F = F} (toPathP (is-prop-valued _ _ _ _)) - limConesPathP : PathP i Cone (diagPath i) (F .F-ob ( α'))) - (F-cone F (⋁Cone L α')) (F-cone (F ∘F i) (B⋁Cone ⋁α∈B)) + limConesPathP : PathP i Cone (diagPath i) (F .F-ob ( α'))) + (F-cone F (⋁Cone L α')) (F-cone (F ∘F i) (B⋁Cone ⋁α∈B)) limConesPathP = conePathP limConesPathPOb where - limConesPathPOb : c PathP i C [ F .F-ob ( α') , diagPath i .F-ob c ]) + limConesPathPOb : c PathP i C [ F .F-ob ( α') , diagPath i .F-ob c ]) (F-cone F (⋁Cone L α') .coneOut c) - (F-cone (F ∘F i) (B⋁Cone ⋁α∈B) .coneOut c) + (F-cone (F ∘F i) (B⋁Cone ⋁α∈B) .coneOut c) limConesPathPOb (sing i) = refl limConesPathPOb (pair i j i<j) = functorCongP {F = F} (toPathP (is-prop-valued _ _ _ _)) --restriction to basis as functor - sheafRestriction : Functor SheafL SheafB - sheafRestriction = ΣPropCatFunc (precomposeF C i) restPresSheafProp + sheafRestriction : Functor SheafL SheafB + sheafRestriction = ΣPropCatFunc (precomposeF C i) restPresSheafProp -- important lemma: a natural transformation between sheaves on L is an -- iso if the restriction to B is an iso. This will give us that @@ -141,8 +141,8 @@ restIsoLemma (F , isSheafF) (G , isSheafG) α αiIso x = PT.rec (isPropIsIso _) basisHyp (isBasisB .⋁Basis x) where - Fi = F ∘F i - Gi = G ∘F i + Fi = F ∘F i + Gi = G ∘F i open NatIso αiNatIso : NatIso Fi Gi trans αiNatIso = α ∘ˡ i @@ -163,64 +163,64 @@ uᴮDiag = condCone.BDiag uᴮ - αi⁻¹ : (v : ob Bᵒᵖ) C [ Gi .F-ob v , Fi .F-ob v ] + αi⁻¹ : (v : ob Bᵒᵖ) C [ Gi .F-ob v , Fi .F-ob v ] αi⁻¹ v = αiIso v .inv - σ : NatTrans (F ∘F (FinVec→Diag L u)) (G ∘F (FinVec→Diag L u)) - N-ob σ = α .N-ob FinVec→Diag L u .F-ob - N-hom σ = α .N-hom FinVec→Diag L u .F-hom + σ : NatTrans (F ∘F (FinVec→Diag L u)) (G ∘F (FinVec→Diag L u)) + N-ob σ = α .N-ob FinVec→Diag L u .F-ob + N-hom σ = α .N-hom FinVec→Diag L u .F-hom open SemilatticeStr ⦃...⦄ instance _ = snd (Basis→MeetSemilattice L B isBasisB) - σ⁻¹ : NatTrans (G ∘F (FinVec→Diag L u)) (F ∘F (FinVec→Diag L u)) - N-ob σ⁻¹ (sing i) = αi⁻¹ (uᴮDiag .F-ob (sing i)) + σ⁻¹ : NatTrans (G ∘F (FinVec→Diag L u)) (F ∘F (FinVec→Diag L u)) + N-ob σ⁻¹ (sing i) = αi⁻¹ (uᴮDiag .F-ob (sing i)) N-ob σ⁻¹ (pair i j i<j) = αi⁻¹ ((u j , u∈B j) · (u i , u∈B i)) -- (uᴮDiag .F-ob (pair i j i<j)) modulo swapping i and j N-hom σ⁻¹ (idAr {x = v}) = - G .F-hom (id Lᵒᵖ) ⋆⟨ C σ⁻¹ .N-ob v ≡⟨ cong f f ⋆⟨ C σ⁻¹ .N-ob v) (G .F-id) + G .F-hom (id Lᵒᵖ) ⋆⟨ C σ⁻¹ .N-ob v ≡⟨ cong f f ⋆⟨ C σ⁻¹ .N-ob v) (G .F-id) id C ⋆⟨ C σ⁻¹ .N-ob v ≡⟨ ⋆IdL C _ σ⁻¹ .N-ob v ≡⟨ sym (⋆IdR C _) - σ⁻¹ .N-ob v ⋆⟨ C id C ≡⟨ cong f σ⁻¹ .N-ob v ⋆⟨ C f) (sym (F .F-id)) - σ⁻¹ .N-ob v ⋆⟨ C F .F-hom (id Lᵒᵖ) + σ⁻¹ .N-ob v ⋆⟨ C id C ≡⟨ cong f σ⁻¹ .N-ob v ⋆⟨ C f) (sym (F .F-id)) + σ⁻¹ .N-ob v ⋆⟨ C F .F-hom (id Lᵒᵖ) N-hom σ⁻¹ (singPairL {i} {j} {i<j}) = transport 𝕚 p 𝕚 r 𝕚) q where - p : PathP 𝕚 C [ G .F-ob (u i) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) - (G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j))) - (G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ ((u j , u∈B j) · (u i , u∈B i))) - p 𝕚 = G .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u i)) + p : PathP 𝕚 C [ G .F-ob (u i) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) + (G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j))) + (G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ ((u j , u∈B j) · (u i , u∈B i))) + p 𝕚 = G .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u i)) (≤m→≤j _ _ (∧≤RCancel _ _)) (≤m→≤j _ _ (∧≤LCancel _ _)) 𝕚) ⋆⟨ C αi⁻¹ (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚) - q : G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j)) - αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + q : G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j)) + αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) q = sqLL αiNatIso - r : PathP 𝕚 C [ G .F-ob (u i) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) - (αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) - (αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) + r : PathP 𝕚 C [ G .F-ob (u i) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) + (αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) + (αi⁻¹ (u i , u∈B i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) r 𝕚 = αi⁻¹ (u i , u∈B i) - ⋆⟨ C F .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u i)) + ⋆⟨ C F .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u i)) (≤m→≤j _ _ (∧≤RCancel _ _)) (≤m→≤j _ _ (∧≤LCancel _ _)) 𝕚) N-hom σ⁻¹ (singPairR {i} {j} {i<j}) = transport 𝕚 p 𝕚 r 𝕚) q where - p : PathP 𝕚 C [ G .F-ob (u j) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) - (G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j))) - (G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ ((u j , u∈B j) · (u i , u∈B i))) - p 𝕚 = G .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u j)) + p : PathP 𝕚 C [ G .F-ob (u j) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) + (G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j))) + (G .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋆⟨ C αi⁻¹ ((u j , u∈B j) · (u i , u∈B i))) + p 𝕚 = G .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u j)) (≤m→≤j _ _ (∧≤LCancel _ _)) (≤m→≤j _ _ (∧≤RCancel _ _)) 𝕚) ⋆⟨ C αi⁻¹ (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚) - q : G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j)) - αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + q : G .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ⋆⟨ C αi⁻¹ (uᴮDiag .F-ob (pair i j i<j)) + αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) q = sqLL αiNatIso - r : PathP 𝕚 C [ G .F-ob (u j) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) - (αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) - (αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) + r : PathP 𝕚 C [ G .F-ob (u j) , F .F-ob (fst (·Comm (u i , u∈B i) (u j , u∈B j) 𝕚)) ]) + (αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) + (αi⁻¹ (u j , u∈B j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) r 𝕚 = αi⁻¹ (u j , u∈B j) - ⋆⟨ C F .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u j)) + ⋆⟨ C F .F-hom (isProp→PathP 𝕚' is-prop-valued (∧lComm (u i) (u j) 𝕚') (u j)) (≤m→≤j _ _ (∧≤LCancel _ _)) (≤m→≤j _ _ (∧≤RCancel _ _)) 𝕚) -- σ and σ⁻¹ are inverse: @@ -257,12 +257,12 @@ (isConeMorSingLemma (limOfArrowsCone FLimCone σ) (F-cone G (⋁Cone L u)) λ i sym (α .N-hom (ind≤⋁ u i))) - q : PathP i C [ F .F-ob (⋁u≡x i) , G .F-ob (⋁u≡x i) ]) (α .N-ob ( u)) (α .N-ob x) + q : PathP i C [ F .F-ob (⋁u≡x i) , G .F-ob (⋁u≡x i) ]) (α .N-ob ( u)) (α .N-ob x) q = cong (α .N-ob) ⋁u≡x -- notation - private module _ {F G : Functor Bᵒᵖ C} (α : NatTrans F G) (x : ob Lᵒᵖ) where + private module _ {F G : Functor Bᵒᵖ C} (α : NatTrans F G) (x : ob Lᵒᵖ) where theDiag = (_↓Diag limitC i F x) -- note that (_↓Diag limitC i F x) = (_↓Diag limitC i G x) definitionally FLimCone = limitC (_↓Diag limitC i F x) (T* limitC i F x) @@ -280,13 +280,13 @@ coneOut diagCone (u , y≥u) = limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C α .N-ob u coneOutCommutes diagCone {u = (u , y≥u)} {v = (v , y≥v)} (u≥v , _) = - (limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C α .N-ob u) ⋆⟨ C G .F-hom u≥v + (limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C α .N-ob u) ⋆⟨ C G .F-hom u≥v ≡⟨ ⋆Assoc C _ _ _ - limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C (α .N-ob u ⋆⟨ C G .F-hom u≥v) + limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C (α .N-ob u ⋆⟨ C G .F-hom u≥v) ≡⟨ cong (seq' C (limOut FLimCone (u , is-trans _ _ _ y≥u x≥y))) (sym (α .N-hom u≥v)) - limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C (F .F-hom u≥v ⋆⟨ C α .N-ob v) + limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C (F .F-hom u≥v ⋆⟨ C α .N-ob v) ≡⟨ sym (⋆Assoc C _ _ _) - (limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C F .F-hom u≥v) ⋆⟨ C α .N-ob v + (limOut FLimCone (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C F .F-hom u≥v) ⋆⟨ C α .N-ob v ≡⟨ cong x x ⋆⟨ C α .N-ob v) (limOutCommutes FLimCone (u≥v , is-prop-valued _ _ _ _)) limOut FLimCone (v , is-trans _ _ _ y≥v x≥y) ⋆⟨ C α .N-ob v diagArrow : C [ RanOb limitC i F x , RanOb limitC i G y ] @@ -294,10 +294,10 @@ - DLRanFun : Functor (FUNCTOR Bᵒᵖ C) (FUNCTOR Lᵒᵖ C) - F-ob DLRanFun = DLRan - N-ob (F-hom DLRanFun α) x = limOfArrows (FLimCone α _) (GLimCone α _) (↓nt α x) - N-hom (F-hom DLRanFun {x = F} {y = G} α) {x = x} {y = y} x≥y = + DLRanFun : Functor (FUNCTOR Bᵒᵖ C) (FUNCTOR Lᵒᵖ C) + F-ob DLRanFun = DLRan + N-ob (F-hom DLRanFun α) x = limOfArrows (FLimCone α _) (GLimCone α _) (↓nt α x) + N-hom (F-hom DLRanFun {x = F} {y = G} α) {x = x} {y = y} x≥y = sym (limArrowUnique (GLimCone α y) _ (diagCone α x y x≥y) _ isConeMorL) (limArrowUnique (GLimCone α y) _ _ _ isConeMorR) where @@ -339,17 +339,17 @@ limOut (FLimCone α x) (u , is-trans _ _ _ y≥u x≥y) ⋆⟨ C α .N-ob u - F-id DLRanFun {x = F} = makeNatTransPath + F-id DLRanFun {x = F} = makeNatTransPath (funExt λ x limOfArrowsId (FLimCone (idTrans F) x)) - F-seq DLRanFun α β = makeNatTransPath + F-seq DLRanFun α β = makeNatTransPath (funExt λ x limOfArrowsSeq (FLimCone α x) (GLimCone α x) (GLimCone β x) (↓nt α x) (↓nt β x)) --extension of sheaves as functor - sheafExtension : Functor SheafB SheafL - sheafExtension = ΣPropCatFunc DLRanFun (isDLSheafDLRan isBasisB) + sheafExtension : Functor SheafB SheafL + sheafExtension = ΣPropCatFunc DLRanFun (isDLSheafDLRan isBasisB) @@ -365,7 +365,7 @@ -- the unit is induced by the universal property N-ob (trans (η winv)) (F , _ ) = - DLRanUnivProp (F ∘F i) F (idTrans _) .fst .fst + DLRanUnivProp (F ∘F i) F (idTrans _) .fst .fst N-hom (trans (η winv)) {x = (F , _)} {y = (G , _)} α = makeNatTransPath (funExt goal) where @@ -385,13 +385,13 @@ (NatTransCone _ _ _ G (idTrans _) x) ⋆⟨ C limOut (GLimCone (α ∘ˡ i) _) u⇂) ≡⟨ cong y α .N-ob x ⋆⟨ C y) (limArrowCommutes (GLimCone (α ∘ˡ i) _) _ _ _) - α .N-ob x ⋆⟨ C (G .F-hom u≤x ⋆⟨ C id C) + α .N-ob x ⋆⟨ C (G .F-hom u≤x ⋆⟨ C id C) ≡⟨ cong y α .N-ob x ⋆⟨ C y) (⋆IdR C _) - α .N-ob x ⋆⟨ C G .F-hom u≤x + α .N-ob x ⋆⟨ C G .F-hom u≤x ≡⟨ sym (α .N-hom u≤x) - F .F-hom u≤x ⋆⟨ C α .N-ob u + F .F-hom u≤x ⋆⟨ C α .N-ob u ≡⟨ cong x x ⋆⟨ C α .N-ob u) (sym (⋆IdR C _)) - F .F-hom u≤x ⋆⟨ C id C ⋆⟨ C α .N-ob u + F .F-hom u≤x ⋆⟨ C id C ⋆⟨ C α .N-ob u goal : (x : ob Lᵒᵖ) α .N-ob x ⋆⟨ C limArrow (GLimCone (α ∘ˡ i) _) _ @@ -403,33 +403,33 @@ goal x = sym (limArrowUnique _ _ _ _ (isConeMorComp x)) limArrowCompLimOfArrows _ _ _ _ _ - nIso (η winv) (F , isSheafF) = isIsoΣPropCat _ _ _ + nIso (η winv) (F , isSheafF) = isIsoΣPropCat _ _ _ (NatIso→FUNCTORIso _ _ σNatIso .snd) where - σ = DLRanUnivProp (F ∘F i) F (idTrans _) .fst .fst + σ = DLRanUnivProp (F ∘F i) F (idTrans _) .fst .fst σRestIso : isIso (FUNCTOR Bᵒᵖ C) (σ ∘ˡ i) - inv σRestIso = DLRanNatTrans (F ∘F i) - sec σRestIso = let ε = DLRanNatTrans (F ∘F i) - ε⁻¹ = NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .inv + inv σRestIso = DLRanNatTrans (F ∘F i) + sec σRestIso = let ε = DLRanNatTrans (F ∘F i) + ε⁻¹ = NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .inv in ε ●ᵛ (σ ∘ˡ i) ≡⟨ cong x ε ●ᵛ x) (sym (⋆IdR (FUNCTOR Bᵒᵖ C) _)) ε ●ᵛ ((σ ∘ˡ i) ●ᵛ idTrans _) ≡⟨ cong x ε ●ᵛ ((σ ∘ˡ i) ●ᵛ x)) - (sym (NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .ret)) + (sym (NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .ret)) ε ●ᵛ ((σ ∘ˡ i) ●ᵛ (ε ●ᵛ ε⁻¹)) ≡⟨ cong x ε ●ᵛ x) (sym (⋆Assoc (FUNCTOR Bᵒᵖ C) _ _ _)) ε ●ᵛ ((σ ∘ˡ i) ●ᵛ ε ●ᵛ ε⁻¹) ≡⟨ cong x ε ●ᵛ (x ●ᵛ ε⁻¹)) - (sym (DLRanUnivProp (F ∘F i) F (idTrans _) .fst .snd)) + (sym (DLRanUnivProp (F ∘F i) F (idTrans _) .fst .snd)) ε ●ᵛ (idTrans _ ●ᵛ ε⁻¹) ≡⟨ cong x ε ●ᵛ x) (⋆IdL (FUNCTOR Bᵒᵖ C) _) ε ●ᵛ ε⁻¹ - ≡⟨ NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .ret + ≡⟨ NatIso→FUNCTORIso _ _ (DLRanNatIso (F ∘F i)) .snd .ret idTrans _ - ret σRestIso = sym (DLRanUnivProp (F ∘F i) F (idTrans _) .fst .snd) + ret σRestIso = sym (DLRanUnivProp (F ∘F i) F (idTrans _) .fst .snd) - σNatIso : NatIso F (DLRan (F ∘F i)) + σNatIso : NatIso F (DLRan (F ∘F i)) trans σNatIso = σ nIso σNatIso = restIsoLemma (F , isSheafF) @@ -442,7 +442,7 @@ N-hom (trans (ε winv)) α = -- DLRanNatTrans F is functorial in F makeNatTransPath (funExt u limOfArrowsOut (FLimCone α (u .fst)) (GLimCone α (u .fst)) _ _)) - nIso (ε winv) (F , isSheafF) = isIsoΣPropCat _ _ _ + nIso (ε winv) (F , isSheafF) = isIsoΣPropCat _ _ _ (NatIso→FUNCTORIso _ _ (DLRanNatIso F) .snd) diff --git a/Cubical.Categories.DistLatticeSheaf.Diagram.html b/Cubical.Categories.DistLatticeSheaf.Diagram.html index f15e547385..760007e542 100644 --- a/Cubical.Categories.DistLatticeSheaf.Diagram.html +++ b/Cubical.Categories.DistLatticeSheaf.Diagram.html @@ -128,9 +128,9 @@ -- a lemma for eliminating pair cases -- when checking that somthing is a cone morphism -module _ {C : Category ℓ'} {n : } {F : Functor (DLShfDiag n ℓ'') C} where +module _ {C : Category ℓ'} {n : } {F : Functor (DLShfDiag n ℓ'') C} where open Category - open Functor F + open Functor F open Cone isConeMorSingLemma : {c d : ob C} {f : C [ c , d ]} @@ -141,11 +141,11 @@ isConeMorSingLemma {f = f} cc cd singHyp (pair i j i<j) = f ⋆⟨ C coneOut cd (pair i j i<j) ≡⟨ cong x f ⋆⟨ C x) (sym (cd .coneOutCommutes singPairL)) - f ⋆⟨ C (coneOut cd (sing i) ⋆⟨ C F-hom singPairL) + f ⋆⟨ C (coneOut cd (sing i) ⋆⟨ C F-hom singPairL) ≡⟨ sym (⋆Assoc C _ _ _) - (f ⋆⟨ C coneOut cd (sing i)) ⋆⟨ C F-hom singPairL - ≡⟨ cong x x ⋆⟨ C F-hom singPairL) (singHyp i) - coneOut cc (sing i) ⋆⟨ C F-hom singPairL + (f ⋆⟨ C coneOut cd (sing i)) ⋆⟨ C F-hom singPairL + ≡⟨ cong x x ⋆⟨ C F-hom singPairL) (singHyp i) + coneOut cc (sing i) ⋆⟨ C F-hom singPairL ≡⟨ cc .coneOutCommutes singPairL coneOut cc (pair i j i<j) @@ -166,18 +166,18 @@ open Order (DistLattice→Lattice L') open Category LCat - open Functor + open Functor open Cone - FinVec→Diag : {n : } FinVec L n Functor (DLShfDiag n ) LCat - F-ob (FinVec→Diag α) (sing i) = α i - F-ob (FinVec→Diag α) (pair i j _) = α j ∧l α i - F-hom (FinVec→Diag α) idAr = is-refl _ - F-hom (FinVec→Diag α) singPairL = ≤m→≤j _ _ (∧≤LCancel _ _) - F-hom (FinVec→Diag α) singPairR = ≤m→≤j _ _ (∧≤RCancel _ _) - F-id (FinVec→Diag α) = is-prop-valued _ _ _ _ - F-seq (FinVec→Diag α) _ _ = is-prop-valued _ _ _ _ + FinVec→Diag : {n : } FinVec L n Functor (DLShfDiag n ) LCat + F-ob (FinVec→Diag α) (sing i) = α i + F-ob (FinVec→Diag α) (pair i j _) = α j ∧l α i + F-hom (FinVec→Diag α) idAr = is-refl _ + F-hom (FinVec→Diag α) singPairL = ≤m→≤j _ _ (∧≤LCancel _ _) + F-hom (FinVec→Diag α) singPairR = ≤m→≤j _ _ (∧≤RCancel _ _) + F-id (FinVec→Diag α) = is-prop-valued _ _ _ _ + F-seq (FinVec→Diag α) _ _ = is-prop-valued _ _ _ _ ⋁Cone : {n : } (α : FinVec L n) Cone (FinVec→Diag α) ( α) coneOut (⋁Cone α) (sing i) = ind≤⋁ α i @@ -187,7 +187,7 @@ isLimCone⋁Cone : {n : } (α : FinVec L n) isLimCone (FinVec→Diag α) ( α) (⋁Cone α) fst (fst (isLimCone⋁Cone α u uCone)) = ⋁IsMax α _ λ i uCone .coneOut (sing i) snd (fst (isLimCone⋁Cone α u uCone)) _ = is-prop-valued _ _ _ _ - snd (isLimCone⋁Cone α _ uCone) _ = Σ≡Prop _ isPropIsConeMor uCone (⋁Cone α) _) + snd (isLimCone⋁Cone α _ uCone) _ = Σ≡Prop _ isPropIsConeMor uCone (⋁Cone α) _) (is-prop-valued _ _ _ _) @@ -196,7 +196,7 @@ (cspan : Cospan C) (pback : Pullback C cspan) where - open Functor + open Functor open Cone open Cospan ⦃...⦄ open Pullback ⦃...⦄ @@ -204,21 +204,21 @@ _ = cspan _ = pback - cospanAsDiag : Functor (DLShfDiag 2 ℓ'') C - F-ob cospanAsDiag (sing zero) = l - F-ob cospanAsDiag (sing one) = r - F-ob cospanAsDiag (pair _ _ _) = m - F-hom cospanAsDiag idAr = id C - F-hom cospanAsDiag {x = sing zero} singPairL = s₁ - F-hom cospanAsDiag {x = sing one} singPairL = s₂ - F-hom cospanAsDiag {x = sing zero} singPairR = s₁ - F-hom cospanAsDiag {x = sing one} singPairR = s₂ - F-id cospanAsDiag = refl - F-seq cospanAsDiag idAr idAr = sym (⋆IdL C _) - F-seq cospanAsDiag idAr singPairL = sym (⋆IdL C _) - F-seq cospanAsDiag idAr singPairR = sym (⋆IdL C _) - F-seq cospanAsDiag singPairL idAr = sym (⋆IdR C _) - F-seq cospanAsDiag singPairR idAr = sym (⋆IdR C _) + cospanAsDiag : Functor (DLShfDiag 2 ℓ'') C + F-ob cospanAsDiag (sing zero) = l + F-ob cospanAsDiag (sing one) = r + F-ob cospanAsDiag (pair _ _ _) = m + F-hom cospanAsDiag idAr = id C + F-hom cospanAsDiag {x = sing zero} singPairL = s₁ + F-hom cospanAsDiag {x = sing one} singPairL = s₂ + F-hom cospanAsDiag {x = sing zero} singPairR = s₁ + F-hom cospanAsDiag {x = sing one} singPairR = s₂ + F-id cospanAsDiag = refl + F-seq cospanAsDiag idAr idAr = sym (⋆IdL C _) + F-seq cospanAsDiag idAr singPairL = sym (⋆IdL C _) + F-seq cospanAsDiag idAr singPairR = sym (⋆IdL C _) + F-seq cospanAsDiag singPairL idAr = sym (⋆IdR C _) + F-seq cospanAsDiag singPairR idAr = sym (⋆IdR C _) pbPrAsCone : Cone cospanAsDiag pbOb coneOut pbPrAsCone (sing zero) = pbPr₁ @@ -282,14 +282,14 @@ module DLShfDiagsAsPullbacks (C : Category ℓ') - (F : Functor (DLShfDiag 2 ℓ'') C) + (F : Functor (DLShfDiag 2 ℓ'') C) (limF : LimCone F) where open Cospan open Pullback - open Functor ⦃...⦄ + open Functor ⦃...⦄ open Cone ⦃...⦄ open LimCone ⦃...⦄ instance @@ -299,11 +299,11 @@ DiagAsCospan : Cospan C - l DiagAsCospan = F-ob (sing zero) - m DiagAsCospan = F-ob (pair zero one (s≤s z≤)) - r DiagAsCospan = F-ob (sing one) - s₁ DiagAsCospan = F-hom singPairL - s₂ DiagAsCospan = F-hom singPairR + l DiagAsCospan = F-ob (sing zero) + m DiagAsCospan = F-ob (pair zero one (s≤s z≤)) + r DiagAsCospan = F-ob (sing one) + s₁ DiagAsCospan = F-hom singPairL + s₂ DiagAsCospan = F-hom singPairR LimAsPullback : Pullback C DiagAsCospan pbOb LimAsPullback = lim @@ -324,7 +324,7 @@ Cone.coneOut theCone (pair zero one (s≤s z≤)) = f ⋆⟨ C DiagAsCospan .s₁ Cone.coneOut theCone (pair one zero ()) Cone.coneOut theCone (pair one one (s≤s ())) - Cone.coneOutCommutes theCone {u} idAr = cong (seq' C (Cone.coneOut theCone u)) F-id + Cone.coneOutCommutes theCone {u} idAr = cong (seq' C (Cone.coneOut theCone u)) F-id ⋆IdR C (Cone.coneOut theCone u) Cone.coneOutCommutes theCone {sing zero} {pair ._ one (s≤s z≤)} singPairL = refl Cone.coneOutCommutes theCone {sing one} {pair ._ one (s≤s ())} singPairL @@ -342,13 +342,13 @@ toConeMor h' (tr₁ , tr₂) (pair zero one (s≤s z≤)) = path where path : h' ⋆⟨ C coneOut (pair zero one (s≤s z≤)) - f ⋆⟨ C F-hom singPairL + f ⋆⟨ C F-hom singPairL path = h' ⋆⟨ C coneOut (pair zero one (s≤s z≤)) ≡⟨ cong (seq' C h') (sym (coneOutCommutes singPairL)) - h' ⋆⟨ C (coneOut (sing zero) ⋆⟨ C F-hom singPairL) + h' ⋆⟨ C (coneOut (sing zero) ⋆⟨ C F-hom singPairL) ≡⟨ sym (⋆Assoc C _ _ _) - (h' ⋆⟨ C coneOut (sing zero)) ⋆⟨ C F-hom singPairL - ≡⟨ cong x seq' C x (F-hom singPairL)) (sym tr₁) - f ⋆⟨ C F-hom singPairL + (h' ⋆⟨ C coneOut (sing zero)) ⋆⟨ C F-hom singPairL + ≡⟨ cong x seq' C x (F-hom singPairL)) (sym tr₁) + f ⋆⟨ C F-hom singPairL toConeMor h' (tr₁ , tr₂) (pair one one (s≤s ())) \ No newline at end of file diff --git a/Cubical.Categories.DistLatticeSheaf.Extension.html b/Cubical.Categories.DistLatticeSheaf.Extension.html index b28ba7dc35..1395ae9af8 100644 --- a/Cubical.Categories.DistLatticeSheaf.Extension.html +++ b/Cubical.Categories.DistLatticeSheaf.Extension.html @@ -57,33 +57,33 @@ (limitC : Limits {} {} C) (L' : (fst L)) where open Category hiding (_∘_) - open Functor + open Functor open Cone open LimCone private DLCat = DistLatticeCategory L - DLSubCat = ΣPropCat DLCat L' - DLPreSheaf = Functor (DLCat ^op) C - DLSubPreSheaf = Functor (DLSubCat ^op) C + DLSubCat = ΣPropCat DLCat L' + DLPreSheaf = Functor (DLCat ^op) C + DLSubPreSheaf = Functor (DLSubCat ^op) C - baseIncl : Functor DLSubCat DLCat - F-ob baseIncl = fst - F-hom baseIncl f = f - F-id baseIncl = refl - F-seq baseIncl _ _ = refl + baseIncl : Functor DLSubCat DLCat + F-ob baseIncl = fst + F-hom baseIncl f = f + F-id baseIncl = refl + F-seq baseIncl _ _ = refl DLRan : DLSubPreSheaf DLPreSheaf - DLRan = Ran limitC (baseIncl ^opF) + DLRan = Ran limitC (baseIncl ^opF) - DLRanNatTrans : (F : DLSubPreSheaf) NatTrans (funcComp (DLRan F) (baseIncl ^opF)) F + DLRanNatTrans : (F : DLSubPreSheaf) NatTrans (funcComp (DLRan F) (baseIncl ^opF)) F DLRanNatTrans = RanNatTrans _ _ - DLRanUnivProp : (F : DLSubPreSheaf) (G : DLPreSheaf) (α : NatTrans (G ∘F (baseIncl ^opF)) F) - ∃![ σ NatTrans G (DLRan F) ] α (σ ∘ˡ (baseIncl ^opF)) ●ᵛ (DLRanNatTrans F) + DLRanUnivProp : (F : DLSubPreSheaf) (G : DLPreSheaf) (α : NatTrans (G ∘F (baseIncl ^opF)) F) + ∃![ σ NatTrans G (DLRan F) ] α (σ ∘ˡ (baseIncl ^opF)) ●ᵛ (DLRanNatTrans F) DLRanUnivProp = RanUnivProp _ _ - DLRanNatIso : (F : DLSubPreSheaf) NatIso (funcComp (DLRan F) (baseIncl ^opF)) F + DLRanNatIso : (F : DLSubPreSheaf) NatIso (funcComp (DLRan F) (baseIncl ^opF)) F DLRanNatIso F = RanNatIso _ _ _ _ _ idIsEquiv _) module _ (isBasisL' : IsBasis L L') (F : DLSubPreSheaf) @@ -104,27 +104,27 @@ instance _ = isBasisL' - F* = T* limitC (baseIncl ^opF) F + F* = T* limitC (baseIncl ^opF) F -- a neat lemma F≤PathPLemmaBase : {x y z w : ob DLSubCat} (p : x y) (q : z w) (x≥z : (DLSubCat ^op) [ x , z ]) (y≥w : (DLSubCat ^op) [ y , w ]) - PathP i C [ F .F-ob (p i) , F .F-ob (q i) ]) (F .F-hom x≥z) (F .F-hom y≥w) + PathP i C [ F .F-ob (p i) , F .F-ob (q i) ]) (F .F-hom x≥z) (F .F-hom y≥w) F≤PathPLemmaBase p q x≥z y≥w i = - F .F-hom (isProp→PathP j is-prop-valued (q j .fst) (p j .fst)) x≥z y≥w i) + F .F-hom (isProp→PathP j is-prop-valued (q j .fst) (p j .fst)) x≥z y≥w i) -- the crucial lemmas that will give us the cones needed to construct the unique -- arrow in our pullback square below module _ {n : } (α : FinVec (fst L) n) (α∈L' : i α i L') where private -- from the definition of the can extension - ⋁α↓ = _↓Diag limitC (baseIncl ^opF) F ( α) + ⋁α↓ = _↓Diag limitC (baseIncl ^opF) F ( α) F[⋁α]Cone = limitC ⋁α↓ (F* ( α)) .limCone -- notation that will be used throughout the file. -- this is the restriction of the limiting cone through which we define -- the Kan-extension to the αᵢ's - restCone : Cone (funcComp F (BDiag i α i , α∈L' i))) (DLRan F .F-ob ( α)) + restCone : Cone (funcComp F (BDiag i α i , α∈L' i))) (DLRan F .F-ob ( α)) coneOut restCone (sing i) = F[⋁α]Cone .coneOut ((α i , α∈L' i) , ind≤⋁ α i) coneOut restCone (pair i j i<j) = F[⋁α]Cone .coneOut ((α i ∧l α j , ∧lClosed _ _ (α∈L' i) (α∈L' j)) @@ -155,71 +155,71 @@ ⋁β∈L' u u∈L' u≤⋁α = subst-∈ L' (β≡ u u≤⋁α) u∈L' βCone : (c : ob C) (u : fst L) (u∈L' : u L') - Cone (funcComp F (BDiag i α i , α∈L' i))) c - Cone (funcComp F (BDiag i β u i , β∈L' u u∈L' i))) c + Cone (funcComp F (BDiag i α i , α∈L' i))) c + Cone (funcComp F (BDiag i β u i , β∈L' u u∈L' i))) c coneOut (βCone c u u∈L' cc) (sing i) = coneOut cc (sing i) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) coneOut (βCone c u u∈L' cc) (pair i j i<j) = coneOut cc (pair i j i<j) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _))) coneOutCommutes (βCone c u u∈L' cc) {u = v} idAr = cong x coneOut (βCone c u u∈L' cc) v ⋆⟨ C x) - (F-id (funcComp F (BDiag i β u i , β∈L' u u∈L' i)))) + (F-id (funcComp F (BDiag i β u i , β∈L' u u∈L' i)))) ⋆IdR C _ coneOutCommutes (βCone c u u∈L' cc) (singPairL {i = i} {j} {i<j}) = - coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairL) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairL) ≡⟨ ⋆Assoc C _ _ _ - coneOut cc (sing i) ⋆⟨ C (F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairL)) - ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (sym (F .F-seq _ _)) - coneOut cc (sing i) ⋆⟨ C F .F-hom + coneOut cc (sing i) ⋆⟨ C (F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairL)) + ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (sym (F .F-seq _ _)) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _) ⋆⟨ DLCat ^op - (BDiag i β u i , β∈L' u u∈L' i) .F-hom (singPairL {i = i} {j} {i<j}))) - ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C F .F-hom + (BDiag i β u i , β∈L' u u∈L' i) .F-hom (singPairL {i = i} {j} {i<j}))) + ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C F .F-hom {y = β u i ∧l β u j , ∧lClosed _ _ (β∈L' u u∈L' i) (β∈L' u u∈L' j)} x) (is-prop-valued _ _ _ _) coneOut cc (sing i) - ⋆⟨ C F .F-hom ((BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j}) + ⋆⟨ C F .F-hom ((BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j}) ⋆⟨ DLCat ^op ≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _))) - ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (F .F-seq _ _) + ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (F .F-seq _ _) coneOut cc (sing i) - ⋆⟨ C ((funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j})) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) + ⋆⟨ C ((funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j})) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) ≡⟨ sym (⋆Assoc C _ _ _) (coneOut cc (sing i) - ⋆⟨ C (funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j}))) - ⋆⟨ C F .F-hom ((≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) - ≡⟨ cong x x ⋆⟨ C F .F-hom + ⋆⟨ C (funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairL {i = i} {j} {i<j}))) + ⋆⟨ C F .F-hom ((≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) + ≡⟨ cong x x ⋆⟨ C F .F-hom {y = β u i ∧l β u j , ∧lClosed _ _ (β∈L' u u∈L' i) (β∈L' u u∈L' j)} (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) (coneOutCommutes cc (singPairL {i = i} {j} {i<j})) coneOut (βCone c u u∈L' cc) (pair i j i<j) coneOutCommutes (βCone c u u∈L' cc) (singPairR {i = i} {j} {i<j}) = - coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairR) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairR) ≡⟨ ⋆Assoc C _ _ _ - coneOut cc (sing j) ⋆⟨ C (F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairR)) - ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C x) (sym (F .F-seq _ _)) - coneOut cc (sing j) ⋆⟨ C F .F-hom + coneOut cc (sing j) ⋆⟨ C (F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C (funcComp F (BDiag i β u i , β∈L' u u∈L' i)) .F-hom singPairR)) + ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C x) (sym (F .F-seq _ _)) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _) ⋆⟨ DLCat ^op - (BDiag i β u i , β∈L' u u∈L' i) .F-hom (singPairR {i = i} {j} {i<j}))) - ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C F .F-hom + (BDiag i β u i , β∈L' u u∈L' i) .F-hom (singPairR {i = i} {j} {i<j}))) + ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C F .F-hom {y = β u i ∧l β u j , ∧lClosed _ _ (β∈L' u u∈L' i) (β∈L' u u∈L' j)} x) (is-prop-valued _ _ _ _) coneOut cc (sing j) - ⋆⟨ C F .F-hom ((BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j}) + ⋆⟨ C F .F-hom ((BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j}) ⋆⟨ DLCat ^op ≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _))) - ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C x) (F .F-seq _ _) + ≡⟨ cong x coneOut cc (sing j) ⋆⟨ C x) (F .F-seq _ _) coneOut cc (sing j) - ⋆⟨ C ((funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j})) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) + ⋆⟨ C ((funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j})) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) ≡⟨ sym (⋆Assoc C _ _ _) (coneOut cc (sing j) - ⋆⟨ C (funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j}))) - ⋆⟨ C F .F-hom ((≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) - ≡⟨ cong x x ⋆⟨ C F .F-hom + ⋆⟨ C (funcComp F (BDiag i α i , α∈L' i)) .F-hom (singPairR {i = i} {j} {i<j}))) + ⋆⟨ C F .F-hom ((≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) + ≡⟨ cong x x ⋆⟨ C F .F-hom {y = β u i ∧l β u j , ∧lClosed _ _ (β∈L' u u∈L' i) (β∈L' u u∈L' j)} (≤m→≤j _ _ (≤-∧Pres _ _ _ _ (∧≤LCancel _ _) (∧≤LCancel _ _)))) (coneOutCommutes cc (singPairR {i = i} {j} {i<j})) @@ -227,9 +227,9 @@ -- this is the crucial application of our assumption that F is a sheaf on L' - uniqβConeMor : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) + uniqβConeMor : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) (u : fst L) (u∈L' : u L') (u≤⋁α : u α) - ∃![ f C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] ] + ∃![ f C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] ] (isConeMor (βCone c u u∈L' cc) (F-cone F (B⋁Cone i β u i , β∈L' u u∈L' i) (⋁β∈L' u u∈L' u≤⋁α))) f) uniqβConeMor c cc u u∈L' u≤⋁α = @@ -237,37 +237,37 @@ -- the lemma giving us the desired cone - lemma1 : (c : ob C) Cone (funcComp F (BDiag i α i , α∈L' i))) c Cone (F* ( α)) c + lemma1 : (c : ob C) Cone (funcComp F (BDiag i α i , α∈L' i))) c Cone (F* ( α)) c coneOut (lemma1 c cc) ((u , u∈L') , u≤⋁α) = - subst x C [ c , F .F-ob x ]) - (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} (sym (β≡ u u≤⋁α))) + subst x C [ c , F .F-ob x ]) + (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} (sym (β≡ u u≤⋁α))) (uniqβConeMor c cc u u∈L' u≤⋁α .fst .fst) coneOutCommutes (lemma1 c cc) {u = ((u , u∈L') , u≤⋁α)} {v = ((v , v∈L') , v≤⋁α)} (v≤u , p) = transport i fᵤPathP i ⋆⟨ C ePathP i fᵥPathP i) triangle where - e : C [ F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) , F .F-ob ( (β v) , ⋁β∈L' v v∈L' v≤⋁α) ] - e = F .F-hom (subst2 _≤_ (β≡ v v≤⋁α) (β≡ u u≤⋁α) v≤u) -- F(⋁βᵥ≤⋁βᵤ) + e : C [ F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) , F .F-ob ( (β v) , ⋁β∈L' v v∈L' v≤⋁α) ] + e = F .F-hom (subst2 _≤_ (β≡ v v≤⋁α) (β≡ u u≤⋁α) v≤u) -- F(⋁βᵥ≤⋁βᵤ) - fᵤ : C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] + fᵤ : C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] fᵤ = uniqβConeMor c cc u u∈L' u≤⋁α .fst .fst - fᵥ : C [ c , F .F-ob ( (β v) , ⋁β∈L' v v∈L' v≤⋁α) ] + fᵥ : C [ c , F .F-ob ( (β v) , ⋁β∈L' v v∈L' v≤⋁α) ] fᵥ = uniqβConeMor c cc v v∈L' v≤⋁α .fst .fst -- for convenience - pᵤ = (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} (sym (β≡ u u≤⋁α))) - pᵥ = (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' v v∈L' v≤⋁α} (sym (β≡ v v≤⋁α))) + pᵤ = (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} (sym (β≡ u u≤⋁α))) + pᵥ = (Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' v v∈L' v≤⋁α} (sym (β≡ v v≤⋁α))) - fᵤPathP : PathP i C [ c , F .F-ob (pᵤ i) ]) + fᵤPathP : PathP i C [ c , F .F-ob (pᵤ i) ]) fᵤ (coneOut (lemma1 c cc) ((u , u∈L') , u≤⋁α)) - fᵤPathP = subst-filler x C [ c , F .F-ob x ]) pᵤ fᵤ + fᵤPathP = subst-filler x C [ c , F .F-ob x ]) pᵤ fᵤ - fᵥPathP : PathP i C [ c , F .F-ob (pᵥ i) ]) + fᵥPathP : PathP i C [ c , F .F-ob (pᵥ i) ]) fᵥ (coneOut (lemma1 c cc) ((v , v∈L') , v≤⋁α)) - fᵥPathP = subst-filler x C [ c , F .F-ob x ]) pᵥ fᵥ + fᵥPathP = subst-filler x C [ c , F .F-ob x ]) pᵥ fᵥ - ePathP : PathP i C [ F .F-ob (pᵤ i) , F .F-ob (pᵥ i) ]) e (F .F-hom v≤u) - ePathP i = F .F-hom (subst2-filler (_≤_) (β≡ v v≤⋁α) (β≡ u u≤⋁α) v≤u (~ i)) + ePathP : PathP i C [ F .F-ob (pᵤ i) , F .F-ob (pᵥ i) ]) e (F .F-hom v≤u) + ePathP i = F .F-hom (subst2-filler (_≤_) (β≡ v v≤⋁α) (β≡ u u≤⋁α) v≤u (~ i)) -- triangle to be transported by universal property @@ -282,68 +282,68 @@ (F-cone F (B⋁Cone i β v i , β∈L' v v∈L' i) (⋁β∈L' v v∈L' v≤⋁α))) singCase where - singCase : i (fᵤ ⋆⟨ C e) ⋆⟨ C F .F-hom (ind≤⋁ (β v) i) - coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j (v ∧l α i) (α i) (∧≤LCancel _ _)) + singCase : i (fᵤ ⋆⟨ C e) ⋆⟨ C F .F-hom (ind≤⋁ (β v) i) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j (v ∧l α i) (α i) (∧≤LCancel _ _)) singCase i = - (fᵤ ⋆⟨ C e) ⋆⟨ C F .F-hom (ind≤⋁ (β v) i) + (fᵤ ⋆⟨ C e) ⋆⟨ C F .F-hom (ind≤⋁ (β v) i) ≡⟨ ⋆Assoc C _ _ _ - fᵤ ⋆⟨ C (e ⋆⟨ C F .F-hom (ind≤⋁ (β v) i)) - ≡⟨ cong x fᵤ ⋆⟨ C x) (sym (F .F-seq _ _)) - fᵤ ⋆⟨ C F .F-hom + fᵤ ⋆⟨ C (e ⋆⟨ C F .F-hom (ind≤⋁ (β v) i)) + ≡⟨ cong x fᵤ ⋆⟨ C x) (sym (F .F-seq _ _)) + fᵤ ⋆⟨ C F .F-hom (subst2 _≤_ (β≡ v v≤⋁α) (β≡ u u≤⋁α) v≤u ⋆⟨ DLCat ^op ind≤⋁ (β v) i) - ≡⟨ cong x fᵤ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ v∈L' (α∈L' i)} x) + ≡⟨ cong x fᵤ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ v∈L' (α∈L' i)} x) (is-prop-valued _ _ _ _) - fᵤ ⋆⟨ C F .F-hom + fᵤ ⋆⟨ C F .F-hom (ind≤⋁ (β u) i ⋆⟨ DLCat ^op ≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) - ≡⟨ cong x fᵤ ⋆⟨ C x) (F .F-seq _ _) - fᵤ ⋆⟨ C (F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (ind≤⋁ (β u) i) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) + ≡⟨ cong x fᵤ ⋆⟨ C x) (F .F-seq _ _) + fᵤ ⋆⟨ C (F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (ind≤⋁ (β u) i) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) ≡⟨ sym (⋆Assoc C _ _ _) - (fᵤ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (ind≤⋁ (β u) i)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) - ≡⟨ cong x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) + (fᵤ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (ind≤⋁ (β u) i)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) + ≡⟨ cong x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) (uniqβConeMor c cc u u∈L' u≤⋁α .fst .snd (sing i)) - (coneOut cc (sing i) ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} + (coneOut cc (sing i) ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (≤m→≤j (u ∧l α i) (α i) (∧≤LCancel _ _))) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) ≡⟨ ⋆Assoc C _ _ _ - coneOut cc (sing i) ⋆⟨ C (F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} + coneOut cc (sing i) ⋆⟨ C (F .F-hom {y = _ , ∧lClosed _ _ u∈L' (α∈L' i)} (≤m→≤j (u ∧l α i) (α i) (∧≤LCancel _ _)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) - ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (sym (F .F-seq _ _)) - coneOut cc (sing i) ⋆⟨ C F .F-hom + ⋆⟨ C F .F-hom (≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u)))) + ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C x) (sym (F .F-seq _ _)) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j (u ∧l α i) (α i) (∧≤LCancel _ _) ⋆⟨ DLCat ^op ≤m→≤j _ _ (≤-∧RPres _ _ _ (≤j→≤m _ _ v≤u))) - ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C F .F-hom + ≡⟨ cong x coneOut cc (sing i) ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ v∈L' (α∈L' i)} x) (is-prop-valued _ _ _ _) - coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j (v ∧l α i) (α i) (∧≤LCancel _ _)) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j (v ∧l α i) (α i) (∧≤LCancel _ _)) -- gives us preservation of cone morphisms that ensure uniqueness - lemma2 : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) - (f : C [ c , (DLRan F .F-ob ( α)) ]) + lemma2 : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) + (f : C [ c , (DLRan F .F-ob ( α)) ]) isConeMor cc restCone f isConeMor (lemma1 c cc) F[⋁α]Cone f lemma2 c cc f isRestConeMorf ((u , u∈L') , u≤⋁α) = transport i f ⋆⟨ C coneOutPathP i bᵤPathP i) triangle where -- for convenience - pᵤ = Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} + pᵤ = Σ≡Prop x L' x .snd) {u = _ , ⋁β∈L' u u∈L' u≤⋁α} {v = _ , u∈L'} (sym (β≡ u u≤⋁α)) - bᵤ : C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] + bᵤ : C [ c , F .F-ob ( (β u) , ⋁β∈L' u u∈L' u≤⋁α) ] bᵤ = uniqβConeMor c cc u u∈L' u≤⋁α .fst .fst - bᵤPathP : PathP i C [ c , F .F-ob (pᵤ i) ]) + bᵤPathP : PathP i C [ c , F .F-ob (pᵤ i) ]) bᵤ (coneOut (lemma1 c cc) ((u , u∈L') , u≤⋁α)) - bᵤPathP = subst-filler x C [ c , F .F-ob x ]) pᵤ bᵤ + bᵤPathP = subst-filler x C [ c , F .F-ob x ]) pᵤ bᵤ ⋁βᵤ : ob ⋁α↓ ⋁βᵤ = (( (β u) , ⋁β∈L' u u∈L' u≤⋁α) , subst (_≤ α) (β≡ u u≤⋁α) u≤⋁α) - coneOutPathP : PathP i C [ (DLRan F .F-ob ( α)) , F .F-ob (pᵤ i) ]) + coneOutPathP : PathP i C [ (DLRan F .F-ob ( α)) , F .F-ob (pᵤ i) ]) (coneOut F[⋁α]Cone ⋁βᵤ) (coneOut F[⋁α]Cone ((u , u∈L') , u≤⋁α)) coneOutPathP i = coneOut F[⋁α]Cone ((pᵤ i) , subst-filler (_≤ α) (β≡ u u≤⋁α) u≤⋁α (~ i)) @@ -362,28 +362,28 @@ u∧αᵢ≤⋁α : i (DLCat ^op) [ α , u ∧l α i ] u∧αᵢ≤⋁α _ = is-trans _ _ _ (≤m→≤j _ _ (∧≤RCancel _ _)) u≤⋁α - singCase : i (f ⋆⟨ C coneOut F[⋁α]Cone ⋁βᵤ) ⋆⟨ C F .F-hom (ind≤⋁ (β u) i) + singCase : i (f ⋆⟨ C coneOut F[⋁α]Cone ⋁βᵤ) ⋆⟨ C F .F-hom (ind≤⋁ (β u) i) coneOut (βCone c u u∈L' cc) (sing i) singCase i = - (f ⋆⟨ C coneOut F[⋁α]Cone ⋁βᵤ) ⋆⟨ C F .F-hom (ind≤⋁ (β u) i) + (f ⋆⟨ C coneOut F[⋁α]Cone ⋁βᵤ) ⋆⟨ C F .F-hom (ind≤⋁ (β u) i) ≡⟨ ⋆Assoc C _ _ _ - f ⋆⟨ C (coneOut F[⋁α]Cone ⋁βᵤ ⋆⟨ C F .F-hom (ind≤⋁ (β u) i)) + f ⋆⟨ C (coneOut F[⋁α]Cone ⋁βᵤ ⋆⟨ C F .F-hom (ind≤⋁ (β u) i)) ≡⟨ cong x f ⋆⟨ C x) (coneOutCommutes F[⋁α]Cone (ind≤⋁ (β u) i , is-prop-valued _ _ _ _)) f ⋆⟨ C coneOut F[⋁α]Cone ((u ∧l α i , ∧lClosed _ _ u∈L' (α∈L' i)) , u∧αᵢ≤⋁α i) ≡⟨ cong x f ⋆⟨ C x) (sym (coneOutCommutes F[⋁α]Cone (≤m→≤j _ _ (∧≤LCancel _ _) , is-prop-valued _ _ _ _))) f ⋆⟨ C (coneOut F[⋁α]Cone ((α i , α∈L' i) , ind≤⋁ α i) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) ≡⟨ sym (⋆Assoc C _ _ _) (f ⋆⟨ C coneOut F[⋁α]Cone ((α i , α∈L' i) , ind≤⋁ α i)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - ≡⟨ cong x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) (isRestConeMorf (sing i)) - coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ≡⟨ cong x x ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) (isRestConeMorf (sing i)) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) -- the other direction, surprisingly hard - lemma3 : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) - (f : C [ c , DLRan F .F-ob ( α) ]) + lemma3 : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) + (f : C [ c , DLRan F .F-ob ( α) ]) isConeMor (lemma1 c cc) F[⋁α]Cone f isConeMor cc restCone f lemma3 c cc f isConeMorF = isConeMorSingLemma cc restCone singCase @@ -400,24 +400,24 @@ -- modulo transport Σpathhelper : (α i , α∈L' i) ( (β (α i)) , ⋁β∈L' (α i) (α∈L' i) (ind≤⋁ α i)) - Σpathhelper = Σ≡Prop x L' x .snd) (β≡ (α i) (ind≤⋁ α i)) + Σpathhelper = Σ≡Prop x L' x .snd) (β≡ (α i) (ind≤⋁ α i)) Σpathhelper2 : ( (β (α i)) , ⋁β∈L' (α i) (α∈L' i) (ind≤⋁ α i)) (α i , α∈L' i) - Σpathhelper2 = Σ≡Prop x L' x .snd) (sym (β≡ (α i) (ind≤⋁ α i))) + Σpathhelper2 = Σ≡Prop x L' x .snd) (sym (β≡ (α i) (ind≤⋁ α i))) - ccᵢSubst : C [ c , F .F-ob ( (β (α i)) , ⋁β∈L' (α i) (α∈L' i) (ind≤⋁ α i)) ] - ccᵢSubst = subst x C [ c , F .F-ob x ]) - (Σ≡Prop x L' x .snd) (β≡ (α i) (ind≤⋁ α i))) + ccᵢSubst : C [ c , F .F-ob ( (β (α i)) , ⋁β∈L' (α i) (α∈L' i) (ind≤⋁ α i)) ] + ccᵢSubst = subst x C [ c , F .F-ob x ]) + (Σ≡Prop x L' x .snd) (β≡ (α i) (ind≤⋁ α i))) (coneOut cc (sing i)) - ccᵢSubstFiller : PathP j C [ c , F .F-ob (Σpathhelper j) ]) + ccᵢSubstFiller : PathP j C [ c , F .F-ob (Σpathhelper j) ]) (coneOut cc (sing i)) ccᵢSubst - ccᵢSubstFiller = subst-filler x C [ c , F .F-ob x ]) Σpathhelper (coneOut cc (sing i)) + ccᵢSubstFiller = subst-filler x C [ c , F .F-ob x ]) Σpathhelper (coneOut cc (sing i)) - βSubstFiller : PathP j C [ c , F .F-ob (Σpathhelper2 j) ]) + βSubstFiller : PathP j C [ c , F .F-ob (Σpathhelper2 j) ]) (uniqβConeMor c cc (α i) (α∈L' i) (ind≤⋁ α i) .fst .fst) (coneOut (lemma1 c cc) ((α i , α∈L' i) , ind≤⋁ α i)) - βSubstFiller = subst-filler x C [ c , F .F-ob x ]) Σpathhelper2 + βSubstFiller = subst-filler x C [ c , F .F-ob x ]) Σpathhelper2 (uniqβConeMor c cc (α i) (α∈L' i) (ind≤⋁ α i) .fst .fst) Σpathhelperpath : Σpathhelper2 sym Σpathhelper @@ -426,10 +426,10 @@ isSetL' : isSet (ob DLSubCat) isSetL' = isSetΣSndProp is-set λ x L' x .snd - helperPathP : PathP j C [ c , F .F-ob (Σpathhelper (~ j)) ]) + helperPathP : PathP j C [ c , F .F-ob (Σpathhelper (~ j)) ]) (uniqβConeMor c cc (α i) (α∈L' i) (ind≤⋁ α i) .fst .fst) (coneOut (lemma1 c cc) ((α i , α∈L' i) , ind≤⋁ α i)) - helperPathP = subst p PathP j C [ c , F .F-ob (p j) ]) + helperPathP = subst p PathP j C [ c , F .F-ob (p j) ]) (uniqβConeMor c cc (α i) (α∈L' i) (ind≤⋁ α i) .fst .fst) (coneOut (lemma1 c cc) ((α i , α∈L' i) , ind≤⋁ α i))) Σpathhelperpath βSubstFiller @@ -443,8 +443,8 @@ (⋁β∈L' (α i) (α∈L' i) (ind≤⋁ α i)))) singCase2 where - singCase2 : (j : Fin n) ccᵢSubst ⋆⟨ C F-hom F (ind≤⋁ (β (α i)) j) - coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + singCase2 : (j : Fin n) ccᵢSubst ⋆⟨ C F-hom F (ind≤⋁ (β (α i)) j) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) singCase2 j = 𝕚 ccᵢSubstFiller (~ 𝕚) ⋆⟨ C F≤PathPLemmaBase @@ -452,8 +452,8 @@ (ind≤⋁ (β (α i)) j) (≤m→≤j _ _ (∧≤RCancel _ _)) 𝕚) path where - path : coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) - coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + path : coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) path with (i ≟Fin j) ... | (lt i<j) = coneOutCommutes cc (singPairL {i<j = i<j}) sym (coneOutCommutes cc singPairR) @@ -461,10 +461,10 @@ where ∧Path : Path (ob DLSubCat) (α j ∧l α i , β∈L' (α j) (α∈L' j) i) (α i ∧l α j , β∈L' (α i) (α∈L' i) j) - ∧Path = Σ≡Prop x L' x .snd) (∧lComm _ _) + ∧Path = Σ≡Prop x L' x .snd) (∧lComm _ _) - almostPath : coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + almostPath : coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) almostPath = (coneOutCommutes cc (singPairR {i<j = j<i}) sym (coneOutCommutes cc singPairL)) @@ -477,13 +477,13 @@ (≤m→≤j _ _ (∧≤LCancel _ _)) 𝕚 ... | (eq i≡j) = - coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + coneOut cc (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ≡⟨ 𝕚 coneOut cc (sing (i≡j 𝕚)) ⋆⟨ C F≤PathPLemmaBase 𝕛 α (i≡j 𝕛) , α∈L' (i≡j 𝕛)) refl (≤m→≤j _ _ (∧≤RCancel _ _)) (≤m→≤j _ _ (∧≤LCancel _ _)) 𝕚) - coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + coneOut cc (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ccᵢSubstPath : uniqβConeMor c cc (α i) (α∈L' i) (ind≤⋁ α i) .fst .fst ccᵢSubst @@ -493,15 +493,15 @@ -- putting it all together - coverLemma : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) - ∃![ f C [ c , DLRan F .F-ob ( α) ] ] isConeMor cc restCone f + coverLemma : (c : ob C) (cc : Cone (funcComp F (BDiag i α i , α∈L' i))) c) + ∃![ f C [ c , DLRan F .F-ob ( α) ] ] isConeMor cc restCone f coverLemma c cc = uniqueExists (fromUnivProp .fst .fst) (lemma3 c cc _ (fromUnivProp .fst .snd)) _ isPropIsConeMor _ _ _) λ g isConeMorG cong fst (fromUnivProp .snd (g , lemma2 c cc g isConeMorG)) where - fromUnivProp : ∃![ f C [ c , DLRan F .F-ob ( α) ] ] isConeMor (lemma1 c cc) F[⋁α]Cone f + fromUnivProp : ∃![ f C [ c , DLRan F .F-ob ( α) ] ] isConeMor (lemma1 c cc) F[⋁α]Cone f fromUnivProp = limitC ⋁α↓ (F* ( α)) .univProp c (lemma1 c cc) @@ -531,7 +531,7 @@ ++FinInrΣ {ℕ.suc n} β∈L' γ∈L' i = ++FinInrΣ (β∈L' suc) γ∈L' i module ++Lemmas {c : ob C} {n' : } {γ : FinVec (fst L) n'} {γ∈L' : i γ i L'} - (ccγ : Cone (funcComp F (BDiag i γ i , γ∈L' i))) c) where + (ccγ : Cone (funcComp F (BDiag i γ i , γ∈L' i))) c) where private β∧γ : {n : } {β : FinVec (fst L) n} (β∈L' : i β i L') @@ -547,16 +547,16 @@ γ≥β∧γ β∈L' i j = ≤m→≤j _ _ (∧≤LCancel _ _) CommHypType : {n : } {β : FinVec (fst L) n} (β∈L' : i β i L') - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) Type ℓ'' CommHypType β∈L' ccβ = i j ccβ .coneOut (sing i) - ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ (β∈L' i) (γ∈L' j)} (β≥β∧γ β∈L' i j) - ccγ .coneOut (sing j) ⋆⟨ C F .F-hom (γ≥β∧γ β∈L' i j) + ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ (β∈L' i) (γ∈L' j)} (β≥β∧γ β∈L' i j) + ccγ .coneOut (sing j) ⋆⟨ C F .F-hom (γ≥β∧γ β∈L' i j) coneSuc : {n : } {β : FinVec (fst L) (ℕ.suc n)} {β∈L' : i β i L'} - Cone (funcComp F (BDiag i β i , β∈L' i))) c - Cone (funcComp F (BDiag i β (suc i) , β∈L' (suc i)))) c + Cone (funcComp F (BDiag i β i , β∈L' i))) c + Cone (funcComp F (BDiag i β (suc i) , β∈L' (suc i)))) c coneOut (coneSuc ccβ) (sing i) = coneOut ccβ (sing (suc i)) coneOut (coneSuc ccβ) (pair i j i<j) = coneOut ccβ (pair (suc i) (suc j) (s≤s i<j)) coneOutCommutes (coneSuc ccβ) {u = sing i} idAr = coneOutCommutes ccβ idAr @@ -566,23 +566,23 @@ --make this explicit to avoid yellow commHypSuc : {n : } {β : FinVec (fst L) (ℕ.suc n)} {β∈L' : i β i L'} - {ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c} + {ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c} CommHypType β∈L' ccβ CommHypType (β∈L' suc) (coneSuc ccβ) commHypSuc commHyp i j = commHyp (suc i) j toConeOut : (n : ) (β : FinVec (fst L) n) (β∈L' : i β i L') - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) (ch : CommHypType β∈L' ccβ) (v : DLShfDiagOb (n + n')) - C [ c , funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)) .F-ob v ] + C [ c , funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)) .F-ob v ] toConeOut ℕ.zero β β∈L' ccβ ch (sing i) = ccγ .coneOut (sing i) toConeOut ℕ.zero β β∈L' ccβ ch (pair i j i<j) = ccγ .coneOut (pair i j i<j) toConeOut (ℕ.suc n) β β∈L' ccβ ch (sing zero) = ccβ .coneOut (sing zero) toConeOut (ℕ.suc n) β β∈L' ccβ ch (sing (suc i)) = toConeOut n (β suc) (β∈L' suc) (coneSuc ccβ) (commHypSuc ch) (sing i) toConeOut (ℕ.suc n) β β∈L' ccβ ch (pair zero j 0<j) = - ccβ .coneOut (sing zero) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + ccβ .coneOut (sing zero) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) toConeOut (ℕ.suc n) β β∈L' ccβ ch (pair (suc i) zero ()) toConeOut (ℕ.suc n) β β∈L' ccβ ch (pair (suc i) (suc j) (s≤s i<j)) = toConeOut n (β suc) (β∈L' suc) (coneSuc ccβ) (commHypSuc ch) (pair i j i<j) @@ -590,23 +590,23 @@ -- crucial step in proving that this defines a cone is another induction -- βₛ is supposed to be (β ∘ suc) and β₀ is (β zero) toConeOutLemma : (n : ) (βₛ : FinVec (fst L) n) (βₛ∈L' : i βₛ i L') - (ccβₛ : Cone (funcComp F (BDiag i βₛ i , βₛ∈L' i))) c) + (ccβₛ : Cone (funcComp F (BDiag i βₛ i , βₛ∈L' i))) c) (chₛ : CommHypType βₛ∈L' ccβₛ) (β₀ : fst L) (β₀∈L' : β₀ L') -- cone over [β₀]++βₛ - {ccβ₀ : C [ c , F .F-ob (β₀ , β₀∈L') ]} - {ccβ₀ᵢ : (i : Fin n) C [ c , F .F-ob (β₀ ∧l βₛ i , ∧lClosed _ _ β₀∈L' (βₛ∈L' i)) ]} - (ccβ₀L : i ccβ₀ ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ccβ₀ᵢ i) - (ccβ₀R : i ccβₛ .coneOut (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ccβ₀ᵢ i) + {ccβ₀ : C [ c , F .F-ob (β₀ , β₀∈L') ]} + {ccβ₀ᵢ : (i : Fin n) C [ c , F .F-ob (β₀ ∧l βₛ i , ∧lClosed _ _ β₀∈L' (βₛ∈L' i)) ]} + (ccβ₀L : i ccβ₀ ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ccβ₀ᵢ i) + (ccβ₀R : i ccβₛ .coneOut (sing i) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) ccβ₀ᵢ i) -- ch at zero (ch₀ : j - ccβ₀ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ β₀∈L' (γ∈L' j)} (≤m→≤j _ _ (∧≤RCancel _ _)) - ccγ .coneOut (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) + ccβ₀ ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ β₀∈L' (γ∈L' j)} (≤m→≤j _ _ (∧≤RCancel _ _)) + ccγ .coneOut (sing j) ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) --------------------------------------------------------------------- j toConeOut n βₛ βₛ∈L' ccβₛ chₛ (sing j) - ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ β₀∈L' (β++γ∈L' βₛ∈L' γ∈L' j)} + ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ β₀∈L' (β++γ∈L' βₛ∈L' γ∈L' j)} (≤m→≤j _ _ (∧≤LCancel _ _)) - ccβ₀ ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + ccβ₀ ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) toConeOutLemma ℕ.zero _ _ _ _ _ _ _ _ ch₀ j = sym (ch₀ j) toConeOutLemma (ℕ.suc n) _ _ _ _ _ _ ccβ₀L ccβ₀R _ zero = ccβ₀R zero sym (ccβ₀L zero) toConeOutLemma (ℕ.suc n) βₛ βₛ∈L' ccβₛ chₛ β₀ β₀∈L' ccβ₀L ccβ₀R ch₀ (suc j) = @@ -615,11 +615,11 @@ toConeOutCommutes : (n : ) (β : FinVec (fst L) n) (β∈L' : i β i L') - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) (ch : CommHypType β∈L' ccβ) {u} {v} e toConeOut _ _ _ ccβ ch u - ⋆⟨ C (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)) .F-hom e) + ⋆⟨ C (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)) .F-hom e) toConeOut _ _ _ ccβ ch v toConeOutCommutes ℕ.zero _ _ _ _ {u = sing i} {v = sing .i} idAr = coneOutCommutes ccγ idAr toConeOutCommutes ℕ.zero _ _ _ _ {u = sing i} {v = pair .i j i<j} singPairL = @@ -630,7 +630,7 @@ toConeOutCommutes ℕ.zero _ _ _ _ {u = pair i j i<j} {v = pair .i .j .i<j} idAr = coneOutCommutes ccγ idAr toConeOutCommutes (ℕ.suc n) β β∈L' ccβ ch idAr = - cong x toConeOut _ _ _ ccβ ch _ ⋆⟨ C x) (F .F-id) ⋆IdR C _ + cong x toConeOut _ _ _ ccβ ch _ ⋆⟨ C x) (F .F-id) ⋆IdR C _ toConeOutCommutes (ℕ.suc n) β β∈L' ccβ ch (singPairL {i = zero} {j = j} {i<j = i<j}) = refl toConeOutCommutes (ℕ.suc n) β β∈L' ccβ ch (singPairL {i = suc i} {j = zero} {i<j = ()}) toConeOutCommutes (ℕ.suc n) β β∈L' ccβ ch (singPairL {i = suc i} {j = suc j} {i<j = s≤s i<j}) = @@ -644,18 +644,18 @@ (ch zero) j toCone : {n : } {β : FinVec (fst L) n} {β∈L' : i β i L'} - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) (ch : CommHypType β∈L' ccβ) - Cone (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i))) c + Cone (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i))) c coneOut (toCone ccβ ch) = toConeOut _ _ _ ccβ ch coneOutCommutes (toCone ccβ ch) = toConeOutCommutes _ _ _ ccβ ch -- for checking the universal property toConeOutPathPL : {n : } {β : FinVec (fst L) n} {β∈L' : i β i L'} - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) (ch : CommHypType β∈L' ccβ) - i PathP 𝕚 C [ c , F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) + i PathP 𝕚 C [ c , F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) (ccβ .coneOut (sing i)) (toCone ccβ ch .coneOut (sing (FSCfun _ _ (inl i)))) toConeOutPathPL {ℕ.zero} ccβ _ () @@ -663,9 +663,9 @@ toConeOutPathPL {ℕ.suc n} ccβ ch (suc i) = toConeOutPathPL (coneSuc ccβ) (commHypSuc ch) i toConeOutPathPR : {n : } {β : FinVec (fst L) n} {β∈L' : i β i L'} - (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) + (ccβ : Cone (funcComp F (BDiag i β i , β∈L' i))) c) (ch : CommHypType β∈L' ccβ) - i PathP 𝕚 C [ c , F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) + i PathP 𝕚 C [ c , F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) (ccγ .coneOut (sing i)) (toCone ccβ ch .coneOut (sing (FSCfun _ _ (inr i)))) toConeOutPathPR {ℕ.zero} ccβ _ i = refl @@ -678,11 +678,11 @@ limArrow (limitC _ (F* 0l)) x (toCone x) , λ f limArrowUnique (limitC _ (F* 0l)) x (toCone x) f (toConeMor x f) where - 0↓ = _↓Diag limitC (baseIncl ^opF) F 0l + 0↓ = _↓Diag limitC (baseIncl ^opF) F 0l - toTerminal : (u : ob 0↓) isTerminal C (F .F-ob (u .fst)) - toTerminal ((u , u∈L') , 0≥u) = subst v isTerminal C (F .F-ob v)) - (Σ≡Prop y L' y .snd) 0≡u) + toTerminal : (u : ob 0↓) isTerminal C (F .F-ob (u .fst)) + toTerminal ((u , u∈L') , 0≥u) = subst v isTerminal C (F .F-ob v)) + (Σ≡Prop y L' y .snd) 0≡u) (DLBasisSheaf→Terminal F isSheafF 0∈L') where 0≡u : 0l u @@ -694,7 +694,7 @@ coneOut (toCone y) u = toTerminal u y .fst coneOutCommutes (toCone y) {v = v} e = sym (toTerminal v y .snd _) - toConeMor : (y : ob C) (f : C [ y , F-ob (DLRan F) 0l ]) + toConeMor : (y : ob C) (f : C [ y , F-ob (DLRan F) 0l ]) isConeMor (toCone y) (limCone (limitC 0↓ (F* 0l))) f toConeMor y f v = sym (toTerminal v y .snd _) @@ -717,25 +717,25 @@ -- replace x and y by their representations of joins of base elements -- and transport over xyCospan : Cospan C - l xyCospan = DLRan F .F-ob y - m xyCospan = DLRan F .F-ob (x ∧l y) - r xyCospan = DLRan F .F-ob x - s₁ xyCospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - s₂ xyCospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + l xyCospan = DLRan F .F-ob y + m xyCospan = DLRan F .F-ob (x ∧l y) + r xyCospan = DLRan F .F-ob x + s₁ xyCospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + s₂ xyCospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ⋁Cospan : Cospan C - l ⋁Cospan = DLRan F .F-ob ( γ) - m ⋁Cospan = DLRan F .F-ob ( β ∧l γ) - r ⋁Cospan = DLRan F .F-ob ( β) - s₁ ⋁Cospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - s₂ ⋁Cospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + l ⋁Cospan = DLRan F .F-ob ( γ) + m ⋁Cospan = DLRan F .F-ob ( β ∧l γ) + r ⋁Cospan = DLRan F .F-ob ( β) + s₁ ⋁Cospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + s₂ ⋁Cospan = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) cospanPath : ⋁Cospan xyCospan - l (cospanPath i) = DLRan F .F-ob (⋁γ≡y i) - m (cospanPath i) = DLRan F .F-ob (⋁β≡x i ∧l ⋁γ≡y i) - r (cospanPath i) = DLRan F .F-ob (⋁β≡x i) - s₁ (cospanPath i) = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) - s₂ (cospanPath i) = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + l (cospanPath i) = DLRan F .F-ob (⋁γ≡y i) + m (cospanPath i) = DLRan F .F-ob (⋁β≡x i ∧l ⋁γ≡y i) + r (cospanPath i) = DLRan F .F-ob (⋁β≡x i) + s₁ (cospanPath i) = DLRan F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + s₂ (cospanPath i) = DLRan F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) private F[⋁β]Cone = limitC _ (F* ( β)) .limCone @@ -748,16 +748,16 @@ f ⋆⟨ C ⋁Cospan .s₁ g ⋆⟨ C ⋁Cospan .s₂ i j (g ⋆⟨ C restCone β β∈L' .coneOut (sing i)) - ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ (β∈L' i) (γ∈L' j)} + ⋆⟨ C F .F-hom {y = _ , ∧lClosed _ _ (β∈L' i) (γ∈L' j)} (≤m→≤j _ _ (∧≤RCancel _ _)) (f ⋆⟨ C restCone γ γ∈L' .coneOut (sing j)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) to++ConeSquare f g square i j = (g ⋆⟨ C restCone β β∈L' .coneOut (sing i)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _)) ≡⟨ ⋆Assoc C _ _ _ g ⋆⟨ C (restCone β β∈L' .coneOut (sing i) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤RCancel _ _))) ≡⟨ cong x g ⋆⟨ C x) (coneOutCommutes F[⋁β]Cone (_ , (is-prop-valued _ _ _ _))) g ⋆⟨ C coneOut F[⋁β]Cone ((β i ∧l γ j , _) , is-trans _ _ _ (≤m→≤j _ _ (≤-∧Pres _ _ _ _ @@ -786,18 +786,18 @@ ≡⟨ cong x f ⋆⟨ C x) (sym (coneOutCommutes F[⋁γ]Cone (_ , (is-prop-valued _ _ _ _)))) f ⋆⟨ C (restCone γ γ∈L' .coneOut (sing j) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _))) ≡⟨ sym (⋆Assoc C _ _ _) (f ⋆⟨ C restCone γ γ∈L' .coneOut (sing j)) - ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) + ⋆⟨ C F .F-hom (≤m→≤j _ _ (∧≤LCancel _ _)) -- the pullback square we want ⋁Pullback : Pullback C ⋁Cospan - pbOb ⋁Pullback = DLRan F .F-ob ( (β ++Fin γ)) - pbPr₁ ⋁Pullback = DLRan F .F-hom (subst ( γ ≤_) (sym (⋁Split++ β γ)) (∨≤LCancel _ _)) - pbPr₂ ⋁Pullback = DLRan F .F-hom (subst ( β ≤_) (sym (⋁Split++ β γ)) (∨≤RCancel _ _)) - pbCommutes ⋁Pullback = F-square (DLRan F) (is-prop-valued _ _ _ _) + pbOb ⋁Pullback = DLRan F .F-ob ( (β ++Fin γ)) + pbPr₁ ⋁Pullback = DLRan F .F-hom (subst ( γ ≤_) (sym (⋁Split++ β γ)) (∨≤LCancel _ _)) + pbPr₂ ⋁Pullback = DLRan F .F-hom (subst ( β ≤_) (sym (⋁Split++ β γ)) (∨≤RCancel _ _)) + pbCommutes ⋁Pullback = F-square (DLRan F) (is-prop-valued _ _ _ _) univProp ⋁Pullback {d = c} f g square = uniqueExists (applyCoverLemma f g square .fst .fst) (fromConeMor _ (applyCoverLemma f g square .fst .snd)) @@ -808,7 +808,7 @@ toCone : (f : C [ c , ⋁Cospan .l ]) (g : C [ c , ⋁Cospan .r ]) f ⋆⟨ C ⋁Cospan .s₁ g ⋆⟨ C ⋁Cospan .s₂ - Cone (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i))) c + Cone (funcComp F (BDiag i (β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i))) c toCone f g square = ++Lemmas.toCone (f (restCone γ γ∈L')) (g (restCone β β∈L')) (to++ConeSquare f g square) @@ -821,8 +821,8 @@ -- Another description of the limiting cone over β++γ that -- turns out equivalent but behaves better with the ++Lemmas - ++LimCone' : Cone (funcComp F (BDiag i ((β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)))) - (DLRan F .F-ob ( (β ++Fin γ))) + ++LimCone' : Cone (funcComp F (BDiag i ((β ++Fin γ) i , β++γ∈L' β∈L' γ∈L' i)))) + (DLRan F .F-ob ( (β ++Fin γ))) ++LimCone' = ++Lemmas.toCone ((pbPr₁ ⋁Pullback) (restCone γ γ∈L')) ((pbPr₂ ⋁Pullback) (restCone β β∈L')) (to++ConeSquare _ _ (pbCommutes ⋁Pullback)) @@ -840,8 +840,8 @@ ((pbPr₁ ⋁Pullback) (restCone γ γ∈L')) ((pbPr₂ ⋁Pullback) (restCone β β∈L')) (to++ConeSquare _ _ (pbCommutes ⋁Pullback)) i)) - ∙∙ cong x transport 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , - F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) x) + ∙∙ cong x transport 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , + F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) x) (limArrowCommutes (limitC _ (F* ( β))) _ _ _) ∙∙ fromPathP helperPathP where @@ -849,7 +849,7 @@ is-trans _ _ _ (ind≤⋁ β i) (subst ( β ≤_) (sym (⋁Split++ β γ)) (∨≤RCancel _ _)) helperPathP : - PathP 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) + PathP 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , F .F-ob (++FinInlΣ β∈L' γ∈L' i 𝕚) ]) (F[⋁β++γ]Cone .coneOut ((β i , β∈L' i) , βᵢ≤⋁β++γ)) (restCone (β ++Fin γ) (β++γ∈L' β∈L' γ∈L') .coneOut (sing (FSCfun _ _ (inl i)))) helperPathP 𝕚 = F[⋁β++γ]Cone .coneOut (++FinInlΣ β∈L' γ∈L' i 𝕚 , @@ -862,8 +862,8 @@ ((pbPr₁ ⋁Pullback) (restCone γ γ∈L')) ((pbPr₂ ⋁Pullback) (restCone β β∈L')) (to++ConeSquare _ _ (pbCommutes ⋁Pullback)) i)) - ∙∙ cong x transport 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , - F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) x) + ∙∙ cong x transport 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , + F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) x) (limArrowCommutes (limitC _ (F* ( γ))) _ _ _) ∙∙ fromPathP helperPathP where @@ -871,7 +871,7 @@ is-trans _ _ _ (ind≤⋁ γ i) (subst ( γ ≤_) (sym (⋁Split++ β γ)) (∨≤LCancel _ _)) helperPathP : - PathP 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) + PathP 𝕚 C [ DLRan F .F-ob ( (β ++Fin γ)) , F .F-ob (++FinInrΣ β∈L' γ∈L' i 𝕚) ]) (F[⋁β++γ]Cone .coneOut ((γ i , γ∈L' i) , γᵢ≤⋁β++γ)) (restCone (β ++Fin γ) (β++γ∈L' β∈L' γ∈L') .coneOut (sing (FSCfun _ _ (inr i)))) helperPathP 𝕚 = F[⋁β++γ]Cone .coneOut (++FinInrΣ β∈L' γ∈L' i 𝕚 , @@ -1008,14 +1008,14 @@ -- some more names to make the transport readable - pbPr₁PathP : PathP i C [ DLRan F .F-ob (⋁β++γ≡x∨y i) , DLRan F .F-ob (⋁γ≡y i) ]) - (pbPr₁ ⋁Pullback) (DLRan F .F-hom (hom-∨₂ L C x y)) + pbPr₁PathP : PathP i C [ DLRan F .F-ob (⋁β++γ≡x∨y i) , DLRan F .F-ob (⋁γ≡y i) ]) + (pbPr₁ ⋁Pullback) (DLRan F .F-hom (hom-∨₂ L C x y)) pbPr₁PathP = F≤PathPLemma ⋁β++γ≡x∨y ⋁γ≡y (subst ( γ ≤_) (sym (⋁Split++ β γ)) (∨≤LCancel _ _)) (hom-∨₂ L C x y) - pbPr₂PathP : PathP i C [ DLRan F .F-ob (⋁β++γ≡x∨y i) , DLRan F .F-ob (⋁β≡x i) ]) - (pbPr₂ ⋁Pullback) (DLRan F .F-hom (hom-∨₁ L C x y)) + pbPr₂PathP : PathP i C [ DLRan F .F-ob (⋁β++γ≡x∨y i) , DLRan F .F-ob (⋁β≡x i) ]) + (pbPr₂ ⋁Pullback) (DLRan F .F-hom (hom-∨₁ L C x y)) pbPr₂PathP = F≤PathPLemma ⋁β++γ≡x∨y ⋁β≡x (subst ( β ≤_) (sym (⋁Split++ β γ)) (∨≤RCancel _ _)) (hom-∨₁ L C x y) diff --git a/Cubical.Categories.Equivalence.AdjointEquivalence.html b/Cubical.Categories.Equivalence.AdjointEquivalence.html index a37445b58d..369847109c 100644 --- a/Cubical.Categories.Equivalence.AdjointEquivalence.html +++ b/Cubical.Categories.Equivalence.AdjointEquivalence.html @@ -13,81 +13,81 @@ {ℓC ℓ'C : Level} {ℓD ℓ'D : Level} where -open UnitCounit +open UnitCounit module _ (C : Category ℓC ℓ'C) (D : Category ℓD ℓ'D) where module _ - (fun : Functor C D) (inv : Functor D C) - (η : 𝟙⟨ C ≅ᶜ inv ∘F fun) (ε : fun ∘F inv ≅ᶜ 𝟙⟨ D ) - (triang : TriangleIdentities fun inv (NatIso.trans η) (NatIso.trans ε)) + (fun : Functor C D) (inv : Functor D C) + (η : 𝟙⟨ C ≅ᶜ inv ∘F fun) (ε : fun ∘F inv ≅ᶜ 𝟙⟨ D ) + (triang : TriangleIdentities fun inv (NatIso.trans η) (NatIso.trans ε)) where - open TriangleIdentities triang + open TriangleIdentities triang private module C = Category C module D = Category D - module fun = Functor fun - module inv = Functor inv + module fun = Functor fun + module inv = Functor inv - reverse-triangle : TriangleIdentities inv fun - (NatIso.trans (symNatIso ε)) - (NatIso.trans (symNatIso η)) - reverse-triangle .Δ₁ d = + reverse-triangle : TriangleIdentities inv fun + (NatIso.trans (symNatIso ε)) + (NatIso.trans (symNatIso η)) + reverse-triangle .Δ₁ d = sym (C.⋆IdR _) - cong x ( inv NatIso.trans (symNatIso ε) d - ⋆⟨ C NatIso.trans (symNatIso η) inv d ) + cong x ( inv NatIso.trans (symNatIso ε) d + ⋆⟨ C NatIso.trans (symNatIso η) inv d ) ⋆⟨ C x) - (sym (Δ₂ d)) + (sym (Δ₂ d)) C.⋆Assoc _ _ _ - cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C x) + cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C x) (sym $ C.⋆Assoc _ _ _) - cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C - (x ⋆⟨ C inv NatIso.trans ε d )) - (isIso.sec (NatIso.nIso η (inv d ))) - cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C x) + cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C + (x ⋆⟨ C inv NatIso.trans ε d )) + (isIso.sec (NatIso.nIso η (inv d ))) + cong x inv NatIso.trans (symNatIso ε) d ⋆⟨ C x) (C.⋆IdL _) - sym (inv.F-seq _ _) - cong x inv x ) (isIso.sec (NatIso.nIso ε d)) - inv.F-id - reverse-triangle .Δ₂ c = + sym (inv.F-seq _ _) + cong x inv x ) (isIso.sec (NatIso.nIso ε d)) + inv.F-id + reverse-triangle .Δ₂ c = sym (D.⋆IdL _) cong x x - ⋆⟨ D (NatIso.trans (symNatIso ε) fun c - ⋆⟨ D fun NatIso.trans (symNatIso η) c )) - (sym (Δ₁ c)) + ⋆⟨ D (NatIso.trans (symNatIso ε) fun c + ⋆⟨ D fun NatIso.trans (symNatIso η) c )) + (sym (Δ₁ c)) D.⋆Assoc _ _ _ - cong x fun NatIso.trans η c ⋆⟨ D x) + cong x fun NatIso.trans η c ⋆⟨ D x) (sym $ D.⋆Assoc _ _ _) - cong x fun NatIso.trans η c ⋆⟨ D - (x ⋆⟨ D fun NatIso.trans (symNatIso η) c )) - (isIso.ret (NatIso.nIso ε (fun c ))) - cong x fun NatIso.trans η c ⋆⟨ D x) (D.⋆IdL _) - sym (fun.F-seq _ _) - cong x fun x ) (isIso.ret (NatIso.nIso η c)) - fun.F-id + cong x fun NatIso.trans η c ⋆⟨ D + (x ⋆⟨ D fun NatIso.trans (symNatIso η) c )) + (isIso.ret (NatIso.nIso ε (fun c ))) + cong x fun NatIso.trans η c ⋆⟨ D x) (D.⋆IdL _) + sym (fun.F-seq _ _) + cong x fun x ) (isIso.ret (NatIso.nIso η c)) + fun.F-id record AdjointEquivalence : Type (ℓ-max (ℓ-max ℓC ℓ'C) (ℓ-max ℓD ℓ'D)) where field - fun : Functor C D - inv : Functor D C - η : 𝟙⟨ C ≅ᶜ inv ∘F fun - ε : fun ∘F inv ≅ᶜ 𝟙⟨ D - triangleIdentities : TriangleIdentities fun inv (NatIso.trans η) (NatIso.trans ε) + fun : Functor C D + inv : Functor D C + η : 𝟙⟨ C ≅ᶜ inv ∘F fun + ε : fun ∘F inv ≅ᶜ 𝟙⟨ D + triangleIdentities : TriangleIdentities fun inv (NatIso.trans η) (NatIso.trans ε) module _ {C : Category ℓC ℓ'C} {D : Category ℓD ℓ'D} (adj-equiv : AdjointEquivalence C D) where open AdjointEquivalence adj-equiv - adjunction : fun inv + adjunction : fun inv adjunction = record { - η = NatIso.trans η - ; ε = NatIso.trans ε - ; triangleIdentities = triangleIdentities } + η = NatIso.trans η + ; ε = NatIso.trans ε + ; triangleIdentities = triangleIdentities } - reverse-adjunction : inv fun + reverse-adjunction : inv fun reverse-adjunction = record { - η = NatIso.trans (symNatIso ε) - ; ε = NatIso.trans (symNatIso η) - ; triangleIdentities = reverse-triangle C D fun inv η ε triangleIdentities } + η = NatIso.trans (symNatIso ε) + ; ε = NatIso.trans (symNatIso η) + ; triangleIdentities = reverse-triangle C D fun inv η ε triangleIdentities } \ No newline at end of file diff --git a/Cubical.Categories.Equivalence.Base.html b/Cubical.Categories.Equivalence.Base.html index 95a48da715..84cf9f1b18 100644 --- a/Cubical.Categories.Equivalence.Base.html +++ b/Cubical.Categories.Equivalence.Base.html @@ -11,30 +11,30 @@ open import Cubical.Categories.NaturalTransformation open Category -open Functor +open Functor private variable ℓC ℓC' ℓD ℓD' : Level record WeakInverse {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (func : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + (func : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where field - invFunc : Functor D C + invFunc : Functor D C - η : 𝟙⟨ C ≅ᶜ invFunc ∘F func - ε : func ∘F invFunc ≅ᶜ 𝟙⟨ D + η : 𝟙⟨ C ≅ᶜ invFunc ∘F func + ε : func ∘F invFunc ≅ᶜ 𝟙⟨ D -- I don't know of a good alternative representation of isEquivalence that -- avoids truncation in the general case. If the categories are univalent, then -- an adjoint equivalence might be enough. isEquivalence : {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (func : Functor C D) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) + (func : Functor C D) Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) isEquivalence func = WeakInverse func ∥₁ record _≃ᶜ_ (C : Category ℓC ℓC') (D : Category ℓD ℓD') : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where field - func : Functor C D + func : Functor C D isEquiv : isEquivalence func \ No newline at end of file diff --git a/Cubical.Categories.Equivalence.Properties.html b/Cubical.Categories.Equivalence.Properties.html index 17c7edf47d..6c09b6c63e 100644 --- a/Cubical.Categories.Equivalence.Properties.html +++ b/Cubical.Categories.Equivalence.Properties.html @@ -19,7 +19,7 @@ open import Cubical.HITs.PropositionalTruncation open Category -open Functor +open Functor open NatIso open isIso open WeakInverse @@ -31,21 +31,21 @@ -- Equivalence implies Full, Faithul, and Essentially Surjective module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where - symWeakInverse : {F : Functor C D} (e : WeakInverse F) WeakInverse (e .invFunc) - symWeakInverse {F} record { invFunc = G ; η = η ; ε = ε } = record { invFunc = F ; η = symNatIso ε ; ε = symNatIso η } + symWeakInverse : {F : Functor C D} (e : WeakInverse F) WeakInverse (e .invFunc) + symWeakInverse {F} record { invFunc = G ; η = η ; ε = ε } = record { invFunc = F ; η = symNatIso ε ; ε = symNatIso η } - isEquiv→Faithful : {F : Functor C D} isEquivalence F isFaithful F + isEquiv→Faithful : {F : Functor C D} isEquivalence F isFaithful F isEquiv→Faithful {F} = rec (isPropΠ5 _ _ _ _ _ C .isSetHom _ _)) lifted where - lifted : WeakInverse F isFaithful F + lifted : WeakInverse F isFaithful F lifted record { invFunc = G ; η = η ; ε = _ } c c' f g p = f ≡⟨ sqRL η - cIso .fst ⋆⟨ C G F f ⋆⟨ C c'Iso .snd .inv - ≡⟨ cong v cIso .fst ⋆⟨ C (G v ) ⋆⟨ C c'Iso .snd .inv) p - cIso .fst ⋆⟨ C G F g ⋆⟨ C c'Iso .snd .inv + cIso .fst ⋆⟨ C G F f ⋆⟨ C c'Iso .snd .inv + ≡⟨ cong v cIso .fst ⋆⟨ C (G v ) ⋆⟨ C c'Iso .snd .inv) p + cIso .fst ⋆⟨ C G F g ⋆⟨ C c'Iso .snd .inv ≡⟨ sym (sqRL η) g @@ -56,10 +56,10 @@ c'Iso = isIso→CatIso (η .nIso c') module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where - isEquiv→Full : {F : Functor C D} isEquivalence F isFull F + isEquiv→Full : {F : Functor C D} isEquivalence F isFull F isEquiv→Full {F} = rec (isPropΠ3 _ _ _ isPropPropTrunc)) lifted where - lifted : WeakInverse F isFull F + lifted : WeakInverse F isFull F lifted eq@record { invFunc = G ; η = η ; ε = _ } @@ -74,12 +74,12 @@ cIso⁻ = symCatIso cIso c'Iso⁻ = symCatIso c'Iso - h = cIso .fst ⋆⟨ C G g ⋆⟨ C c'Iso .snd .inv + h = cIso .fst ⋆⟨ C G g ⋆⟨ C c'Iso .snd .inv -- we show that both `G ⟪ g ⟫` and `G ⟪ F ⟪ h ⟫ ⟫` -- are equal to the same thing -- namely : cIso .inv ⋆⟨ C ⟩ h ⋆⟨ C ⟩ c'Iso .mor - Gg≡ηhη : G g cIso .snd .inv ⋆⟨ C h ⋆⟨ C c'Iso .fst + Gg≡ηhη : G g cIso .snd .inv ⋆⟨ C h ⋆⟨ C c'Iso .fst Gg≡ηhη = invMoveL cAreInv move-c' sym (C .⋆Assoc _ _ _) where cAreInv : areInv _ (cIso .fst) (cIso .snd .inv) @@ -88,31 +88,31 @@ c'AreInv : areInv _ (c'Iso .fst) (c'Iso .snd .inv) c'AreInv = CatIso→areInv c'Iso - move-c' : cIso .fst ⋆⟨ C G g h ⋆⟨ C c'Iso .fst + move-c' : cIso .fst ⋆⟨ C G g h ⋆⟨ C c'Iso .fst move-c' = invMoveR (symAreInv c'AreInv) refl - GFh≡Gg : G F h G g - GFh≡Gg = G F h + GFh≡Gg : G F h G g + GFh≡Gg = G F h ≡⟨ sqLR η cIso .snd .inv ⋆⟨ C h ⋆⟨ C c'Iso .fst ≡⟨ sym Gg≡ηhη - G g + G g - isEquiv→FullyFaithful : {F : Functor C D} isEquivalence F isFullyFaithful F + isEquiv→FullyFaithful : {F : Functor C D} isEquivalence F isFullyFaithful F isEquiv→FullyFaithful {F = F} h = isFull+Faithful→isFullyFaithful {F = F} (isEquiv→Full h) (isEquiv→Faithful h) - isEquiv→Surj : {F : Functor C D} isEquivalence F isEssentiallySurj F + isEquiv→Surj : {F : Functor C D} isEquivalence F isEssentiallySurj F isEquiv→Surj = rec (isPropΠ _ isPropPropTrunc)) - wkInv d (wkInv .invFunc d ) , isIso→CatIso ((wkInv .ε .nIso) d) ∣₁) + wkInv d (wkInv .invFunc d ) , isIso→CatIso ((wkInv .ε .nIso) d) ∣₁) -- A fully-faithful functor that induces equivalence on objects is an equivalence module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - {F : Functor C D} where + {F : Functor C D} where - isFullyFaithful+isEquivF-ob→isEquiv : isFullyFaithful F isEquivMap (F .F-ob) isEquivalence F + isFullyFaithful+isEquivF-ob→isEquiv : isFullyFaithful F isEquivMap (F .F-ob) isEquivalence F isFullyFaithful+isEquivF-ob→isEquiv fullfaith isequiv = w ∣₁ where open Iso @@ -124,19 +124,19 @@ MorD : D .ob × D .ob Type _ MorD (x , y) = D [ x , y ] - F-Mor : ((x , y) : C .ob × C .ob) C [ x , y ] D [ F .F-ob x , F .F-ob y ] - F-Mor _ = F .F-hom + F-Mor : ((x , y) : C .ob × C .ob) C [ x , y ] D [ F .F-ob x , F .F-ob y ] + F-Mor _ = F .F-hom equiv-ob² : C .ob × C .ob D .ob × D .ob - equiv-ob² = ≃-× (_ , isequiv) (_ , isequiv) + equiv-ob² = ≃-× (_ , isequiv) (_ , isequiv) iso-ob = equivToIso (_ , isequiv) iso-hom = equivOver→IsoOver {P = MorC} {Q = MorD} equiv-ob² F-Mor (x , y) fullfaith x y) - w-inv : Functor D C - w-inv .F-ob = iso-ob .inv - w-inv .F-hom = iso-hom .inv _ - w-inv .F-id {x = x} = isFullyFaithful→Faithful {F = F} fullfaith _ _ _ _ (p sym (F .F-id)) + w-inv : Functor D C + w-inv .F-ob = iso-ob .inv + w-inv .F-hom = iso-hom .inv _ + w-inv .F-id {x = x} = isFullyFaithful→Faithful {F = F} fullfaith _ _ _ _ (p sym (F .F-id)) where p : _ p i = @@ -146,7 +146,7 @@ { (i = i0) iso-hom .rightInv _ (D .id {x = x}) (~ j) ; (i = i1) D .id {x = iso-ob .rightInv x (~ j)} }) (D .id {x = x}) - w-inv .F-seq {x = x} {z = z} f g = isFullyFaithful→Faithful {F = F} fullfaith _ _ _ _ (p sym (F .F-seq _ _)) + w-inv .F-seq {x = x} {z = z} f g = isFullyFaithful→Faithful {F = F} fullfaith _ _ _ _ (p sym (F .F-seq _ _)) where p : _ p i = @@ -157,11 +157,11 @@ ; (i = i1) iso-hom .rightInv _ f (~ j) ⋆⟨ D iso-hom .rightInv _ g (~ j) }) (f ⋆⟨ D g) - w-η-path : 𝟙⟨ C w-inv ∘F F - w-η-path = Functor≡ x sym (retIsEq isequiv x)) {x} {y} f i iso-hom .leftInv (x , y) f (~ i))) + w-η-path : 𝟙⟨ C w-inv ∘F F + w-η-path = Functor≡ x sym (retIsEq isequiv x)) {x} {y} f i iso-hom .leftInv (x , y) f (~ i))) - w-ε-path : F ∘F w-inv 𝟙⟨ D - w-ε-path = Functor≡ x secIsEq isequiv x) {x} {y} f i iso-hom .rightInv (x , y) f i) + w-ε-path : F ∘F w-inv 𝟙⟨ D + w-ε-path = Functor≡ x secIsEq isequiv x) {x} {y} f i iso-hom .rightInv (x , y) f i) w : WeakInverse F w .invFunc = w-inv @@ -171,7 +171,7 @@ -- equivalence on full subcategories defined by propositions -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (invF : WeakInverse F) where +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) (invF : WeakInverse F) where open NatTrans open _≃ᶜ_ @@ -183,11 +183,11 @@ ΣPropCatEquiv : {P : (ob C)} {Q : (ob D)} - (presF : c c P F .F-ob c Q) - (∀ d d Q F⁻¹ .F-ob d P) - WeakInverse (ΣPropCatFunc {P = P} {Q = Q} F presF) + (presF : c c P F .F-ob c Q) + (∀ d d Q F⁻¹ .F-ob d P) + WeakInverse (ΣPropCatFunc {P = P} {Q = Q} F presF) - invFunc (ΣPropCatEquiv {P} {Q} _ presF⁻¹) = ΣPropCatFunc {P = Q} {Q = P} F⁻¹ presF⁻¹ + invFunc (ΣPropCatEquiv {P} {Q} _ presF⁻¹) = ΣPropCatFunc {P = Q} {Q = P} F⁻¹ presF⁻¹ N-ob (trans (η (ΣPropCatEquiv _ _))) (x , _) = ηᴱ .trans .N-ob x N-hom (trans (η (ΣPropCatEquiv _ _))) f = ηᴱ .trans .N-hom f diff --git a/Cubical.Categories.Equivalence.WeakEquivalence.html b/Cubical.Categories.Equivalence.WeakEquivalence.html index b730639efd..ca4bb65128 100644 --- a/Cubical.Categories.Equivalence.WeakEquivalence.html +++ b/Cubical.Categories.Equivalence.WeakEquivalence.html @@ -21,26 +21,26 @@ ℓC ℓC' ℓD ℓD' : Level C : Category ℓC ℓC' D : Category ℓD ℓD' - F : Functor C D + F : Functor C D -open Functor +open Functor -- Weak equivalences of categories, -- namely fully-faithful and essentially surjective functors record isWeakEquivalence {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (func : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + (func : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where field - fullfaith : isFullyFaithful func - esssurj : isEssentiallySurj func + fullfaith : isFullyFaithful func + esssurj : isEssentiallySurj func record WeakEquivalence (C : Category ℓC ℓC') (D : Category ℓD ℓD') : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where field - func : Functor C D + func : Functor C D isWeakEquiv : isWeakEquivalence func open isWeakEquivalence @@ -64,12 +64,12 @@ open isUnivalent - isEquivF-ob : {F : Functor C D} isWeakEquivalence F isEquivMap (F .F-ob) + isEquivF-ob : {F : Functor C D} isWeakEquivalence F isEquivMap (F .F-ob) isEquivF-ob {F = F} is-w-equiv = isEmbedding×isSurjection→isEquiv (isFullyFaithful→isEmbd-ob isUnivC isUnivD {F = F} (is-w-equiv .fullfaith) , isSurj→isSurj-ob isUnivD {F = F} (is-w-equiv .esssurj)) - isWeakEquiv→isEquiv : {F : Functor C D} isWeakEquivalence F isEquivalence F + isWeakEquiv→isEquiv : {F : Functor C D} isWeakEquivalence F isEquivalence F isWeakEquiv→isEquiv is-w-equiv = isFullyFaithful+isEquivF-ob→isEquiv (is-w-equiv .fullfaith) (isEquivF-ob is-w-equiv) \ No newline at end of file diff --git a/Cubical.Categories.Everything.html b/Cubical.Categories.Everything.html index 6ff1e40d31..3b57f877e2 100644 --- a/Cubical.Categories.Everything.html +++ b/Cubical.Categories.Everything.html @@ -56,31 +56,32 @@ import Cubical.Categories.Instances.FunctorAlgebras import Cubical.Categories.Instances.Functors import Cubical.Categories.Instances.Functors.Endo -import Cubical.Categories.Instances.Lattice -import Cubical.Categories.Instances.Lattices -import Cubical.Categories.Instances.Poset -import Cubical.Categories.Instances.RingAlgebras -import Cubical.Categories.Instances.Rings -import Cubical.Categories.Instances.Semilattice -import Cubical.Categories.Instances.Sets -import Cubical.Categories.Instances.Terminal -import Cubical.Categories.Instances.TypePrecategory -import Cubical.Categories.Instances.ZFunctors -import Cubical.Categories.Isomorphism -import Cubical.Categories.Limits -import Cubical.Categories.Limits.RightKan -import Cubical.Categories.Monad.Base -import Cubical.Categories.Monoidal -import Cubical.Categories.Monoidal.Strict.Monoid -import Cubical.Categories.Morphism -import Cubical.Categories.NaturalTransformation -import Cubical.Categories.Presheaf -import Cubical.Categories.Presheaf.NonPresheaf.Cofree -import Cubical.Categories.Presheaf.NonPresheaf.Forget -import Cubical.Categories.Presheaf.NonPresheaf.Free -import Cubical.Categories.Profunctor -import Cubical.Categories.RezkCompletion -import Cubical.Categories.TypesOfCategories.TypeCategory -import Cubical.Categories.UnderlyingGraph -import Cubical.Categories.Yoneda +import Cubical.Categories.Instances.Groups +import Cubical.Categories.Instances.Lattice +import Cubical.Categories.Instances.Lattices +import Cubical.Categories.Instances.Poset +import Cubical.Categories.Instances.RingAlgebras +import Cubical.Categories.Instances.Rings +import Cubical.Categories.Instances.Semilattice +import Cubical.Categories.Instances.Sets +import Cubical.Categories.Instances.Terminal +import Cubical.Categories.Instances.TypePrecategory +import Cubical.Categories.Instances.ZFunctors +import Cubical.Categories.Isomorphism +import Cubical.Categories.Limits +import Cubical.Categories.Limits.RightKan +import Cubical.Categories.Monad.Base +import Cubical.Categories.Monoidal +import Cubical.Categories.Monoidal.Strict.Monoid +import Cubical.Categories.Morphism +import Cubical.Categories.NaturalTransformation +import Cubical.Categories.Presheaf +import Cubical.Categories.Presheaf.NonPresheaf.Cofree +import Cubical.Categories.Presheaf.NonPresheaf.Forget +import Cubical.Categories.Presheaf.NonPresheaf.Free +import Cubical.Categories.Profunctor +import Cubical.Categories.RezkCompletion +import Cubical.Categories.TypesOfCategories.TypeCategory +import Cubical.Categories.UnderlyingGraph +import Cubical.Categories.Yoneda \ No newline at end of file diff --git a/Cubical.Categories.Functor.Base.html b/Cubical.Categories.Functor.Base.html index fb0f47f889..9606cd6fd2 100644 --- a/Cubical.Categories.Functor.Base.html +++ b/Cubical.Categories.Functor.Base.html @@ -7,155 +7,172 @@ open import Cubical.Foundations.Equiv open import Cubical.Foundations.HLevels open import Cubical.Foundations.Powerset - -open import Cubical.Data.Sigma - -open import Cubical.Categories.Category - -private - variable - ℓC ℓC' ℓD ℓD' : Level - -record Functor (C : Category ℓC ℓC') (D : Category ℓD ℓD') : - Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where - no-eta-equality - - open Category - - field - F-ob : C .ob D .ob - F-hom : {x y : C .ob} C [ x , y ] D [ F-ob x , F-ob y ] - F-id : {x : C .ob} F-hom (C .id) D .id {x = F-ob x} - F-seq : {x y z : C .ob} (f : C [ x , y ]) (g : C [ y , z ]) - F-hom (f ⋆⟨ C g) (F-hom f) ⋆⟨ D (F-hom g) - - isFull = (x y : _) (F[f] : D [ F-ob x , F-ob y ]) ∃[ f C [ x , y ] ] F-hom f F[f] - isFaithful = (x y : _) (f g : C [ x , y ]) F-hom f F-hom g f g - isFullyFaithful = (x y : _) isEquiv (F-hom {x = x} {y = y}) - isEssentiallySurj = (d : D .ob) ∃[ c C .ob ] CatIso D (F-ob c) d - - -- preservation of commuting squares and triangles - F-square : {x y u v : C .ob} - {f : C [ x , y ]} {g : C [ x , u ]} - {h : C [ u , v ]} {k : C [ y , v ]} - f ⋆⟨ C k g ⋆⟨ C h - (F-hom f) ⋆⟨ D (F-hom k) (F-hom g) ⋆⟨ D (F-hom h) - F-square Csquare = sym (F-seq _ _) ∙∙ cong F-hom Csquare ∙∙ F-seq _ _ - - F-triangle : {x y z : C .ob} - {f : C [ x , y ]} {g : C [ y , z ]} {h : C [ x , z ]} - f ⋆⟨ C g h - (F-hom f) ⋆⟨ D (F-hom g) (F-hom h) - F-triangle Ctriangle = sym (F-seq _ _) cong F-hom Ctriangle - -private - variable - ℓ' : Level - B C D E : Category ℓ' - -open Category -open Functor - -Functor≡ : {F G : Functor C D} - (h : (c : ob C) F-ob F c F-ob G c) - (∀ {c c' : ob C} (f : C [ c , c' ]) PathP i D [ h c i , h c' i ]) (F-hom F f) (F-hom G f)) - F G -F-ob (Functor≡ hOb hHom i) c = hOb c i -F-hom (Functor≡ hOb hHom i) f = hHom f i -F-id (Functor≡ {C = C} {D = D} {F = F} {G = G} hOb hHom i) = - isProp→PathP j isSetHom D (hHom (C .id) j) (D .id)) (F-id F) (F-id G) i -F-seq (Functor≡ {C = C} {D = D} {F = F} {G = G} hOb hHom i) f g = - isProp→PathP j isSetHom D (hHom (f ⋆⟨ C g) j) ((hHom f j) ⋆⟨ D (hHom g j))) (F-seq F f g) (F-seq G f g) i - -FunctorSquare : - {F₀₀ F₀₁ F₁₀ F₁₁ : Functor C D} - (F₀₋ : F₀₀ F₀₁) (F₁₋ : F₁₀ F₁₁) - (F₋₀ : F₀₀ F₁₀) (F₋₁ : F₀₁ F₁₁) - Square (cong F-ob F₀₋) (cong F-ob F₁₋) (cong F-ob F₋₀) (cong F-ob F₋₁) - Square F₀₋ F₁₋ F₋₀ F₋₁ -FunctorSquare {C = C} {D = D} F₀₋ F₁₋ F₋₀ F₋₁ r = sqr - where - sqr : _ - sqr i j .F-ob = r i j - sqr i j .F-hom {x = x} {y = y} f = - isSet→SquareP i j D .isSetHom {x = sqr i j .F-ob x} {y = sqr i j .F-ob y}) - i F₀₋ i .F-hom f) i F₁₋ i .F-hom f) i F₋₀ i .F-hom f) i F₋₁ i .F-hom f) i j - sqr i j .F-id {x = x} = - isSet→SquareP i j isProp→isSet (D .isSetHom (sqr i j .F-hom (C .id)) (D .id))) - i F₀₋ i .F-id) i F₁₋ i .F-id) i F₋₀ i .F-id) i F₋₁ i .F-id) i j - sqr i j .F-seq f g = - isSet→SquareP i j - isProp→isSet (D .isSetHom (sqr i j .F-hom (f ⋆⟨ C g)) ((sqr i j .F-hom f) ⋆⟨ D (sqr i j .F-hom g)))) - i F₀₋ i .F-seq f g) i F₁₋ i .F-seq f g) i F₋₀ i .F-seq f g) i F₋₁ i .F-seq f g) i j - -FunctorPath≡ : {F G : Functor C D}{p q : F G} cong F-ob p cong F-ob q p q -FunctorPath≡ {p = p} {q = q} = FunctorSquare p q refl refl - - --- Helpful notation - --- action on objects -infix 30 _⟅_⟆ -_⟅_⟆ : (F : Functor C D) - C .ob - D .ob -_⟅_⟆ = F-ob - --- action on morphisms -infix 30 _⟪_⟫ -- same infix level as on objects since these will never be used in the same context -_⟪_⟫ : (F : Functor C D) - {x y} - C [ x , y ] - D [(F x ) , (F y )] -_⟪_⟫ = F-hom - - --- Functor constructions - -𝟙⟨_⟩ : (C : Category ℓ') Functor C C -𝟙⟨ C .F-ob x = x -𝟙⟨ C .F-hom f = f -𝟙⟨ C .F-id = refl -𝟙⟨ C .F-seq _ _ = refl - -Id : {C : Category ℓ'} Functor C C -Id = 𝟙⟨ _ - -forgetΣPropCat : (C : Category ℓ') (prop : (C .ob)) Functor (ΣPropCat C prop) C -forgetΣPropCat _ _ .F-ob x = x .fst -forgetΣPropCat _ _ .F-hom f = f -forgetΣPropCat _ _ .F-id = refl -forgetΣPropCat _ _ .F-seq _ _ = refl - --- functor composition -funcComp : (G : Functor D E) (F : Functor C D) Functor C E -(funcComp G F) .F-ob c = G F c -(funcComp G F) .F-hom f = G F f -(funcComp G F) .F-id = cong (G ⟪_⟫) (F .F-id) G .F-id -(funcComp G F) .F-seq f g = cong (G ⟪_⟫) (F .F-seq _ _) G .F-seq _ _ - -infixr 30 _∘F_ -_∘F_ : Functor D E Functor C D Functor C E -_∘F_ = funcComp - --- hacky lemma to stop Agda from computing too much -funcCompOb≡ : (G : Functor D E) (F : Functor C D) (c : ob C) - funcComp G F .F-ob c G .F-ob (F .F-ob c) -funcCompOb≡ G F c = refl - -_^opF : Functor C D Functor (C ^op) (D ^op) -(F ^opF) .F-ob = F .F-ob -(F ^opF) .F-hom = F .F-hom -(F ^opF) .F-id = F .F-id -(F ^opF) .F-seq f g = F .F-seq g f - - --- Functoriality on full subcategories defined by propositions -ΣPropCatFunc : {P : (ob C)} {Q : (ob D)} (F : Functor C D) - (∀ c c P F .F-ob c Q) - Functor (ΣPropCat C P) (ΣPropCat D Q) -F-ob (ΣPropCatFunc F FPres) (c , c∈P) = F .F-ob c , FPres c c∈P -F-hom (ΣPropCatFunc F FPres) = F .F-hom -F-id (ΣPropCatFunc F FPres) = F .F-id -F-seq (ΣPropCatFunc F FPres) = F .F-seq +open import Cubical.Foundations.Isomorphism + +open import Cubical.Data.Sigma + +open import Cubical.Categories.Category + +private + variable + ℓC ℓC' ℓD ℓD' : Level + +record Functor (C : Category ℓC ℓC') (D : Category ℓD ℓD') : + Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + no-eta-equality + + open Category + + field + F-ob : C .ob D .ob + F-hom : {x y : C .ob} C [ x , y ] D [ F-ob x , F-ob y ] + F-id : {x : C .ob} F-hom (C .id) D .id {x = F-ob x} + F-seq : {x y z : C .ob} (f : C [ x , y ]) (g : C [ y , z ]) + F-hom (f ⋆⟨ C g) (F-hom f) ⋆⟨ D (F-hom g) + + isFull = (x y : _) (F[f] : D [ F-ob x , F-ob y ]) ∃[ f C [ x , y ] ] F-hom f F[f] + isFaithful = (x y : _) (f g : C [ x , y ]) F-hom f F-hom g f g + isFullyFaithful = (x y : _) isEquiv (F-hom {x = x} {y = y}) + isEssentiallySurj = (d : D .ob) ∃[ c C .ob ] CatIso D (F-ob c) d + + -- preservation of commuting squares and triangles + F-square : {x y u v : C .ob} + {f : C [ x , y ]} {g : C [ x , u ]} + {h : C [ u , v ]} {k : C [ y , v ]} + f ⋆⟨ C k g ⋆⟨ C h + (F-hom f) ⋆⟨ D (F-hom k) (F-hom g) ⋆⟨ D (F-hom h) + F-square Csquare = sym (F-seq _ _) ∙∙ cong F-hom Csquare ∙∙ F-seq _ _ + + F-triangle : {x y z : C .ob} + {f : C [ x , y ]} {g : C [ y , z ]} {h : C [ x , z ]} + f ⋆⟨ C g h + (F-hom f) ⋆⟨ D (F-hom g) (F-hom h) + F-triangle Ctriangle = sym (F-seq _ _) cong F-hom Ctriangle + +private + variable + ℓ' : Level + B C D E : Category ℓ' + +open Category +open Functor + +Functor≡ : {F G : Functor C D} + (h : (c : ob C) F-ob F c F-ob G c) + (∀ {c c' : ob C} (f : C [ c , c' ]) PathP i D [ h c i , h c' i ]) (F-hom F f) (F-hom G f)) + F G +F-ob (Functor≡ hOb hHom i) c = hOb c i +F-hom (Functor≡ hOb hHom i) f = hHom f i +F-id (Functor≡ {C = C} {D = D} {F = F} {G = G} hOb hHom i) = + isProp→PathP j isSetHom D (hHom (C .id) j) (D .id)) (F-id F) (F-id G) i +F-seq (Functor≡ {C = C} {D = D} {F = F} {G = G} hOb hHom i) f g = + isProp→PathP j isSetHom D (hHom (f ⋆⟨ C g) j) ((hHom f j) ⋆⟨ D (hHom g j))) (F-seq F f g) (F-seq G f g) i + +FunctorSquare : + {F₀₀ F₀₁ F₁₀ F₁₁ : Functor C D} + (F₀₋ : F₀₀ F₀₁) (F₁₋ : F₁₀ F₁₁) + (F₋₀ : F₀₀ F₁₀) (F₋₁ : F₀₁ F₁₁) + Square (cong F-ob F₀₋) (cong F-ob F₁₋) (cong F-ob F₋₀) (cong F-ob F₋₁) + Square F₀₋ F₁₋ F₋₀ F₋₁ +FunctorSquare {C = C} {D = D} F₀₋ F₁₋ F₋₀ F₋₁ r = sqr + where + sqr : _ + sqr i j .F-ob = r i j + sqr i j .F-hom {x = x} {y = y} f = + isSet→SquareP i j D .isSetHom {x = sqr i j .F-ob x} {y = sqr i j .F-ob y}) + i F₀₋ i .F-hom f) i F₁₋ i .F-hom f) i F₋₀ i .F-hom f) i F₋₁ i .F-hom f) i j + sqr i j .F-id {x = x} = + isSet→SquareP i j isProp→isSet (D .isSetHom (sqr i j .F-hom (C .id)) (D .id))) + i F₀₋ i .F-id) i F₁₋ i .F-id) i F₋₀ i .F-id) i F₋₁ i .F-id) i j + sqr i j .F-seq f g = + isSet→SquareP i j + isProp→isSet (D .isSetHom (sqr i j .F-hom (f ⋆⟨ C g)) ((sqr i j .F-hom f) ⋆⟨ D (sqr i j .F-hom g)))) + i F₀₋ i .F-seq f g) i F₁₋ i .F-seq f g) i F₋₀ i .F-seq f g) i F₋₁ i .F-seq f g) i j + +FunctorPath≡ : {F G : Functor C D}{p q : F G} cong F-ob p cong F-ob q p q +FunctorPath≡ {p = p} {q = q} = FunctorSquare p q refl refl + + +-- Helpful notation + +-- action on objects +infix 30 _⟅_⟆ +_⟅_⟆ : (F : Functor C D) + C .ob + D .ob +_⟅_⟆ = F-ob + +-- action on morphisms +infix 30 _⟪_⟫ -- same infix level as on objects since these will never be used in the same context +_⟪_⟫ : (F : Functor C D) + {x y} + C [ x , y ] + D [(F x ) , (F y )] +_⟪_⟫ = F-hom + + +-- Functor constructions + +𝟙⟨_⟩ : (C : Category ℓ') Functor C C +𝟙⟨ C .F-ob x = x +𝟙⟨ C .F-hom f = f +𝟙⟨ C .F-id = refl +𝟙⟨ C .F-seq _ _ = refl + +Id : {C : Category ℓ'} Functor C C +Id = 𝟙⟨ _ + +forgetΣPropCat : (C : Category ℓ') (prop : (C .ob)) Functor (ΣPropCat C prop) C +forgetΣPropCat _ _ .F-ob x = x .fst +forgetΣPropCat _ _ .F-hom f = f +forgetΣPropCat _ _ .F-id = refl +forgetΣPropCat _ _ .F-seq _ _ = refl + +-- functor composition +funcComp : (G : Functor D E) (F : Functor C D) Functor C E +(funcComp G F) .F-ob c = G F c +(funcComp G F) .F-hom f = G F f +(funcComp G F) .F-id = cong (G ⟪_⟫) (F .F-id) G .F-id +(funcComp G F) .F-seq f g = cong (G ⟪_⟫) (F .F-seq _ _) G .F-seq _ _ + +infixr 30 _∘F_ +_∘F_ : Functor D E Functor C D Functor C E +_∘F_ = funcComp + +-- hacky lemma to stop Agda from computing too much +funcCompOb≡ : (G : Functor D E) (F : Functor C D) (c : ob C) + funcComp G F .F-ob c G .F-ob (F .F-ob c) +funcCompOb≡ G F c = refl + + +_^opF : Functor C D Functor (C ^op) (D ^op) +(F ^opF) .F-ob = F .F-ob +(F ^opF) .F-hom = F .F-hom +(F ^opF) .F-id = F .F-id +(F ^opF) .F-seq f g = F .F-seq g f + +open Iso +Iso^opF : Iso (Functor C D) (Functor (C ^op) (D ^op)) +fun Iso^opF = _^opF +inv Iso^opF = _^opF +F-ob (rightInv Iso^opF b i) = F-ob b +F-hom (rightInv Iso^opF b i) = F-hom b +F-id (rightInv Iso^opF b i) = F-id b +F-seq (rightInv Iso^opF b i) = F-seq b +F-ob (leftInv Iso^opF a i) = F-ob a +F-hom (leftInv Iso^opF a i) = F-hom a +F-id (leftInv Iso^opF a i) = F-id a +F-seq (leftInv Iso^opF a i) = F-seq a + +^opFEquiv : Functor C D Functor (C ^op) (D ^op) +^opFEquiv = isoToEquiv Iso^opF + +-- Functoriality on full subcategories defined by propositions +ΣPropCatFunc : {P : (ob C)} {Q : (ob D)} (F : Functor C D) + (∀ c c P F .F-ob c Q) + Functor (ΣPropCat C P) (ΣPropCat D Q) +F-ob (ΣPropCatFunc F FPres) (c , c∈P) = F .F-ob c , FPres c c∈P +F-hom (ΣPropCatFunc F FPres) = F .F-hom +F-id (ΣPropCatFunc F FPres) = F .F-id +F-seq (ΣPropCatFunc F FPres) = F .F-seq \ No newline at end of file diff --git a/Cubical.Categories.Functor.Compose.html b/Cubical.Categories.Functor.Compose.html index 157c267302..1c29e9118f 100644 --- a/Cubical.Categories.Functor.Compose.html +++ b/Cubical.Categories.Functor.Compose.html @@ -13,34 +13,34 @@ module _ {ℓC ℓC' ℓD ℓD' ℓE ℓE'} {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (E : Category ℓE ℓE') - (F : Functor C D) + (F : Functor C D) where - open Functor + open Functor open NatTrans - precomposeF : Functor (FUNCTOR D E) (FUNCTOR C E) - precomposeF .F-ob G = funcComp G F - precomposeF .F-hom α .N-ob c = α .N-ob (F .F-ob c) - precomposeF .F-hom α .N-hom f = α .N-hom (F .F-hom f) - precomposeF .F-id = refl - precomposeF .F-seq f g = refl + precomposeF : Functor (FUNCTOR D E) (FUNCTOR C E) + precomposeF .F-ob G = funcComp G F + precomposeF .F-hom α .N-ob c = α .N-ob (F .F-ob c) + precomposeF .F-hom α .N-hom f = α .N-hom (F .F-hom f) + precomposeF .F-id = refl + precomposeF .F-seq f g = refl module _ {ℓC ℓC' ℓD ℓD' ℓE ℓE'} (C : Category ℓC ℓC') {D : Category ℓD ℓD'} {E : Category ℓE ℓE'} - (G : Functor D E) + (G : Functor D E) where - open Functor + open Functor open NatTrans - postcomposeF : Functor (FUNCTOR C D) (FUNCTOR C E) - postcomposeF .F-ob F = funcComp G F - postcomposeF .F-hom α .N-ob c = G. F-hom (α .N-ob c) - postcomposeF .F-hom {F₀} {F₁} α .N-hom {x} {y} f = - sym (G .F-seq (F₀ f ) (α y )) - ∙∙ cong (G ⟪_⟫) (α .N-hom f) - ∙∙ G .F-seq (α x ) (F₁ f ) - postcomposeF .F-id = makeNatTransPath (funExt λ _ G .F-id) - postcomposeF .F-seq f g = makeNatTransPath (funExt λ _ G .F-seq _ _) + postcomposeF : Functor (FUNCTOR C D) (FUNCTOR C E) + postcomposeF .F-ob F = funcComp G F + postcomposeF .F-hom α .N-ob c = G. F-hom (α .N-ob c) + postcomposeF .F-hom {F₀} {F₁} α .N-hom {x} {y} f = + sym (G .F-seq (F₀ f ) (α y )) + ∙∙ cong (G ⟪_⟫) (α .N-hom f) + ∙∙ G .F-seq (α x ) (F₁ f ) + postcomposeF .F-id = makeNatTransPath (funExt λ _ G .F-id) + postcomposeF .F-seq f g = makeNatTransPath (funExt λ _ G .F-seq _ _) \ No newline at end of file diff --git a/Cubical.Categories.Functor.ComposeProperty.html b/Cubical.Categories.Functor.ComposeProperty.html index 694639df7f..8f07798047 100644 --- a/Cubical.Categories.Functor.ComposeProperty.html +++ b/Cubical.Categories.Functor.ComposeProperty.html @@ -24,41 +24,41 @@ module _ {ℓC ℓC' ℓD ℓD' ℓE ℓE'} {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (E : Category ℓE ℓE') - (F : Functor C D) + (F : Functor C D) where open Category - open Functor + open Functor open NatTrans open isIso -- If F is essential surjective, (- ∘ F) is faithful. - isEssSurj→isFaithfulPrecomp : isEssentiallySurj F isFaithful (precomposeF E F) + isEssSurj→isFaithfulPrecomp : isEssentiallySurj F isFaithful (precomposeF E F) isEssSurj→isFaithfulPrecomp surj A B α β p = makeNatTransPath i x Prop.rec (E .isSetHom _ _) (c , f) ⋆InvLMove (F-Iso {F = A} f) (α .N-hom (f .fst)) - i F-Iso {F = A} f .snd .inv ⋆⟨ E (p i .N-ob c ⋆⟨ E B .F-hom (f .fst))) + i F-Iso {F = A} f .snd .inv ⋆⟨ E (p i .N-ob c ⋆⟨ E B .F-hom (f .fst))) sym (⋆InvLMove (F-Iso {F = A} f) (β .N-hom (f .fst)))) (surj x) i) -- If F is essential surjective and full, (- ∘ F) is full. - isEssSurj+Full→isFullPrecomp : isEssentiallySurj F isFull F isFull (precomposeF E F) + isEssSurj+Full→isFullPrecomp : isEssentiallySurj F isFull F isFull (precomposeF E F) isEssSurj+Full→isFullPrecomp surj full A B α = ext , ext≡ ∣₁ where Mor : (d : D .ob) Type _ Mor d = - Σ[ g E [ A .F-ob d , B .F-ob d ] ] - ((c : C .ob)(f : CatIso D (F .F-ob c) d) - α .N-ob c A .F-hom (f .fst) ⋆⟨ E g ⋆⟨ E B .F-hom (f .snd .inv)) + Σ[ g E [ A .F-ob d , B .F-ob d ] ] + ((c : C .ob)(f : CatIso D (F .F-ob c) d) + α .N-ob c A .F-hom (f .fst) ⋆⟨ E g ⋆⟨ E B .F-hom (f .snd .inv)) isPropMor : (d : D .ob) isProp (Mor d) - isPropMor d x y = Σ≡Prop _ isPropΠ2 _ _ E .isSetHom _ _)) path + isPropMor d x y = Σ≡Prop _ isPropΠ2 _ _ E .isSetHom _ _)) path where path : x .fst y .fst path = Prop.rec (E .isSetHom _ _) @@ -73,69 +73,69 @@ inhab : Mor d inhab = Prop.rec (isPropMor d) (a , h) - A .F-hom (h .snd .inv) ⋆⟨ E α .N-ob a ⋆⟨ E B .F-hom (h .fst) , + A .F-hom (h .snd .inv) ⋆⟨ E α .N-ob a ⋆⟨ E B .F-hom (h .fst) , λ c f Prop.rec (E .isSetHom _ _) (k , p) let isom-path = subst-filler (isIso D) (sym p) (⋆Iso f (invIso h) .snd) in ⋆InvRMove (F-Iso {F = B} (_ , isom-path i1)) (sym (α .N-hom k)) - i A .F-hom (p i) ⋆⟨ E α .N-ob a ⋆⟨ E F-Iso {F = B} (p i , isom-path (~ i)) .snd .inv) - i A .F-seq (f .fst) (h .snd .inv) i ⋆⟨ E α .N-ob a ⋆⟨ E F-Iso-Pres⋆ {F = B} h (invIso f) i .fst) + i A .F-hom (p i) ⋆⟨ E α .N-ob a ⋆⟨ E F-Iso {F = B} (p i , isom-path (~ i)) .snd .inv) + i A .F-seq (f .fst) (h .snd .inv) i ⋆⟨ E α .N-ob a ⋆⟨ E F-Iso-Pres⋆ {F = B} h (invIso f) i .fst) sym (E .⋆Assoc _ _ _) cong x x ⋆⟨ E _ ⋆⟨ E _) (E .⋆Assoc _ _ _) cong x x ⋆⟨ E _) (E .⋆Assoc _ _ _)) (full _ _ (f .fst ⋆⟨ D h .snd .inv))) (surj d) - mor-eq : (d : D .ob)(c : C .ob)(f : CatIso D (F .F-ob c) d) - isContrMor d .fst .fst A .F-hom (f .snd .inv) ⋆⟨ E α .N-ob c ⋆⟨ E B .F-hom (f .fst) + mor-eq : (d : D .ob)(c : C .ob)(f : CatIso D (F .F-ob c) d) + isContrMor d .fst .fst A .F-hom (f .snd .inv) ⋆⟨ E α .N-ob c ⋆⟨ E B .F-hom (f .fst) mor-eq d c f = ⋆InvLMove (F-Iso {F = A} f) (⋆InvRMove (invIso (F-Iso {F = B} f)) (sym (isContrMor d .fst .snd c f))) sym (E .⋆Assoc _ _ _) - F-seq3 : (F : Functor D E) {x y z w : D .ob} + F-seq3 : (F : Functor D E) {x y z w : D .ob} {f : D [ x , y ]}{g : D [ y , z ]}{h : D [ z , w ]} - F .F-hom (f ⋆⟨ D g ⋆⟨ D h) F .F-hom f ⋆⟨ E F .F-hom g ⋆⟨ E F .F-hom h - F-seq3 F = F .F-seq _ _ cong x x ⋆⟨ E _) (F .F-seq _ _) + F .F-hom (f ⋆⟨ D g ⋆⟨ D h) F .F-hom f ⋆⟨ E F .F-hom g ⋆⟨ E F .F-hom h + F-seq3 F = F .F-seq _ _ cong x x ⋆⟨ E _) (F .F-seq _ _) ext : NatTrans A B ext .N-ob d = isContrMor d .fst .fst ext .N-hom {x = d} {y = d'} f = Prop.rec2 (E .isSetHom _ _) (c , h) (c' , h') Prop.rec (E .isSetHom _ _) (k , p) - i A .F-hom f ⋆⟨ E mor-eq d' c' h' i) - cong x A .F-hom f ⋆⟨ E x) (E .⋆Assoc _ _ _) + i A .F-hom f ⋆⟨ E mor-eq d' c' h' i) + cong x A .F-hom f ⋆⟨ E x) (E .⋆Assoc _ _ _) sym (E .⋆Assoc _ _ _) sym (E .⋆Assoc _ _ _) cong x x ⋆⟨ E _ ⋆⟨ E _) (sym (E .⋆IdL _)) cong x x ⋆⟨ E _ ⋆⟨ E _ ⋆⟨ E _) (sym (F-Iso {F = A} h .snd .sec)) cong x x ⋆⟨ E _ ⋆⟨ E _) (E .⋆Assoc _ _ _) cong x _ ⋆⟨ E x ⋆⟨ E _ ⋆⟨ E _) (sym (E .⋆Assoc _ _ _)) cong x _ ⋆⟨ E x ⋆⟨ E _ ⋆⟨ E _) (sym (F-seq3 A)) - cong x A .F-hom (invIso h .fst) ⋆⟨ E x ⋆⟨ E _ ⋆⟨ E _) (sym (cong (A .F-hom) p)) + cong x A .F-hom (invIso h .fst) ⋆⟨ E x ⋆⟨ E _ ⋆⟨ E _) (sym (cong (A .F-hom) p)) cong x x ⋆⟨ E _) (E .⋆Assoc _ _ _) cong x _ ⋆⟨ E x ⋆⟨ E _) (α .N-hom k) cong x x ⋆⟨ E _) (sym (E .⋆Assoc _ _ _)) E .⋆Assoc _ _ _ - cong x _ ⋆⟨ E _ ⋆⟨ E (x ⋆⟨ E B .F-hom (h' .fst))) (cong (B .F-hom) p) - cong x _ ⋆⟨ E _ ⋆⟨ E (x ⋆⟨ E B .F-hom (h' .fst))) (F-seq3 B) + cong x _ ⋆⟨ E _ ⋆⟨ E (x ⋆⟨ E B .F-hom (h' .fst))) (cong (B .F-hom) p) + cong x _ ⋆⟨ E _ ⋆⟨ E (x ⋆⟨ E B .F-hom (h' .fst))) (F-seq3 B) cong x _ ⋆⟨ E _ ⋆⟨ E x) (E .⋆Assoc _ _ _) cong x _ ⋆⟨ E _ ⋆⟨ E (_ ⋆⟨ E _ ⋆⟨ E x)) (F-Iso {F = B} h' .snd .sec) cong x _ ⋆⟨ E _ ⋆⟨ E x) (E .⋆IdR _) sym (E .⋆Assoc _ _ _) - i mor-eq d c h (~ i) ⋆⟨ E B .F-hom f)) + i mor-eq d c h (~ i) ⋆⟨ E B .F-hom f)) (full _ _ (h .fst ⋆⟨ D f ⋆⟨ D h' .snd .inv))) (surj d) (surj d') - ext≡ : precomposeF E F .F-hom ext α + ext≡ : precomposeF E F .F-hom ext α ext≡ = makeNatTransPath i c (mor-eq _ c idCatIso - i A .F-id i ⋆⟨ E α .N-ob c ⋆⟨ E B .F-id i) + i A .F-id i ⋆⟨ E α .N-ob c ⋆⟨ E B .F-id i) E .⋆IdR _ E .⋆IdL _) i) -- As a corollary, if F is essential surjective and full, (- ∘ F) is fully faithfull. - isEssSurj+Full→isFullyFaithfulPrecomp : isEssentiallySurj F isFull F isFullyFaithful (precomposeF E F) + isEssSurj+Full→isFullyFaithfulPrecomp : isEssentiallySurj F isFull F isFullyFaithful (precomposeF E F) isEssSurj+Full→isFullyFaithfulPrecomp surj full = isFull+Faithful→isFullyFaithful {F = precomposeF E F} (isEssSurj+Full→isFullPrecomp surj full) (isEssSurj→isFaithfulPrecomp surj) @@ -144,11 +144,11 @@ module _ {ℓC ℓC' ℓD ℓD' ℓE ℓE'} {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} {E : Category ℓE ℓE'} (isUnivE : isUnivalent E) - (F : Functor C D) + (F : Functor C D) where open Category - open Functor + open Functor open NatTrans open isIso open isWeakEquivalence @@ -157,42 +157,42 @@ -- If F is weak equivalence and the target category is univalent, (- ∘ F) is essentially surjective. - isWeakEquiv→isEssSurjPrecomp : isWeakEquivalence F isEssentiallySurj (precomposeF E F) + isWeakEquiv→isEssSurjPrecomp : isWeakEquivalence F isEssentiallySurj (precomposeF E F) isWeakEquiv→isEssSurjPrecomp w-equiv G = Ext , Ext≃ ∣₁ where Obj : (d : D .ob) Type _ Obj d = Σ[ e E .ob ] - Σ[ k ((c : C .ob)(h : CatIso D (F .F-ob c) d) CatIso E (G .F-ob c) e) ] - ((c c' : C .ob)(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) + Σ[ k ((c : C .ob)(h : CatIso D (F .F-ob c) d) CatIso E (G .F-ob c) e) ] + ((c c' : C .ob)(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) (f : C [ c , c' ]) - F .F-hom f ⋆⟨ D h' .fst h .fst - G .F-hom f ⋆⟨ E k c' h' .fst k c h .fst) + F .F-hom f ⋆⟨ D h' .fst h .fst + G .F-hom f ⋆⟨ E k c' h' .fst k c h .fst) - module _ {d} {c c'} (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) where + module _ {d} {c c'} (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) where liftH : CatIso C c c' liftH = liftIso {F = F} (w-equiv .fullfaith) (⋆Iso h (invIso h')) - liftH-eq' : F .F-hom (liftH .fst) h .fst ⋆⟨ D h' .snd .inv + liftH-eq' : F .F-hom (liftH .fst) h .fst ⋆⟨ D h' .snd .inv liftH-eq' = cong fst (liftIso≡ {F = F} (w-equiv .fullfaith) (⋆Iso h (invIso h'))) - liftH-eq : F .F-hom (liftH .fst) ⋆⟨ D h' .fst h .fst + liftH-eq : F .F-hom (liftH .fst) ⋆⟨ D h' .fst h .fst liftH-eq = cong x x ⋆⟨ D _) liftH-eq' D .⋆Assoc _ _ _ cong x _ ⋆⟨ D x) (h' .snd .sec) D .⋆IdR _ - module _ (d : D .ob)(c₀ : C .ob)(h₀ : CatIso D (F .F-ob c₀) d) where + module _ (d : D .ob)(c₀ : C .ob)(h₀ : CatIso D (F .F-ob c₀) d) where isContrObj' : isContr (Obj d) - isContrObj' .fst .fst = G .F-ob c₀ + isContrObj' .fst .fst = G .F-ob c₀ isContrObj' .fst .snd .fst c h = F-Iso {F = G} (liftH h h₀) - isContrObj' .fst .snd .snd c c' h h' f p = sym (G .F-seq _ _) cong (G .F-hom) g-path + isContrObj' .fst .snd .snd c c' h h' f p = sym (G .F-seq _ _) cong (G .F-hom) g-path where g-path : f ⋆⟨ C liftH h' h₀ .fst liftH h h₀ .fst g-path = isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ - (F .F-seq _ _ + (F .F-seq _ _ cong x _ ⋆⟨ D x) (liftH-eq' h' h₀) sym (D .⋆Assoc _ _ _) cong x x ⋆⟨ D invIso h₀ .fst) p @@ -207,7 +207,7 @@ isContrObj' .snd x@(e , k , coh) i .snd .snd = isProp→PathP i isPropΠ6 c c' h h' f _ E .isSetHom - (G .F-hom f ⋆⟨ E isContrObj' .snd x i .snd .fst c' h' .fst) + (G .F-hom f ⋆⟨ E isContrObj' .snd x i .snd .fst c' h' .fst) (isContrObj' .snd x i .snd .fst c h .fst))) (isContrObj' .fst .snd .snd) coh i @@ -217,31 +217,31 @@ Ext-ob : D .ob E .ob Ext-ob d = isContrObj d .fst .fst - k : {d : D .ob}{c : C .ob}(h : CatIso D (F .F-ob c) d) CatIso E (G .F-ob c) (Ext-ob d) + k : {d : D .ob}{c : C .ob}(h : CatIso D (F .F-ob c) d) CatIso E (G .F-ob c) (Ext-ob d) k = isContrObj _ .fst .snd .fst _ k-eq : {d : D .ob}{c c' : C .ob} - (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) + (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d) (f : C [ c , c' ]) - F .F-hom f ⋆⟨ D h' .fst h .fst - G .F-hom f ⋆⟨ E k h' .fst k h .fst + F .F-hom f ⋆⟨ D h' .fst h .fst + G .F-hom f ⋆⟨ E k h' .fst k h .fst k-eq = isContrObj _ .fst .snd .snd _ _ Mor : (d d' : D .ob)(f : D [ d , d' ]) Type _ Mor d d' f = Σ[ g E [ Ext-ob d , Ext-ob d' ] ] - ((c c' : C .ob)(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d') + ((c c' : C .ob)(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d') (l : C [ c , c' ]) - F .F-hom l ⋆⟨ D h' .fst h .fst ⋆⟨ D f - G .F-hom l ⋆⟨ E k h' .fst k h .fst ⋆⟨ E g) + F .F-hom l ⋆⟨ D h' .fst h .fst ⋆⟨ D f + G .F-hom l ⋆⟨ E k h' .fst k h .fst ⋆⟨ E g) module _ (d d' : D .ob)(f : D [ d , d' ]) - (c₀ : C .ob)(h₀ : CatIso D (F .F-ob c₀) d ) - (c₁ : C .ob)(h₁ : CatIso D (F .F-ob c₁) d') - (l₀ : C [ c₀ , c₁ ])(p₀ : F .F-hom l₀ ⋆⟨ D h₁ .fst h₀ .fst ⋆⟨ D f) + (c₀ : C .ob)(h₀ : CatIso D (F .F-ob c₀) d ) + (c₁ : C .ob)(h₁ : CatIso D (F .F-ob c₁) d') + (l₀ : C [ c₀ , c₁ ])(p₀ : F .F-hom l₀ ⋆⟨ D h₁ .fst h₀ .fst ⋆⟨ D f) where - g₀ = k h₀ .snd .inv ⋆⟨ E G .F-hom l₀ ⋆⟨ E k h₁ .fst + g₀ = k h₀ .snd .inv ⋆⟨ E G .F-hom l₀ ⋆⟨ E k h₁ .fst isContrMor' : isContr (Mor d d' f) isContrMor' .fst .fst = g₀ @@ -249,7 +249,7 @@ cong x _ ⋆⟨ E x) (⋆InvLMove (F-Iso {F = G} m') (k-eq h₁ h' _ m'-eq)) sym (E .⋆Assoc _ _ _) cong x x ⋆⟨ E k h₁ .fst) Gm-path' - cong x x ⋆⟨ E G .F-hom l₀ ⋆⟨ E k h₁ .fst) m-eq' + cong x x ⋆⟨ E G .F-hom l₀ ⋆⟨ E k h₁ .fst) m-eq' E .⋆Assoc _ _ _ E .⋆Assoc _ _ _ cong x k h .fst ⋆⟨ E x) (sym (E .⋆Assoc _ _ _)) where @@ -258,13 +258,13 @@ m' = liftH h₁ h' m'-eq = liftH-eq h₁ h' - m-eq' : G .F-hom (m .snd .inv) k h .fst ⋆⟨ E k h₀ .snd .inv + m-eq' : G .F-hom (m .snd .inv) k h .fst ⋆⟨ E k h₀ .snd .inv m-eq' = ⋆InvRMove (k h₀) (sym (⋆InvLMove (F-Iso {F = G} m) (k-eq h₀ h _ m-eq))) - Fm-path : F .F-hom (l₀ ⋆⟨ C m' .fst) F .F-hom (m .fst ⋆⟨ C l) + Fm-path : F .F-hom (l₀ ⋆⟨ C m' .fst) F .F-hom (m .fst ⋆⟨ C l) Fm-path = - F .F-seq _ _ - cong x F .F-hom l₀ ⋆⟨ D x) (liftH-eq' h₁ h') + F .F-seq _ _ + cong x F .F-hom l₀ ⋆⟨ D x) (liftH-eq' h₁ h') sym (D .⋆Assoc _ _ _) cong x x ⋆⟨ D _) p₀ cong x x ⋆⟨ D _ ⋆⟨ D _) (sym (D .⋆IdR _)) @@ -273,15 +273,15 @@ cong x x ⋆⟨ D _) (D .⋆Assoc _ _ _) D .⋆Assoc _ _ _ i ⋆InvRMove h m-eq (~ i) ⋆⟨ D ⋆InvRMove h' p (~ i)) - sym (F .F-seq _ _) + sym (F .F-seq _ _) m-path : l₀ ⋆⟨ C m' .fst m .fst ⋆⟨ C l m-path = isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ Fm-path - Gm-path : G .F-hom l₀ ⋆⟨ E G .F-hom (m' .fst) G .F-hom (m .fst) ⋆⟨ E G .F-hom l - Gm-path = sym (G .F-seq _ _) cong (G .F-hom) m-path G .F-seq _ _ + Gm-path : G .F-hom l₀ ⋆⟨ E G .F-hom (m' .fst) G .F-hom (m .fst) ⋆⟨ E G .F-hom l + Gm-path = sym (G .F-seq _ _) cong (G .F-hom) m-path G .F-seq _ _ - Gm-path' : G .F-hom l ⋆⟨ E G .F-hom (m' .snd .inv) G .F-hom (m .snd .inv) ⋆⟨ E G .F-hom l₀ + Gm-path' : G .F-hom l ⋆⟨ E G .F-hom (m' .snd .inv) G .F-hom (m .snd .inv) ⋆⟨ E G .F-hom l₀ Gm-path' = ⋆InvLMove (F-Iso {F = G} m) (sym (⋆InvRMove (F-Iso {F = G} m') Gm-path E .⋆Assoc _ _ _)) isContrMor' .snd (g₁ , coh₁) i .fst = @@ -290,18 +290,18 @@ isContrMor' .snd x@(g₁ , coh₁) i .snd = isProp→PathP i isPropΠ6 c c' h h' l _ E .isSetHom - (G .F-hom l ⋆⟨ E k h' .fst) + (G .F-hom l ⋆⟨ E k h' .fst) (k h .fst ⋆⟨ E isContrMor' .snd x i .fst))) (isContrMor' .fst .snd) coh₁ i module _ {c c'} {d d'} - (f : D [ d , d' ])(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d') + (f : D [ d , d' ])(h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d') where liftL : C [ c , c' ] liftL = invEq (_ , w-equiv .fullfaith _ _) (h .fst ⋆⟨ D f ⋆⟨ D h' .snd .inv) - liftL-eq : F .F-hom liftL ⋆⟨ D h' .fst h .fst ⋆⟨ D f + liftL-eq : F .F-hom liftL ⋆⟨ D h' .fst h .fst ⋆⟨ D f liftL-eq = sym (⋆InvRMove (invIso h') (sym (secEq (_ , w-equiv .fullfaith _ _) (h .fst ⋆⟨ D f ⋆⟨ D h' .snd .inv)))) @@ -317,29 +317,29 @@ liftL⋆ : {c c' c''} {d d' d''} (f : D [ d , d' ])(g : D [ d' , d'' ]) - (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d')(h'' : CatIso D (F .F-ob c'') d'') + (h : CatIso D (F .F-ob c) d)(h' : CatIso D (F .F-ob c') d')(h'' : CatIso D (F .F-ob c'') d'') liftL (f ⋆⟨ D g) h h'' liftL f h h' ⋆⟨ C liftL g h' h'' liftL⋆ f g h h' h'' = isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ - (⋆CancelR h'' path sym (F .F-seq _ _)) + (⋆CancelR h'' path sym (F .F-seq _ _)) where path : _ path = liftL-eq (f ⋆⟨ D g) h h'' sym (D .⋆Assoc _ _ _) cong x x ⋆⟨ D _) (sym (liftL-eq f h h')) D .⋆Assoc _ _ _ - cong x F .F-hom (liftL f h h') ⋆⟨ D x) (sym (liftL-eq g h' h'')) + cong x F .F-hom (liftL f h h') ⋆⟨ D x) (sym (liftL-eq g h' h'')) sym (D .⋆Assoc _ _ _) - Ext : Functor D E - Ext .F-ob = Ext-ob - Ext .F-hom = Ext-hom - Ext .F-id {x = d} = Prop.rec (E .isSetHom _ _) + Ext : Functor D E + Ext .F-ob = Ext-ob + Ext .F-hom = Ext-hom + Ext .F-id {x = d} = Prop.rec (E .isSetHom _ _) (c , h) let r = isContrMor _ _ (D .id {x = d}) .fst .snd _ _ h h (C .id) - (cong x x ⋆⟨ D _) (F .F-id) D .⋆IdL _ sym (D .⋆IdR _)) - in ⋆CancelL (k h) (sym r cong x x ⋆⟨ E (k h .fst)) (G .F-id) E .⋆IdL _ sym (E .⋆IdR _))) + (cong x x ⋆⟨ D _) (F .F-id) D .⋆IdL _ sym (D .⋆IdR _)) + in ⋆CancelL (k h) (sym r cong x x ⋆⟨ E (k h .fst)) (G .F-id) E .⋆IdL _ sym (E .⋆IdR _))) (w-equiv .esssurj d) - Ext .F-seq {x = a} {y = b} {z = c} f g = + Ext .F-seq {x = a} {y = b} {z = c} f g = Prop.rec3 (E .isSetHom _ _) (_ , ha) (_ , hb) (_ , hc) let rf = isContrMor _ _ _ .fst .snd _ _ ha hb (liftL f ha hb) (liftL-eq f ha hb) @@ -347,62 +347,62 @@ rfg = isContrMor _ _ _ .fst .snd _ _ ha hc (liftL (f ⋆⟨ D g) ha hc) (liftL-eq (f ⋆⟨ D g) ha hc) in ⋆CancelL (k ha) (sym rfg - cong x x ⋆⟨ E k hc .fst) (cong (G .F-hom) (liftL⋆ f g ha hb hc) G .F-seq _ _) + cong x x ⋆⟨ E k hc .fst) (cong (G .F-hom) (liftL⋆ f g ha hb hc) G .F-seq _ _) E .⋆Assoc _ _ _ - cong x G .F-hom _ ⋆⟨ E x) rg + cong x G .F-hom _ ⋆⟨ E x) rg sym (E .⋆Assoc _ _ _) cong x x ⋆⟨ E Ext-hom g) rf E .⋆Assoc _ _ _)) (w-equiv .esssurj a) (w-equiv .esssurj b) (w-equiv .esssurj c) - objFc : (c : C .ob) Obj (F .F-ob c) - objFc c₀ .fst = G .F-ob c₀ + objFc : (c : C .ob) Obj (F .F-ob c) + objFc c₀ .fst = G .F-ob c₀ objFc c₀ .snd .fst c h = F-Iso {F = G} (liftIso {F = F} (w-equiv .fullfaith) h) - objFc c₀ .snd .snd c c' h h' f p = sym (G .F-seq _ _) - cong (G .F-hom) (isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ path) + objFc c₀ .snd .snd c c' h h' f p = sym (G .F-seq _ _) + cong (G .F-hom) (isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ path) where path : _ path = - F .F-seq _ _ + F .F-seq _ _ cong x _ ⋆⟨ D x) (cong fst (liftIso≡ {F = F} (w-equiv .fullfaith) h')) p sym (cong fst (liftIso≡ {F = F} (w-equiv .fullfaith) h)) - Ext-ob≡ : (c : C .ob) Ext-ob (F .F-ob c) G .F-ob c + Ext-ob≡ : (c : C .ob) Ext-ob (F .F-ob c) G .F-ob c Ext-ob≡ c₀ = cong fst (isContrObj _ .snd (objFc c₀)) Ext-hom≡ : {c c' : C .ob}(f : C [ c , c' ]) - PathP i E [ Ext-ob≡ c i , Ext-ob≡ c' i ]) (Ext-hom (F .F-hom f)) (G .F-hom f) + PathP i E [ Ext-ob≡ c i , Ext-ob≡ c' i ]) (Ext-hom (F .F-hom f)) (G .F-hom f) Ext-hom≡ {c = c} {c' = c'} f i = hcomp j λ { (i = i0) isContrMor _ _ _ .snd morFf (~ j) .fst - ; (i = i1) G .F-hom f }) + ; (i = i1) G .F-hom f }) (transpGf-filler (~ i)) where - transpGf-filler = transport-filler i E [ Ext-ob≡ c (~ i) , Ext-ob≡ c' (~ i) ]) (G .F-hom f) + transpGf-filler = transport-filler i E [ Ext-ob≡ c (~ i) , Ext-ob≡ c' (~ i) ]) (G .F-hom f) - morFf : Mor _ _ (F .F-hom f) + morFf : Mor _ _ (F .F-hom f) morFf .fst = transpGf-filler i1 morFf .snd c c' h h' l p = - transport i G .F-hom l ⋆⟨ E isContrObj _ .snd (objFc _) (~ i) .snd .fst c' h' .fst + transport i G .F-hom l ⋆⟨ E isContrObj _ .snd (objFc _) (~ i) .snd .fst c' h' .fst isContrObj _ .snd (objFc _) (~ i) .snd .fst c h .fst ⋆⟨ E transpGf-filler i) G-path where F-path : _ F-path = - F .F-seq _ _ + F .F-seq _ _ cong x _ ⋆⟨ D x) (cong fst (liftIso≡ {F = F} (w-equiv .fullfaith) h')) p cong x x ⋆⟨ D _) (sym (cong fst (liftIso≡ {F = F} (w-equiv .fullfaith) h))) - sym (F .F-seq _ _) + sym (F .F-seq _ _) G-path : _ G-path = - sym (G .F-seq _ _) - cong (G .F-hom) (isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ F-path) - G .F-seq _ _ + sym (G .F-seq _ _) + cong (G .F-hom) (isFullyFaithful→Faithful {F = F} (w-equiv .fullfaith) _ _ _ _ F-path) + G .F-seq _ _ - Ext≡ : precomposeF E F .F-ob Ext G - Ext≡ = Functor≡ Ext-ob≡ Ext-hom≡ + Ext≡ : precomposeF E F .F-ob Ext G + Ext≡ = Functor≡ Ext-ob≡ Ext-hom≡ - Ext≃ : CatIso _ (precomposeF E F .F-ob Ext) G + Ext≃ : CatIso _ (precomposeF E F .F-ob Ext) G Ext≃ = NatIso→FUNCTORIso _ _ (pathToNatIso Ext≡) diff --git a/Cubical.Categories.Functor.Properties.html b/Cubical.Categories.Functor.Properties.html index c75113e329..5cd7e6e203 100644 --- a/Cubical.Categories.Functor.Properties.html +++ b/Cubical.Categories.Functor.Properties.html @@ -25,134 +25,134 @@ B C D E : Category ℓ' open Category -open Functor +open Functor -F-assoc : {F : Functor B C} {G : Functor C D} {H : Functor D E} - H ∘F (G ∘F F) (H ∘F G) ∘F F -F-assoc = Functor≡ _ refl) _ refl) +F-assoc : {F : Functor B C} {G : Functor C D} {H : Functor D E} + H ∘F (G ∘F F) (H ∘F G) ∘F F +F-assoc = Functor≡ _ refl) _ refl) -- Results about functors -module _ {F : Functor C D} where +module _ {F : Functor C D} where -- the identity is the identity - F-lUnit : F ∘F 𝟙⟨ C F - F-lUnit i .F-ob x = F x - F-lUnit i .F-hom f = F f - F-lUnit i .F-id {x} = lUnit (F .F-id) (~ i) - F-lUnit i .F-seq f g = lUnit (F .F-seq f g) (~ i) - - F-rUnit : 𝟙⟨ D ∘F F F - F-rUnit i .F-ob x = F x - F-rUnit i .F-hom f = F f - F-rUnit i .F-id {x} = rUnit (F .F-id) (~ i) - F-rUnit i .F-seq f g = rUnit (F .F-seq f g) (~ i) + F-lUnit : F ∘F 𝟙⟨ C F + F-lUnit i .F-ob x = F x + F-lUnit i .F-hom f = F f + F-lUnit i .F-id {x} = lUnit (F .F-id) (~ i) + F-lUnit i .F-seq f g = lUnit (F .F-seq f g) (~ i) + + F-rUnit : 𝟙⟨ D ∘F F F + F-rUnit i .F-ob x = F x + F-rUnit i .F-hom f = F f + F-rUnit i .F-id {x} = rUnit (F .F-id) (~ i) + F-rUnit i .F-seq f g = rUnit (F .F-seq f g) (~ i) -- functors preserve commutative diagrams (specificallysqures here) preserveCommF : {x y z w} {f : C [ x , y ]} {g : C [ y , w ]} {h : C [ x , z ]} {k : C [ z , w ]} f ⋆⟨ C g h ⋆⟨ C k - (F f ) ⋆⟨ D (F g ) (F h ) ⋆⟨ D (F k ) + (F f ) ⋆⟨ D (F g ) (F h ) ⋆⟨ D (F k ) preserveCommF {f = f} {g = g} {h = h} {k = k} eq - = (F f ) ⋆⟨ D (F g ) - ≡⟨ sym (F .F-seq _ _) - F f ⋆⟨ C g - ≡⟨ cong (F ⟪_⟫) eq - F h ⋆⟨ C k - ≡⟨ F .F-seq _ _ - (F h ) ⋆⟨ D (F k ) + = (F f ) ⋆⟨ D (F g ) + ≡⟨ sym (F .F-seq _ _) + F f ⋆⟨ C g + ≡⟨ cong (F ⟪_⟫) eq + F h ⋆⟨ C k + ≡⟨ F .F-seq _ _ + (F h ) ⋆⟨ D (F k ) -- functors preserve isomorphisms - preserveIsosF : {x y} CatIso C x y CatIso D (F x ) (F y ) + preserveIsosF : {x y} CatIso C x y CatIso D (F x ) (F y ) preserveIsosF {x} {y} (f , isiso f⁻¹ sec' ret') = catiso g g⁻¹ -- sec ( (g⁻¹ ⋆⟨ D g) - ≡⟨ sym (F .F-seq f⁻¹ f) - F f⁻¹ ⋆⟨ C f - ≡⟨ cong (F .F-hom) sec' - F C .id - ≡⟨ F .F-id + ≡⟨ sym (F .F-seq f⁻¹ f) + F f⁻¹ ⋆⟨ C f + ≡⟨ cong (F .F-hom) sec' + F C .id + ≡⟨ F .F-id D .id ) -- ret ( (g ⋆⟨ D g⁻¹) - ≡⟨ sym (F .F-seq f f⁻¹) - F f ⋆⟨ C f⁻¹ - ≡⟨ cong (F .F-hom) ret' - F C .id - ≡⟨ F .F-id + ≡⟨ sym (F .F-seq f f⁻¹) + F f ⋆⟨ C f⁻¹ + ≡⟨ cong (F .F-hom) ret' + F C .id + ≡⟨ F .F-id D .id ) where x' : D .ob - x' = F x + x' = F x y' : D .ob - y' = F y + y' = F y g : D [ x' , y' ] - g = F f + g = F f g⁻¹ : D [ y' , x' ] - g⁻¹ = F f⁻¹ + g⁻¹ = F f⁻¹ -- hacky lemma helping with type inferences functorCongP : {x y v w : ob C} {p : x y} {q : v w} {f : C [ x , v ]} {g : C [ y , w ]} PathP i C [ p i , q i ]) f g - PathP i D [ F .F-ob (p i) , F. F-ob (q i) ]) (F .F-hom f) (F .F-hom g) - functorCongP r i = F .F-hom (r i) + PathP i D [ F .F-ob (p i) , F. F-ob (q i) ]) (F .F-hom f) (F .F-hom g) + functorCongP r i = F .F-hom (r i) -isSetFunctor : isSet (D .ob) isSet (Functor C D) +isSetFunctor : isSet (D .ob) isSet (Functor C D) isSetFunctor {D = D} {C = C} isSet-D-ob F G p q = w where w : _ - F-ob (w i i₁) = isSetΠ _ isSet-D-ob) _ _ (cong F-ob p) (cong F-ob q) i i₁ - F-hom (w i i₁) z = + F-ob (w i i₁) = isSetΠ _ isSet-D-ob) _ _ (cong F-ob p) (cong F-ob q) i i₁ + F-hom (w i i₁) z = isSet→SquareP - i i₁ D .isSetHom {(F-ob (w i i₁) _)} {(F-ob (w i i₁) _)}) - i₁ F-hom (p i₁) z) i₁ F-hom (q i₁) z) refl refl i i₁ + i i₁ D .isSetHom {(F-ob (w i i₁) _)} {(F-ob (w i i₁) _)}) + i₁ F-hom (p i₁) z) i₁ F-hom (q i₁) z) refl refl i i₁ - F-id (w i i₁) = + F-id (w i i₁) = isSet→SquareP - i i₁ isProp→isSet (D .isSetHom (F-hom (w i i₁) _) (D .id))) - i₁ F-id (p i₁)) i₁ F-id (q i₁)) refl refl i i₁ + i i₁ isProp→isSet (D .isSetHom (F-hom (w i i₁) _) (D .id))) + i₁ F-id (p i₁)) i₁ F-id (q i₁)) refl refl i i₁ - F-seq (w i i₁) _ _ = + F-seq (w i i₁) _ _ = isSet→SquareP - i i₁ isProp→isSet (D .isSetHom (F-hom (w i i₁) _) ((F-hom (w i i₁) _) ⋆⟨ D (F-hom (w i i₁) _)))) - i₁ F-seq (p i₁) _ _) i₁ F-seq (q i₁) _ _) refl refl i i₁ + i i₁ isProp→isSet (D .isSetHom (F-hom (w i i₁) _) ((F-hom (w i i₁) _) ⋆⟨ D (F-hom (w i i₁) _)))) + i₁ F-seq (p i₁) _ _) i₁ F-seq (q i₁) _ _) refl refl i i₁ -- Conservative Functor, -- namely if a morphism f is mapped to an isomorphism, -- the morphism f is itself isomorphism. -isConservative : (F : Functor C D) Type _ -isConservative {C = C} {D = D} F = {x y : C .ob}{f : C [ x , y ]} isIso D (F .F-hom f) isIso C f +isConservative : (F : Functor C D) Type _ +isConservative {C = C} {D = D} F = {x y : C .ob}{f : C [ x , y ]} isIso D (F .F-hom f) isIso C f -- Fully-faithfulness of functors -module _ {F : Functor C D} where +module _ {F : Functor C D} where - isFullyFaithful→Full : isFullyFaithful F isFull F + isFullyFaithful→Full : isFullyFaithful F isFull F isFullyFaithful→Full fullfaith x y = isEquiv→isSurjection (fullfaith x y) - isFullyFaithful→Faithful : isFullyFaithful F isFaithful F + isFullyFaithful→Faithful : isFullyFaithful F isFaithful F isFullyFaithful→Faithful fullfaith x y = isEmbedding→Inj (isEquiv→isEmbedding (fullfaith x y)) - isFull+Faithful→isFullyFaithful : isFull F isFaithful F isFullyFaithful F + isFull+Faithful→isFullyFaithful : isFull F isFaithful F isFullyFaithful F isFull+Faithful→isFullyFaithful full faith x y = isEmbedding×isSurjection→isEquiv (injEmbedding (D .isSetHom) (faith x y _ _) , full x y) - isFaithful→reflectsMono : isFaithful F {x y : C .ob} (f : C [ x , y ]) - isMonic D (F f ) isMonic C f + isFaithful→reflectsMono : isFaithful F {x y : C .ob} (f : C [ x , y ]) + isMonic D (F f ) isMonic C f isFaithful→reflectsMono F-faithful f Ff-mon {a = a} {a' = a'} a⋆f≡a'⋆f = - let Fa⋆Ff≡Fa'⋆Ff = sym (F .F-seq a f) - cong (F ⟪_⟫) a⋆f≡a'⋆f - F .F-seq a' f + let Fa⋆Ff≡Fa'⋆Ff = sym (F .F-seq a f) + cong (F ⟪_⟫) a⋆f≡a'⋆f + F .F-seq a' f in F-faithful _ _ _ _ (Ff-mon Fa⋆Ff≡Fa'⋆Ff) @@ -160,46 +160,46 @@ open isIso - isFullyFaithful→Conservative : isFullyFaithful F isConservative F + isFullyFaithful→Conservative : isFullyFaithful F isConservative F isFullyFaithful→Conservative fullfaith {x = x} {y = y} {f = f} isoFf = w where w : isIso C f w .inv = invIsEq (fullfaith _ _) (isoFf .inv) w .sec = isFullyFaithful→Faithful fullfaith _ _ _ _ - (F .F-seq _ _ - i secIsEq (fullfaith _ _) (isoFf .inv) i ⋆⟨ D F .F-hom f) + (F .F-seq _ _ + i secIsEq (fullfaith _ _) (isoFf .inv) i ⋆⟨ D F .F-hom f) isoFf .sec - sym (F .F-id)) + sym (F .F-id)) w .ret = isFullyFaithful→Faithful fullfaith _ _ _ _ - (F .F-seq _ _ - i F .F-hom f ⋆⟨ D secIsEq (fullfaith _ _) (isoFf .inv) i) + (F .F-seq _ _ + i F .F-hom f ⋆⟨ D secIsEq (fullfaith _ _) (isoFf .inv) i) isoFf .ret - sym (F .F-id)) + sym (F .F-id)) -- Lifting isomorphism upwards a fully faithful functor - module _ (fullfaith : isFullyFaithful F) where + module _ (fullfaith : isFullyFaithful F) where - liftIso : {x y : C .ob} CatIso D (F .F-ob x) (F .F-ob y) CatIso C x y + liftIso : {x y : C .ob} CatIso D (F .F-ob x) (F .F-ob y) CatIso C x y liftIso f .fst = invEq (_ , fullfaith _ _) (f .fst) liftIso f .snd = isFullyFaithful→Conservative fullfaith (subst (isIso D) (sym (secEq (_ , fullfaith _ _) (f .fst))) (f .snd)) - liftIso≡ : {x y : C .ob} (f : CatIso D (F .F-ob x) (F .F-ob y)) F-Iso {F = F} (liftIso f) f + liftIso≡ : {x y : C .ob} (f : CatIso D (F .F-ob x) (F .F-ob y)) F-Iso {F = F} (liftIso f) f liftIso≡ f = CatIso≡ _ _ (secEq (_ , fullfaith _ _) (f .fst)) -- Functors inducing surjection on objects is essentially surjective -isSurj-ob→isSurj : {F : Functor C D} isSurjection (F .F-ob) isEssentiallySurj F +isSurj-ob→isSurj : {F : Functor C D} isSurjection (F .F-ob) isEssentiallySurj F isSurj-ob→isSurj surj y = Prop.map (x , p) x , pathToIso p) (surj y) -- Fully-faithful functors induce equivalence on isomorphisms -isFullyFaithful→isEquivF-Iso : {F : Functor C D} - isFullyFaithful F x y isEquiv (F-Iso {F = F} {x = x} {y = y}) +isFullyFaithful→isEquivF-Iso : {F : Functor C D} + isFullyFaithful F x y isEquiv (F-Iso {F = F} {x = x} {y = y}) isFullyFaithful→isEquivF-Iso {F = F} fullfaith x y = - Σ-cong-equiv-prop (_ , fullfaith x y) isPropIsIso isPropIsIso _ + Σ-cong-equiv-prop (_ , fullfaith x y) isPropIsIso isPropIsIso _ f isFullyFaithful→Conservative {F = F} fullfaith {f = f}) .snd @@ -213,21 +213,21 @@ -- Essentially surjective functor with univalent target induces surjection on objects - isSurj→isSurj-ob : {F : Functor C D} isEssentiallySurj F isSurjection (F .F-ob) + isSurj→isSurj-ob : {F : Functor C D} isEssentiallySurj F isSurjection (F .F-ob) isSurj→isSurj-ob surj y = Prop.map (x , f) x , CatIsoToPath f) (surj y) module _ (isUnivC : isUnivalent C) (isUnivD : isUnivalent D) - {F : Functor C D} + {F : Functor C D} where open isUnivalent -- Fully-faithful functor between univalent target induces embedding on objects - isFullyFaithful→isEmbd-ob : isFullyFaithful F isEmbedding (F .F-ob) + isFullyFaithful→isEmbd-ob : isFullyFaithful F isEmbedding (F .F-ob) isFullyFaithful→isEmbd-ob fullfaith x y = isEquiv[equivFunA≃B∘f]→isEquiv[f] _ (_ , isUnivD .univ _ _) (subst isEquiv (F-pathToIso-∘ {F = F}) diff --git a/Cubical.Categories.Functors.Constant.html b/Cubical.Categories.Functors.Constant.html index 87e5f8a0f9..6f9c39b198 100644 --- a/Cubical.Categories.Functors.Constant.html +++ b/Cubical.Categories.Functors.Constant.html @@ -12,11 +12,11 @@ ℓC ℓC' ℓD ℓD' : Level open Category -open Functor +open Functor -Constant : (C : Category ℓC ℓC') (D : Category ℓD ℓD') (d : ob D) Functor C D -F-ob (Constant C D d) c = d -F-hom (Constant C D d) φ = id D -F-id (Constant C D d) = refl -F-seq (Constant C D d) φ χ = sym (⋆IdR D _) +Constant : (C : Category ℓC ℓC') (D : Category ℓD ℓD') (d : ob D) Functor C D +F-ob (Constant C D d) c = d +F-hom (Constant C D d) φ = id D +F-id (Constant C D d) = refl +F-seq (Constant C D d) φ χ = sym (⋆IdR D _) \ No newline at end of file diff --git a/Cubical.Categories.Functors.HomFunctor.html b/Cubical.Categories.Functors.HomFunctor.html index 51640bd11b..7b6d64432c 100644 --- a/Cubical.Categories.Functors.HomFunctor.html +++ b/Cubical.Categories.Functors.HomFunctor.html @@ -15,14 +15,14 @@ module _ (C : Category ℓC ℓC') where - open Functor + open Functor open Category C - HomFunctor : Functor (C ^op ×C C) (SET ℓC') - F-ob HomFunctor (x , y) = Hom[ x , y ] , isSetHom - F-hom HomFunctor {x , y} {x' , y'} (φ , ψ) θ = ψ (θ φ) - F-id HomFunctor = funExt λ θ ⋆IdR (id θ) ⋆IdL θ - F-seq HomFunctor {x , y} {x' , y'} {x'' , y''} (φ , ψ) (φ' , ψ') = funExt λ θ + HomFunctor : Functor (C ^op ×C C) (SET ℓC') + F-ob HomFunctor (x , y) = Hom[ x , y ] , isSetHom + F-hom HomFunctor {x , y} {x' , y'} (φ , ψ) θ = ψ (θ φ) + F-id HomFunctor = funExt λ θ ⋆IdR (id θ) ⋆IdL θ + F-seq HomFunctor {x , y} {x' , y'} {x'' , y''} (φ , ψ) (φ' , ψ') = funExt λ θ ((φ' φ) θ) (ψ ψ') ≡⟨ sym (⋆Assoc ((φ' φ) θ) ψ ψ') (((φ' φ) θ) ψ) ψ' diff --git a/Cubical.Categories.Instances.Categories.html b/Cubical.Categories.Instances.Categories.html index 632a9e140a..d5a9054829 100644 --- a/Cubical.Categories.Instances.Categories.html +++ b/Cubical.Categories.Instances.Categories.html @@ -16,9 +16,9 @@ CatPrecategory : Precategory (ℓ-suc (ℓ-max ℓ')) (ℓ-max ℓ') CatPrecategory .ob = Category ℓ' - CatPrecategory .Hom[_,_] = Functor - CatPrecategory .id = 𝟙⟨ _ - CatPrecategory ._⋆_ G H = H ∘F G + CatPrecategory .Hom[_,_] = Functor + CatPrecategory .id = 𝟙⟨ _ + CatPrecategory ._⋆_ G H = H ∘F G CatPrecategory .⋆IdL _ = F-lUnit CatPrecategory .⋆IdR _ = F-rUnit CatPrecategory .⋆Assoc _ _ _ = F-assoc diff --git a/Cubical.Categories.Instances.CommAlgebras.html b/Cubical.Categories.Instances.CommAlgebras.html index 0822f7b468..5656bc818e 100644 --- a/Cubical.Categories.Instances.CommAlgebras.html +++ b/Cubical.Categories.Instances.CommAlgebras.html @@ -56,18 +56,18 @@ snd (snd TerminalCommAlgebra A) f = AlgebraHom≡ (funExt _ refl)) -- the forgetful functor into CommRings and SET - open Functor - ForgetfulCommAlgebra→CommRing : Functor (CommAlgebrasCategory {ℓ' = ℓ'}) CommRingsCategory - F-ob ForgetfulCommAlgebra→CommRing = CommAlgebra→CommRing {R = R} - F-hom ForgetfulCommAlgebra→CommRing = CommAlgebraHom→CommRingHom _ _ - F-id ForgetfulCommAlgebra→CommRing = RingHom≡ refl - F-seq ForgetfulCommAlgebra→CommRing _ _ = RingHom≡ refl - - ForgetfulCommAlgebra→Set : Functor (CommAlgebrasCategory {ℓ' = ℓ'}) (SET ℓ') - F-ob ForgetfulCommAlgebra→Set A = A .fst , A .snd .CommAlgebraStr.is-set - F-hom ForgetfulCommAlgebra→Set = fst - F-id ForgetfulCommAlgebra→Set = refl - F-seq ForgetfulCommAlgebra→Set _ _ = refl + open Functor + ForgetfulCommAlgebra→CommRing : Functor (CommAlgebrasCategory {ℓ' = ℓ'}) CommRingsCategory + F-ob ForgetfulCommAlgebra→CommRing = CommAlgebra→CommRing {R = R} + F-hom ForgetfulCommAlgebra→CommRing = CommAlgebraHom→CommRingHom _ _ + F-id ForgetfulCommAlgebra→CommRing = RingHom≡ refl + F-seq ForgetfulCommAlgebra→CommRing _ _ = RingHom≡ refl + + ForgetfulCommAlgebra→Set : Functor (CommAlgebrasCategory {ℓ' = ℓ'}) (SET ℓ') + F-ob ForgetfulCommAlgebra→Set A = A .fst , A .snd .CommAlgebraStr.is-set + F-hom ForgetfulCommAlgebra→Set = fst + F-id ForgetfulCommAlgebra→Set = refl + F-seq ForgetfulCommAlgebra→Set _ _ = refl -- general limits module _ {ℓJ ℓJ' : Level} where @@ -87,47 +87,47 @@ open IsAlgebraHom LimitsCommAlgebrasCategory : Limits {ℓ-max ℓJ} {ℓJ'} (CommAlgebrasCategory {ℓ' = theℓ}) - fst (lim (LimitsCommAlgebrasCategory J D)) = lim (completeSET J (ffA→SET ∘F D)) .fst + fst (lim (LimitsCommAlgebrasCategory J D)) = lim (completeSET J (ffA→SET ∘F D)) .fst 0a (snd (lim (LimitsCommAlgebrasCategory J D))) = - cone v _ 0a (snd (F-ob D v))) - e funExt _ F-hom D e .snd .pres0)) + cone v _ 0a (snd (F-ob D v))) + e funExt _ F-hom D e .snd .pres0)) 1a (snd (lim (LimitsCommAlgebrasCategory J D))) = - cone v _ 1a (snd (F-ob D v))) - e funExt _ F-hom D e .snd .pres1)) + cone v _ 1a (snd (F-ob D v))) + e funExt _ F-hom D e .snd .pres1)) _+_ (snd (lim (LimitsCommAlgebrasCategory J D))) x y = - cone v _ _+_ (snd (F-ob D v)) _ _) - ( λ e funExt _ F-hom D e .snd .pres+ _ _ - λ i _+_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) + cone v _ _+_ (snd (F-ob D v)) _ _) + ( λ e funExt _ F-hom D e .snd .pres+ _ _ + λ i _+_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) _·_ (snd (lim (LimitsCommAlgebrasCategory J D))) x y = - cone v _ _·_ (snd (F-ob D v)) _ _) - ( λ e funExt _ F-hom D e .snd .pres· _ _ - λ i _·_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) + cone v _ _·_ (snd (F-ob D v)) _ _) + ( λ e funExt _ F-hom D e .snd .pres· _ _ + λ i _·_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) (- snd (lim (LimitsCommAlgebrasCategory J D))) x = - cone v _ -_ (snd (F-ob D v)) _) - ( λ e funExt z F-hom D e .snd .pres- _ - λ i -_ (snd (F-ob D _)) (coneOutCommutes x e i tt*))) + cone v _ -_ (snd (F-ob D v)) _) + ( λ e funExt z F-hom D e .snd .pres- _ + λ i -_ (snd (F-ob D _)) (coneOutCommutes x e i tt*))) _⋆_ (snd (lim (LimitsCommAlgebrasCategory J D))) = λ r x -- why can't Agda parse with r x on the lhs? - cone v _ _⋆_ (snd (F-ob D v)) r (coneOut x v tt*)) - ( λ e funExt z F-hom D e .snd .pres⋆ _ _ - λ i _⋆_ (snd (F-ob D _)) r (coneOutCommutes x e i tt*))) + cone v _ _⋆_ (snd (F-ob D v)) r (coneOut x v tt*)) + ( λ e funExt z F-hom D e .snd .pres⋆ _ _ + λ i _⋆_ (snd (F-ob D _)) r (coneOutCommutes x e i tt*))) isCommAlgebra (snd (lim (LimitsCommAlgebrasCategory J D))) = makeIsCommAlgebra - (isSetCone (ffA→SET ∘F D) (Unit* , _)) - _ _ _ cone≡ v funExt _ snd (F-ob D v) .+Assoc _ _ _))) - _ cone≡ v funExt _ +IdR (snd (F-ob D v)) _))) - _ cone≡ v funExt _ +InvR (snd (F-ob D v)) _))) - _ _ cone≡ v funExt _ snd (F-ob D v) .+Comm _ _))) - _ _ _ cone≡ λ v funExt λ _ ·Assoc (snd (F-ob D v)) _ _ _) - _ cone≡ v funExt _ ·IdL (snd (F-ob D v)) _))) - _ _ _ cone≡ v funExt _ ·DistL+ (snd (F-ob D v)) _ _ _))) - _ _ cone≡ v funExt _ snd (F-ob D v) .·Comm _ _))) - _ _ _ cone≡ λ v funExt λ _ ⋆Assoc (snd (F-ob D v)) _ _ _) - _ _ _ cone≡ v funExt _ ⋆DistR+ (snd (F-ob D v)) _ _ _))) - _ _ _ cone≡ v funExt _ ⋆DistL+ (snd (F-ob D v)) _ _ _))) - _ cone≡ v funExt _ ⋆IdL (snd (F-ob D v)) _))) - λ _ _ _ cone≡ λ v funExt λ _ ⋆AssocL (snd (F-ob D v)) _ _ _ + (isSetCone (ffA→SET ∘F D) (Unit* , _)) + _ _ _ cone≡ v funExt _ snd (F-ob D v) .+Assoc _ _ _))) + _ cone≡ v funExt _ +IdR (snd (F-ob D v)) _))) + _ cone≡ v funExt _ +InvR (snd (F-ob D v)) _))) + _ _ cone≡ v funExt _ snd (F-ob D v) .+Comm _ _))) + _ _ _ cone≡ λ v funExt λ _ ·Assoc (snd (F-ob D v)) _ _ _) + _ cone≡ v funExt _ ·IdL (snd (F-ob D v)) _))) + _ _ _ cone≡ v funExt _ ·DistL+ (snd (F-ob D v)) _ _ _))) + _ _ cone≡ v funExt _ snd (F-ob D v) .·Comm _ _))) + _ _ _ cone≡ λ v funExt λ _ ⋆Assoc (snd (F-ob D v)) _ _ _) + _ _ _ cone≡ v funExt _ ⋆DistR+ (snd (F-ob D v)) _ _ _))) + _ _ _ cone≡ v funExt _ ⋆DistL+ (snd (F-ob D v)) _ _ _))) + _ cone≡ v funExt _ ⋆IdL (snd (F-ob D v)) _))) + λ _ _ _ cone≡ λ v funExt λ _ ⋆AssocL (snd (F-ob D v)) _ _ _ fst (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v) = - coneOut (limCone (completeSET J (funcComp ffA→SET D))) v + coneOut (limCone (completeSET J (funcComp ffA→SET D))) v pres0 (snd (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v)) = refl pres1 (snd (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v)) = refl pres+ (snd (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v)) = λ _ _ refl @@ -135,9 +135,9 @@ pres- (snd (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v)) = λ _ refl pres⋆ (snd (coneOut (limCone (LimitsCommAlgebrasCategory J D)) v)) = λ _ _ refl coneOutCommutes (limCone (LimitsCommAlgebrasCategory J D)) e = - AlgebraHom≡ (coneOutCommutes (limCone (completeSET J (funcComp ffA→SET D))) e) + AlgebraHom≡ (coneOutCommutes (limCone (completeSET J (funcComp ffA→SET D))) e) univProp (LimitsCommAlgebrasCategory J D) c cc = uniqueExists - ( ( λ x limArrow (completeSET J (funcComp ffA→SET D)) + ( ( λ x limArrow (completeSET J (funcComp ffA→SET D)) (fst c , snd c .is-set) (cone v _ coneOut cc v .fst x) e funExt _ funExt⁻ (cong fst (coneOutCommutes cc e)) x))) x) @@ -148,7 +148,7 @@ x y cone≡ v funExt _ coneOut cc v .snd .pres⋆ _ _)))) _ AlgebraHom≡ refl) (isPropIsConeMor cc (limCone (LimitsCommAlgebrasCategory J D))) - a' x Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) + a' x Σ≡Prop _ isPropIsAlgebraHom _ _ _ _) (funExt y cone≡ λ v funExt _ sym (funExt⁻ (cong fst (x v)) y))))) -- forgetful functor preserves limits @@ -162,10 +162,10 @@ where open isIso canonicalIso : (J : Category (ℓ-max ℓJ) ℓJ') - (D : Functor J CommAlgebrasCategory) + (D : Functor J CommAlgebrasCategory) CatIso CommRingsCategory - (LimitsCommRingsCategory J (ffA→R ∘F D) .lim) - (ffA→R {ℓ' = theℓ} .F-ob (LimitsCommAlgebrasCategory J D .lim)) + (LimitsCommRingsCategory J (ffA→R ∘F D) .lim) + (ffA→R {ℓ' = theℓ} .F-ob (LimitsCommAlgebrasCategory J D .lim)) coneOut (fst (fst (canonicalIso J D)) cc) = coneOut cc coneOutCommutes (fst (fst (canonicalIso J D)) cc) = coneOutCommutes cc snd (fst (canonicalIso J D)) = makeIsRingHom refl _ _ refl) λ _ _ refl @@ -175,7 +175,7 @@ sec (snd (canonicalIso J D)) = RingHom≡ refl ret (snd (canonicalIso J D)) = RingHom≡ refl - isConeMorCanonicalIso : J D isConeMor (LimitsCommRingsCategory J (funcComp ffA→R D) .limCone) + isConeMorCanonicalIso : J D isConeMor (LimitsCommRingsCategory J (funcComp ffA→R D) .limCone) (F-cone ffA→R (LimitsCommAlgebrasCategory J D .limCone)) (canonicalIso J D .fst) isConeMorCanonicalIso J D v = RingHom≡ refl @@ -231,8 +231,8 @@ univPropCommRingWithHomHom isRHom₁ isRHom₂ isRHom₃ isRHom₄ (E , f₅) (h₂ , comm₂) (h₁ , comm₁) squareComm = ((h₃ , h₃∘f₅≡f₁) , h₂≡g₂∘h₃ , h₁≡g₁∘h₃) - , λ h₃' Σ≡Prop _ isProp× (isSetRingHom _ _ _ _) (isSetRingHom _ _ _ _)) - (Σ≡Prop _ isSetRingHom _ _ _ _) + , λ h₃' Σ≡Prop _ isProp× (isSetRingHom _ _ _ _) (isSetRingHom _ _ _ _)) + (Σ≡Prop _ isSetRingHom _ _ _ _) (cong fst (commRingPB .univProp h₂ h₁ squareComm .snd (h₃' .fst .fst , h₃' .snd .fst , h₃' .snd .snd)))) where @@ -363,7 +363,7 @@ (h₂' toCommAlgebraHom _ _ g₂ isRHom₂ ∘a k') × (h₁' toCommAlgebraHom _ _ g₁ isRHom₁ ∘a k')) (k , kComm₂ , kComm₁) y - uniqueness (k' , k'Comm₂ , k'Comm₁) = Σ≡Prop _ isProp× (isSetAlgebraHom _ _ _ _) + uniqueness (k' , k'Comm₂ , k'Comm₁) = Σ≡Prop _ isProp× (isSetAlgebraHom _ _ _ _) (isSetAlgebraHom _ _ _ _)) (AlgebraHom≡ (cong (fst fst fst) uniqHelper)) where @@ -398,23 +398,23 @@ module LimitFromCommRing {ℓJ ℓJ' : Level} (R A : CommRing ) (J : Category ℓJ ℓJ') - (crDiag : Functor J (CommRingsCategory { = })) + (crDiag : Functor J (CommRingsCategory { = })) (crCone : Cone crDiag A) (toAlgCone : Cone crDiag R) where - open Functor + open Functor open Cone open AlgebraHoms open CommAlgChar R open CommAlgebraStr ⦃...⦄ - algDiag : Functor J (CommAlgebrasCategory R {ℓ' = }) - F-ob algDiag v = toCommAlg (F-ob crDiag v , coneOut toAlgCone v) - F-hom algDiag f = toCommAlgebraHom _ _ (F-hom crDiag f) (coneOutCommutes toAlgCone f) - F-id algDiag = AlgebraHom≡ (cong fst (F-id crDiag)) - F-seq algDiag f g = AlgebraHom≡ (cong fst (F-seq crDiag f g)) + algDiag : Functor J (CommAlgebrasCategory R {ℓ' = }) + F-ob algDiag v = toCommAlg (F-ob crDiag v , coneOut toAlgCone v) + F-hom algDiag f = toCommAlgebraHom _ _ (F-hom crDiag f) (coneOutCommutes toAlgCone f) + F-id algDiag = AlgebraHom≡ (cong fst (F-id crDiag)) + F-seq algDiag f g = AlgebraHom≡ (cong fst (F-seq crDiag f g)) module _ (φ : CommRingHom R A) (isConeMorφ : isConeMor toAlgCone crCone φ) where @@ -435,7 +435,7 @@ (χ , triangle) (univProp C cc .fst .snd) _ isPropIsConeMor _ _ _) - λ _ x Σ≡Prop _ isSetRingHom _ _ _ _) + λ _ x Σ≡Prop _ isSetRingHom _ _ _ _) (cong fst (univProp C cc .snd (_ , x))) where χ = univProp C cc .fst .fst @@ -473,7 +473,7 @@ where instance _ = snd D - _ = snd (F-ob algDiag v) + _ = snd (F-ob algDiag v) uniqueχ : ∃![ χ CommRingWithHomHom (C , ψ) (A , φ) ] isConeMor cc crCone (fst χ) uniqueχ = univPropWithHom _ cc isConeMorψ @@ -538,7 +538,7 @@ private ∥P∥ : (ob C) ∥P∥ x = P x ∥₁ , isPropPropTrunc - ΣC∥P∥Cat = ΣPropCat C ∥P∥ + ΣC∥P∥Cat = ΣPropCat C ∥P∥ CommAlgCat = CommAlgebrasCategory { = ℓ''} R {ℓ' = ℓ''} 𝓕UniqueEquiv : (x : ob C) (p q : P x) isContr (CommAlgebraEquiv (𝓕 (x , p)) (𝓕 (x , q))) @@ -552,12 +552,12 @@ (p : P x ∥₁) (q : P y ∥₁) isContr (CommAlgebraHom (theMap y q) (theMap x p)) theAction _ _ f = elim2 _ _ isPropIsContr) λ _ _ uniqueHom _ _ f - open Functor - universalPShf : Functor (ΣC∥P∥Cat ^op) CommAlgCat - F-ob universalPShf = uncurry theMap - F-hom universalPShf {x = x} {y = y} f = theAction _ _ f (y .snd) (x. snd) .fst - F-id universalPShf {x = x} = theAction (x .fst) (x .fst) (id C) (x .snd) (x .snd) .snd _ - F-seq universalPShf {x = x} {z = z} f g = theAction _ _ (g ⋆⟨ C f) (z .snd) (x .snd) .snd _ + open Functor + universalPShf : Functor (ΣC∥P∥Cat ^op) CommAlgCat + F-ob universalPShf = uncurry theMap + F-hom universalPShf {x = x} {y = y} f = theAction _ _ f (y .snd) (x. snd) .fst + F-id universalPShf {x = x} = theAction (x .fst) (x .fst) (id C) (x .snd) (x .snd) .snd _ + F-seq universalPShf {x = x} {z = z} f g = theAction _ _ (g ⋆⟨ C f) (z .snd) (x .snd) .snd _ -- a big transport to help verifying the pullback sheaf property @@ -573,26 +573,26 @@ -} (AlgCospan : Cospan CommAlgCat) (AlgPB : Pullback _ AlgCospan) - (p₁ : AlgPB .pbOb F-ob universalPShf x) (p₂ : AlgCospan .l F-ob universalPShf u) - (p₃ : AlgCospan .r F-ob universalPShf y) (p₄ : AlgCospan .m F-ob universalPShf v) + (p₁ : AlgPB .pbOb F-ob universalPShf x) (p₂ : AlgCospan .l F-ob universalPShf u) + (p₃ : AlgCospan .r F-ob universalPShf y) (p₄ : AlgCospan .m F-ob universalPShf v) where private -- just: 𝓕 k ⋆ 𝓕 f ≡ 𝓕 h ⋆ 𝓕 g - inducedSquare : seq' CommAlgCat {x = F-ob universalPShf x} - {y = F-ob universalPShf u} - {z = F-ob universalPShf v} - (F-hom universalPShf h) (F-hom universalPShf g) - seq' CommAlgCat {x = F-ob universalPShf x} - {y = F-ob universalPShf y} - {z = F-ob universalPShf v} - (F-hom universalPShf k) (F-hom universalPShf f) - inducedSquare = F-square universalPShf Csquare - - f' = F-hom universalPShf {x = y} {y = v} f - g' = F-hom universalPShf {x = u} {y = v} g - h' = F-hom universalPShf {x = x} {y = u} h - k' = F-hom universalPShf {x = x} {y = y} k + inducedSquare : seq' CommAlgCat {x = F-ob universalPShf x} + {y = F-ob universalPShf u} + {z = F-ob universalPShf v} + (F-hom universalPShf h) (F-hom universalPShf g) + seq' CommAlgCat {x = F-ob universalPShf x} + {y = F-ob universalPShf y} + {z = F-ob universalPShf v} + (F-hom universalPShf k) (F-hom universalPShf f) + inducedSquare = F-square universalPShf Csquare + + f' = F-hom universalPShf {x = y} {y = v} f + g' = F-hom universalPShf {x = u} {y = v} g + h' = F-hom universalPShf {x = x} {y = u} h + k' = F-hom universalPShf {x = x} {y = y} k gPathP : PathP i CommAlgCat [ p₂ i , p₄ i ]) (AlgCospan .s₁) g' gPathP = toPathP (sym (theAction _ _ g (v .snd) (u .snd) .snd _)) @@ -607,9 +607,9 @@ hPathP = toPathP (sym (theAction _ _ h (u .snd) (x .snd) .snd _)) fgCospan : Cospan CommAlgCat - l fgCospan = F-ob universalPShf u - m fgCospan = F-ob universalPShf v - r fgCospan = F-ob universalPShf y + l fgCospan = F-ob universalPShf u + m fgCospan = F-ob universalPShf v + r fgCospan = F-ob universalPShf y s₁ fgCospan = g' s₂ fgCospan = f' @@ -625,7 +625,7 @@ squarePathP = toPathP (CommAlgCat .isSetHom _ _ _ _) abstract - lemma : isPullback CommAlgCat fgCospan {c = F-ob universalPShf x} h' k' inducedSquare + lemma : isPullback CommAlgCat fgCospan {c = F-ob universalPShf x} h' k' inducedSquare lemma = transport i isPullback CommAlgCat (cospanPath i) {c = p₁ i} (hPathP i) (kPathP i) (squarePathP i)) (AlgPB .univProp) @@ -633,29 +633,29 @@ module toSheaf {J : Category ℓ'' ℓ''} - {D : Functor J (ΣC∥P∥Cat ^op)} {c : ob ΣC∥P∥Cat} (cc : Cone D c) -- will be B⋁Cone - {algDiag : Functor J CommAlgCat} - (algCone : Cone algDiag (F-ob universalPShf c)) - (p : (v : ob J) F-ob algDiag v F-ob (universalPShf ∘F D) v) where + {D : Functor J (ΣC∥P∥Cat ^op)} {c : ob ΣC∥P∥Cat} (cc : Cone D c) -- will be B⋁Cone + {algDiag : Functor J CommAlgCat} + (algCone : Cone algDiag (F-ob universalPShf c)) + (p : (v : ob J) F-ob algDiag v F-ob (universalPShf ∘F D) v) where open Cone private diagHomPathPs : {u v : ob J} (f : J [ u , v ]) PathP i CommAlgebraHom (p u i) (p v i)) - (F-hom algDiag f) - (F-hom universalPShf (F-hom D f)) - diagHomPathPs f = toPathP (sym (theAction _ _ (F-hom D f) _ _ .snd _)) + (F-hom algDiag f) + (F-hom universalPShf (F-hom D f)) + diagHomPathPs f = toPathP (sym (theAction _ _ (F-hom D f) _ _ .snd _)) - diagPathAlg : algDiag universalPShf ∘F D - diagPathAlg = Functor≡ p diagHomPathPs + diagPathAlg : algDiag universalPShf ∘F D + diagPathAlg = Functor≡ p diagHomPathPs coneHomPathPs : (v : ob J) - PathP i CommAlgebraHom (universalPShf .F-ob c) (diagPathAlg i .F-ob v)) + PathP i CommAlgebraHom (universalPShf .F-ob c) (diagPathAlg i .F-ob v)) (algCone .coneOut v) (F-cone universalPShf cc .coneOut v) coneHomPathPs v = toPathP (sym (theAction _ _ (cc .coneOut v) _ _ .snd _)) - conePathPAlg : PathP i Cone (diagPathAlg i) (F-ob universalPShf c)) + conePathPAlg : PathP i Cone (diagPathAlg i) (F-ob universalPShf c)) algCone (F-cone universalPShf cc) conePathPAlg = conePathPDiag coneHomPathPs @@ -665,7 +665,7 @@ -- now for composition with forgetful functor CommRingsCat = CommRingsCategory { = ℓ''} Forgetful = ForgetfulCommAlgebra→CommRing { = ℓ''} R {ℓ' = ℓ''} - 𝓖 = Forgetful ∘F universalPShf + 𝓖 = Forgetful ∘F universalPShf module _ (isLimAlgCone : isLimCone _ _ algCone) where @@ -673,13 +673,13 @@ presLimForgetful : preservesLimits Forgetful presLimForgetful = ForgetfulCommAlgebra→CommRingPresLim R {ℓJ = ℓ''} {ℓJ' = ℓ''} - assocDiagPath : Forgetful ∘F (universalPShf ∘F D) 𝓖 ∘F D + assocDiagPath : Forgetful ∘F (universalPShf ∘F D) 𝓖 ∘F D assocDiagPath = F-assoc - conePathPCR : PathP i Cone (assocDiagPath i) (F-ob (Forgetful ∘F universalPShf) c)) + conePathPCR : PathP i Cone (assocDiagPath i) (F-ob (Forgetful ∘F universalPShf) c)) (F-cone Forgetful (F-cone universalPShf cc)) (F-cone 𝓖 cc) conePathPCR = conePathPDiag -- why does everything have to be explicit? - v _ (Forgetful ∘F universalPShf) .F-hom {x = c} {y = D .F-ob v} (cc .coneOut v)) + v _ (Forgetful ∘F universalPShf) .F-hom {x = c} {y = D .F-ob v} (cc .coneOut v)) toLimCone : isLimCone _ _ (F-cone 𝓖 cc) diff --git a/Cubical.Categories.Instances.CommRings.html b/Cubical.Categories.Instances.CommRings.html index a031203b01..a24af10fe4 100644 --- a/Cubical.Categories.Instances.CommRings.html +++ b/Cubical.Categories.Instances.CommRings.html @@ -31,7 +31,7 @@ open Category hiding (_∘_) open isUnivalent open isIso -open Functor +open Functor open CommRingStr open RingHoms open IsRingHom @@ -50,11 +50,11 @@ ⋆Assoc CommRingsCategory {R} {S} {T} {U} = compAssocCommRingHom {R = R} {S} {T} {U} isSetHom CommRingsCategory = isSetRingHom _ _ -ForgetfulCommRing→Set : Functor CommRingsCategory (SET ) -F-ob ForgetfulCommRing→Set R = R .fst , CommRingStr.is-set (snd R) -F-hom ForgetfulCommRing→Set f x = f .fst x -F-id ForgetfulCommRing→Set = funExt _ refl) -F-seq ForgetfulCommRing→Set f g = funExt _ refl) +ForgetfulCommRing→Set : Functor CommRingsCategory (SET ) +F-ob ForgetfulCommRing→Set R = R .fst , CommRingStr.is-set (snd R) +F-hom ForgetfulCommRing→Set f x = f .fst x +F-id ForgetfulCommRing→Set = funExt _ refl) +F-seq ForgetfulCommRing→Set f g = funExt _ refl) open Iso @@ -80,7 +80,7 @@ snd (inv CommRingIsoIsoCatIso e) = e .fst .snd rightInv CommRingIsoIsoCatIso x = CatIso≡ _ _ (RingHom≡ refl) leftInv (CommRingIsoIsoCatIso {R = R} {S}) x = - Σ≡Prop x isPropIsRingHom (CommRingStr→RingStr (R .snd)) + Σ≡Prop x isPropIsRingHom (CommRingStr→RingStr (R .snd)) (x .fun) (CommRingStr→RingStr (S .snd))) (Iso≡Set (is-set (snd R)) (is-set (snd S)) _ _ _ refl) _ refl)) @@ -133,48 +133,48 @@ LimitsCommRingsCategory : Limits {ℓJ} {ℓJ'} (CommRingsCategory { = ℓ-max ℓJ ℓJ'}) fst (lim (LimitsCommRingsCategory J D)) = - lim {J = J} (completeSET J (funcComp ForgetfulCommRing→Set D)) .fst + lim {J = J} (completeSET J (funcComp ForgetfulCommRing→Set D)) .fst 0r (snd (lim (LimitsCommRingsCategory J D))) = - cone v _ 0r (snd (F-ob D v))) - e funExt _ F-hom D e .snd .pres0)) + cone v _ 0r (snd (F-ob D v))) + e funExt _ F-hom D e .snd .pres0)) 1r (snd (lim (LimitsCommRingsCategory J D))) = - cone v _ 1r (snd (F-ob D v))) - e funExt _ F-hom D e .snd .pres1)) + cone v _ 1r (snd (F-ob D v))) + e funExt _ F-hom D e .snd .pres1)) _+_ (snd (lim (LimitsCommRingsCategory J D))) x y = - cone v _ _+_ (snd (F-ob D v)) _ _) - ( λ e funExt _ F-hom D e .snd .pres+ _ _ - λ i _+_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) + cone v _ _+_ (snd (F-ob D v)) _ _) + ( λ e funExt _ F-hom D e .snd .pres+ _ _ + λ i _+_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) _·_ (snd (lim (LimitsCommRingsCategory J D))) x y = - cone v _ _·_ (snd (F-ob D v)) _ _) - ( λ e funExt _ F-hom D e .snd .pres· _ _ - λ i _·_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) + cone v _ _·_ (snd (F-ob D v)) _ _) + ( λ e funExt _ F-hom D e .snd .pres· _ _ + λ i _·_ (snd (F-ob D _)) (coneOutCommutes x e i tt*) (coneOutCommutes y e i tt*))) (- snd (lim (LimitsCommRingsCategory J D))) x = - cone v _ -_ (snd (F-ob D v)) _) - ( λ e funExt z F-hom D e .snd .pres- _ - λ i -_ (snd (F-ob D _)) (coneOutCommutes x e i tt*))) + cone v _ -_ (snd (F-ob D v)) _) + ( λ e funExt z F-hom D e .snd .pres- _ + λ i -_ (snd (F-ob D _)) (coneOutCommutes x e i tt*))) isCommRing (snd (lim (LimitsCommRingsCategory J D))) = makeIsCommRing - (isSetCone (funcComp ForgetfulCommRing→Set D) (Unit* , _)) - _ _ _ cone≡ v funExt _ snd (F-ob D v) .+Assoc _ _ _))) - _ cone≡ v funExt _ +IdR (snd (F-ob D v)) _))) - _ cone≡ v funExt _ +InvR (snd (F-ob D v)) _))) - _ _ cone≡ v funExt _ snd (F-ob D v) .+Comm _ _))) - _ _ _ cone≡ v funExt _ snd (F-ob D v) .·Assoc _ _ _))) - _ cone≡ v funExt _ ·IdR (snd (F-ob D v)) _))) - _ _ _ cone≡ v funExt _ ·DistR+ (snd (F-ob D v)) _ _ _))) - _ _ cone≡ v funExt _ snd (F-ob D v) .·Comm _ _))) + (isSetCone (funcComp ForgetfulCommRing→Set D) (Unit* , _)) + _ _ _ cone≡ v funExt _ snd (F-ob D v) .+Assoc _ _ _))) + _ cone≡ v funExt _ +IdR (snd (F-ob D v)) _))) + _ cone≡ v funExt _ +InvR (snd (F-ob D v)) _))) + _ _ cone≡ v funExt _ snd (F-ob D v) .+Comm _ _))) + _ _ _ cone≡ v funExt _ snd (F-ob D v) .·Assoc _ _ _))) + _ cone≡ v funExt _ ·IdR (snd (F-ob D v)) _))) + _ _ _ cone≡ v funExt _ ·DistR+ (snd (F-ob D v)) _ _ _))) + _ _ cone≡ v funExt _ snd (F-ob D v) .·Comm _ _))) fst (coneOut (limCone (LimitsCommRingsCategory J D)) v) = - coneOut (limCone (completeSET J (funcComp ForgetfulCommRing→Set D))) v + coneOut (limCone (completeSET J (funcComp ForgetfulCommRing→Set D))) v pres0 (snd (coneOut (limCone (LimitsCommRingsCategory J D)) v)) = refl pres1 (snd (coneOut (limCone (LimitsCommRingsCategory J D)) v)) = refl pres+ (snd (coneOut (limCone (LimitsCommRingsCategory J D)) v)) = λ _ _ refl pres· (snd (coneOut (limCone (LimitsCommRingsCategory J D)) v)) = λ _ _ refl pres- (snd (coneOut (limCone (LimitsCommRingsCategory J D)) v)) = λ _ refl coneOutCommutes (limCone (LimitsCommRingsCategory J D)) e = - RingHom≡ (coneOutCommutes (limCone (completeSET J (funcComp ForgetfulCommRing→Set D))) e) + RingHom≡ (coneOutCommutes (limCone (completeSET J (funcComp ForgetfulCommRing→Set D))) e) univProp (LimitsCommRingsCategory J D) c cc = uniqueExists - ( x limArrow (completeSET J (funcComp ForgetfulCommRing→Set D)) + ( x limArrow (completeSET J (funcComp ForgetfulCommRing→Set D)) (fst c , snd c .is-set) (cone v _ coneOut cc v .fst x) e funExt _ funExt⁻ (cong fst (coneOutCommutes cc e)) x))) x) @@ -184,6 +184,6 @@ x y cone≡ v funExt _ coneOut cc v .snd .pres· _ _)))) _ RingHom≡ refl) (isPropIsConeMor cc (limCone (LimitsCommRingsCategory J D))) - a' x Σ≡Prop _ isPropIsRingHom _ _ _) + a' x Σ≡Prop _ isPropIsRingHom _ _ _) (funExt y cone≡ λ v funExt _ sym (funExt⁻ (cong fst (x v)) y))))) \ No newline at end of file diff --git a/Cubical.Categories.Instances.Discrete.html b/Cubical.Categories.Instances.Discrete.html index d595781e20..bcdc09c37f 100644 --- a/Cubical.Categories.Instances.Discrete.html +++ b/Cubical.Categories.Instances.Discrete.html @@ -32,16 +32,16 @@ module _ {A : hGroupoid } {C : Category ℓC ℓC'} where - open Functor + open Functor -- Functions f: A → ob C give functors F: DiscreteCategory A → C - DiscFunc : (fst A ob C) Functor (DiscreteCategory A) C - DiscFunc f .F-ob = f - DiscFunc f .F-hom {x} p = subst z C [ f x , f z ]) p (id C) - DiscFunc f .F-id {x} = substRefl {B = λ z C [ f x , f z ]} (id C) + DiscFunc : (fst A ob C) Functor (DiscreteCategory A) C + DiscFunc f .F-ob = f + DiscFunc f .F-hom {x} p = subst z C [ f x , f z ]) p (id C) + DiscFunc f .F-id {x} = substRefl {B = λ z C [ f x , f z ]} (id C) -- Preserves composition - DiscFunc f .F-seq {x} {y} p q = + DiscFunc f .F-seq {x} {y} p q = let open Category C using () renaming (_⋆_ to _●_) in let Hom[fx,f—] = (w : A .fst) C [ f x , f w ]) in diff --git a/Cubical.Categories.Instances.EilenbergMoore.html b/Cubical.Categories.Instances.EilenbergMoore.html index 552ad42333..424cda0cca 100644 --- a/Cubical.Categories.Instances.EilenbergMoore.html +++ b/Cubical.Categories.Instances.EilenbergMoore.html @@ -9,7 +9,7 @@ open import Cubical.Foundations.Univalence open import Cubical.Categories.Category -open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) +open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) open import Cubical.Categories.NaturalTransformation.Base open import Cubical.Categories.Monad.Base open import Cubical.Categories.Instances.FunctorAlgebras @@ -23,13 +23,13 @@ module _ {C : Category ℓC ℓC'} (monadM : Monad C) where private - M : Functor C C + M : Functor C C M = fst monadM --open Category private module C = Category C - open Functor + open Functor open NatTrans open IsMonad (snd monadM) @@ -39,7 +39,7 @@ open Algebra algA field str-η : str C.∘ N-ob η carrier C.id - str-μ : str C.∘ N-ob μ carrier str C.∘ F-hom M str + str-μ : str C.∘ N-ob μ carrier str C.∘ F-hom M str open IsEMAlgebra @@ -55,66 +55,66 @@ -- cannot simplify level: --lossy-unification won't allow it. EMCategory = FullSubcategory (AlgebrasCategory M) IsEMAlgebra - ForgetEM : Functor EMCategory (AlgebrasCategory M) + ForgetEM : Functor EMCategory (AlgebrasCategory M) ForgetEM = FullInclusion (AlgebrasCategory M) IsEMAlgebra - ForgetEMAlgebra : Functor EMCategory C - ForgetEMAlgebra = funcComp (ForgetAlgebra M) ForgetEM + ForgetEMAlgebra : Functor EMCategory C + ForgetEMAlgebra = funcComp (ForgetAlgebra M) ForgetEM open Algebra freeEMAlgebra : C.ob EMAlgebra - carrier (fst (freeEMAlgebra x)) = F-ob M x + carrier (fst (freeEMAlgebra x)) = F-ob M x str (fst (freeEMAlgebra x)) = N-ob μ x str-η (snd (freeEMAlgebra x)) = lemma - where lemma : N-ob η (F-ob M x) C.⋆ N-ob μ x C.id + where lemma : N-ob η (F-ob M x) C.⋆ N-ob μ x C.id lemma = funExt⁻ (congP i N-ob) idl-μ) x str-μ (snd (freeEMAlgebra x)) = lemma - where lemma : N-ob μ (F-ob M x) C.⋆ N-ob μ x F-hom M (N-ob μ x) C.⋆ N-ob μ x + where lemma : N-ob μ (F-ob M x) C.⋆ N-ob μ x F-hom M (N-ob μ x) C.⋆ N-ob μ x lemma = funExt⁻ (congP i N-ob) (symP-fromGoal assoc-μ)) x open AlgebraHom - FreeEMAlgebra : Functor C EMCategory - F-ob FreeEMAlgebra x = freeEMAlgebra x - carrierHom (F-hom FreeEMAlgebra {x} {y} φ) = F-hom M φ - strHom (F-hom FreeEMAlgebra {x} {y} φ) = sym (N-hom μ φ) - F-id FreeEMAlgebra = AlgebraHom≡ M (F-id M) - F-seq FreeEMAlgebra {x} {y} {z} φ ψ = AlgebraHom≡ M (F-seq M φ ψ) + FreeEMAlgebra : Functor C EMCategory + F-ob FreeEMAlgebra x = freeEMAlgebra x + carrierHom (F-hom FreeEMAlgebra {x} {y} φ) = F-hom M φ + strHom (F-hom FreeEMAlgebra {x} {y} φ) = sym (N-hom μ φ) + F-id FreeEMAlgebra = AlgebraHom≡ M (F-id M) + F-seq FreeEMAlgebra {x} {y} {z} φ ψ = AlgebraHom≡ M (F-seq M φ ψ) - ForgetFreeEMAlgebra : funcComp ForgetEMAlgebra FreeEMAlgebra M - ForgetFreeEMAlgebra = Functor≡ x refl) f refl) + ForgetFreeEMAlgebra : funcComp ForgetEMAlgebra FreeEMAlgebra M + ForgetFreeEMAlgebra = Functor≡ x refl) f refl) - emCounit : NatTrans (funcComp FreeEMAlgebra ForgetEMAlgebra) (funcId EMCategory) + emCounit : NatTrans (funcComp FreeEMAlgebra ForgetEMAlgebra) (funcId EMCategory) carrierHom (N-ob emCounit (algebra A α , isEMA)) = α strHom (N-ob emCounit (algebra A α , isEMA)) = str-μ isEMA N-hom emCounit {algebra A α , isEMA} {algebra B β , isEMB} (algebraHom f isalgF) = AlgebraHom≡ M (sym (isalgF)) - open NaturalBijection - open _⊣_ + open NaturalBijection + open _⊣_ open _≅_ emBijection : a emB - (EMCategory [ FreeEMAlgebra a , emB ]) (C [ a , ForgetEMAlgebra emB ]) + (EMCategory [ FreeEMAlgebra a , emB ]) (C [ a , ForgetEMAlgebra emB ]) fun (emBijection a (algebra b β , isEMB)) (algebraHom f isalgF) = f C.∘ N-ob η a - carrierHom (inv (emBijection a (algebra b β , isEMB)) f) = β C.∘ F-hom M f + carrierHom (inv (emBijection a (algebra b β , isEMB)) f) = β C.∘ F-hom M f strHom (inv (emBijection a (algebra b β , isEMB)) f) = - (N-ob μ a C.⋆ (F-hom M f C.⋆ β)) + (N-ob μ a C.⋆ (F-hom M f C.⋆ β)) ≡⟨ sym (C.⋆Assoc _ _ _) - ((N-ob μ a C.⋆ F-hom M f) C.⋆ β) + ((N-ob μ a C.⋆ F-hom M f) C.⋆ β) ≡⟨ cong (C._⋆ β) (sym (N-hom μ f)) - ((F-hom M (F-hom M f) C.⋆ N-ob μ b) C.⋆ β) + ((F-hom M (F-hom M f) C.⋆ N-ob μ b) C.⋆ β) ≡⟨ C.⋆Assoc _ _ _ - (F-hom M (F-hom M f) C.⋆ (N-ob μ b C.⋆ β)) - ≡⟨ cong (F-hom M (F-hom M f) C.⋆_) (str-μ isEMB) - (F-hom M (F-hom M f) C.⋆ (F-hom M β C.⋆ β)) + (F-hom M (F-hom M f) C.⋆ (N-ob μ b C.⋆ β)) + ≡⟨ cong (F-hom M (F-hom M f) C.⋆_) (str-μ isEMB) + (F-hom M (F-hom M f) C.⋆ (F-hom M β C.⋆ β)) ≡⟨ sym (C.⋆Assoc _ _ _) - ((F-hom M (F-hom M f) C.⋆ F-hom M β) C.⋆ β) - ≡⟨ cong (C._⋆ β) (sym (F-seq M _ _)) - (F-hom M (F-hom M f C.⋆ β) C.⋆ β) + ((F-hom M (F-hom M f) C.⋆ F-hom M β) C.⋆ β) + ≡⟨ cong (C._⋆ β) (sym (F-seq M _ _)) + (F-hom M (F-hom M f C.⋆ β) C.⋆ β) rightInv (emBijection a (algebra b β , isEMB)) f = - (N-ob η a C.⋆ (F-hom M f C.⋆ β)) + (N-ob η a C.⋆ (F-hom M f C.⋆ β)) ≡⟨ sym (C.⋆Assoc _ _ _) - ((N-ob η a C.⋆ F-hom M f) C.⋆ β) + ((N-ob η a C.⋆ F-hom M f) C.⋆ β) ≡⟨ cong (C._⋆ β) (sym (N-hom η f)) ((f C.⋆ N-ob η b) C.⋆ β) ≡⟨ C.⋆Assoc _ _ _ @@ -124,43 +124,43 @@ ≡⟨ C.⋆IdR _ f leftInv (emBijection a (algebra b β , isEMB)) (algebraHom f isalgF) = AlgebraHom≡ M ( - (F-hom M (N-ob η a C.⋆ f) C.⋆ β) - ≡⟨ cong (C._⋆ β) (F-seq M _ _) - ((F-hom M (N-ob η a) C.⋆ F-hom M f) C.⋆ β) + (F-hom M (N-ob η a C.⋆ f) C.⋆ β) + ≡⟨ cong (C._⋆ β) (F-seq M _ _) + ((F-hom M (N-ob η a) C.⋆ F-hom M f) C.⋆ β) ≡⟨ C.⋆Assoc _ _ _ - (F-hom M (N-ob η a) C.⋆ (F-hom M f C.⋆ β)) - ≡⟨ cong (F-hom M (N-ob η a) C.⋆_) (sym isalgF) - (F-hom M (N-ob η a) C.⋆ (N-ob μ a C.⋆ f)) + (F-hom M (N-ob η a) C.⋆ (F-hom M f C.⋆ β)) + ≡⟨ cong (F-hom M (N-ob η a) C.⋆_) (sym isalgF) + (F-hom M (N-ob η a) C.⋆ (N-ob μ a C.⋆ f)) ≡⟨ sym (C.⋆Assoc _ _ _) - ((F-hom M (N-ob η a) C.⋆ N-ob μ a) C.⋆ f) + ((F-hom M (N-ob η a) C.⋆ N-ob μ a) C.⋆ f) ≡⟨ cong (C._⋆ f) (funExt⁻ (congP i N-ob) idr-μ) a) (C.id C.⋆ f) ≡⟨ C.⋆IdL f f ) - emAdjunction : FreeEMAlgebra ForgetEMAlgebra - adjIso emAdjunction {a} {algebra b β , isEMB} = emBijection a (algebra b β , isEMB) - adjNatInD emAdjunction {a} {algebra b β , isEMB} {algebra c γ , isEMC} + emAdjunction : FreeEMAlgebra ForgetEMAlgebra + adjIso emAdjunction {a} {algebra b β , isEMB} = emBijection a (algebra b β , isEMB) + adjNatInD emAdjunction {a} {algebra b β , isEMB} {algebra c γ , isEMC} (algebraHom f isalgF) (algebraHom g isalgG) = sym (C.⋆Assoc _ _ _) - adjNatInC emAdjunction {a} {b} {algebra c γ , isEMC} f g = AlgebraHom≡ M ( - (F-hom M (g C.⋆ f) C.⋆ γ) - ≡⟨ cong (C._⋆ γ) (F-seq M _ _) - ((F-hom M g C.⋆ F-hom M f) C.⋆ γ) + adjNatInC emAdjunction {a} {b} {algebra c γ , isEMC} f g = AlgebraHom≡ M ( + (F-hom M (g C.⋆ f) C.⋆ γ) + ≡⟨ cong (C._⋆ γ) (F-seq M _ _) + ((F-hom M g C.⋆ F-hom M f) C.⋆ γ) ≡⟨ C.⋆Assoc _ _ _ - (F-hom M g C.⋆ (F-hom M f C.⋆ γ)) + (F-hom M g C.⋆ (F-hom M f C.⋆ γ)) ) module _ {C : Category ℓC ℓC'} {monadM monadN : Monad C} (monadν : MonadHom monadM monadN) where open Category C - open Functor + open Functor open IsEMAlgebra open NatTrans private - M N : Functor C C + M N : Functor C C M = fst monadM N = fst monadN module M = IsMonad (snd monadM) @@ -169,7 +169,7 @@ ν = fst monadν module ν = IsMonadHom (snd monadν) - mapIsEMAlgebra : (algA : Algebra N) IsEMAlgebra monadN algA IsEMAlgebra monadM (F-ob (AlgebrasFunctor ν) algA) + mapIsEMAlgebra : (algA : Algebra N) IsEMAlgebra monadN algA IsEMAlgebra monadM (F-ob (AlgebrasFunctor ν) algA) str-η (mapIsEMAlgebra (algebra a αN) isEMA) = N-ob M.η a (N-ob ν a αN) ≡⟨ sym (⋆Assoc _ _ _) @@ -183,25 +183,25 @@ ≡⟨ sym (⋆Assoc _ _ _) (N-ob M.μ a N-ob ν a) αN ≡⟨ cong (_⋆ αN) (cong θ N-ob θ a) ν.N-μ) - ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) N-ob N.μ a) αN + ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) N-ob N.μ a) αN ≡⟨ ⋆Assoc _ _ _ - (F-hom M (N-ob ν a) N-ob ν (F-ob N a)) (N-ob N.μ a αN) - ≡⟨ cong ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) ⋆_) (isEMA .str-μ) - (F-hom M (N-ob ν a) N-ob ν (F-ob N a)) (F-hom N αN αN) + (F-hom M (N-ob ν a) N-ob ν (F-ob N a)) (N-ob N.μ a αN) + ≡⟨ cong ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) ⋆_) (isEMA .str-μ) + (F-hom M (N-ob ν a) N-ob ν (F-ob N a)) (F-hom N αN αN) ≡⟨ sym (⋆Assoc _ _ _) - ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) F-hom N αN) αN + ((F-hom M (N-ob ν a) N-ob ν (F-ob N a)) F-hom N αN) αN ≡⟨ cong (_⋆ αN) (⋆Assoc _ _ _) - (F-hom M (N-ob ν a) (N-ob ν (F-ob N a) F-hom N αN)) αN - ≡⟨ cong (_⋆ αN) (cong (F-hom M (N-ob ν a) ⋆_) (sym (N-hom ν αN))) - (F-hom M (N-ob ν a) (F-hom M αN N-ob ν a)) αN + (F-hom M (N-ob ν a) (N-ob ν (F-ob N a) F-hom N αN)) αN + ≡⟨ cong (_⋆ αN) (cong (F-hom M (N-ob ν a) ⋆_) (sym (N-hom ν αN))) + (F-hom M (N-ob ν a) (F-hom M αN N-ob ν a)) αN ≡⟨ cong (_⋆ αN) (sym (⋆Assoc _ _ _)) - ((F-hom M (N-ob ν a) F-hom M αN) N-ob ν a) αN - ≡⟨ cong (_⋆ αN) (cong (_⋆ N-ob ν a) (sym (F-seq M _ _))) - (F-hom M (N-ob ν a αN) N-ob ν a) αN + ((F-hom M (N-ob ν a) F-hom M αN) N-ob ν a) αN + ≡⟨ cong (_⋆ αN) (cong (_⋆ N-ob ν a) (sym (F-seq M _ _))) + (F-hom M (N-ob ν a αN) N-ob ν a) αN ≡⟨ ⋆Assoc _ _ _ - F-hom M (N-ob ν a αN) (N-ob ν a αN) + F-hom M (N-ob ν a αN) (N-ob ν a αN) - EMFunctor : Functor (EMCategory monadN) (EMCategory monadM) + EMFunctor : Functor (EMCategory monadN) (EMCategory monadM) EMFunctor = MapFullSubcategory (AlgebrasCategory N) (IsEMAlgebra monadN) (AlgebrasCategory M) (IsEMAlgebra monadM) diff --git a/Cubical.Categories.Instances.FunctorAlgebras.html b/Cubical.Categories.Instances.FunctorAlgebras.html index cbe611213f..41be1f8637 100644 --- a/Cubical.Categories.Instances.FunctorAlgebras.html +++ b/Cubical.Categories.Instances.FunctorAlgebras.html @@ -17,13 +17,13 @@ private variable ℓC ℓC' : Level -module _ {C : Category ℓC ℓC'} (F : Functor C C) where +module _ {C : Category ℓC ℓC'} (F : Functor C C) where open Category - open Functor + open Functor IsAlgebra : ob C Type ℓC' - IsAlgebra x = C [ F-ob F x , x ] + IsAlgebra x = C [ F-ob F x , x ] record Algebra : Type (ℓ-max ℓC ℓC') where constructor algebra @@ -33,7 +33,7 @@ open Algebra IsAlgebraHom : (algA algB : Algebra) C [ carrier algA , carrier algB ] Type ℓC' - IsAlgebraHom algA algB f = (f ∘⟨ C str algA) (str algB ∘⟨ C F-hom F f) + IsAlgebraHom algA algB f = (f ∘⟨ C str algA) (str algB ∘⟨ C F-hom F f) record AlgebraHom (algA algB : Algebra) : Type ℓC' where constructor algebraHom @@ -58,7 +58,7 @@ (carrierHom algF carrierHom algG) algF algG carrierHom (AlgebraHom≡ {algA} {algB} {algF} {algG} p i) = p i strHom (AlgebraHom≡ {algA} {algB} {algF} {algG} p i) = idfun - (PathP j (p j ∘⟨ C str algA) (str algB ∘⟨ C F-hom F (p j))) + (PathP j (p j ∘⟨ C str algA) (str algB ∘⟨ C F-hom F (p j))) (strHom algF) (strHom algG) ) @@ -70,7 +70,7 @@ idAlgebraHom : {algA : Algebra} AlgebraHom algA algA carrierHom (idAlgebraHom {algA}) = id C strHom (idAlgebraHom {algA}) = - ⋆IdR C (str algA) ∙∙ sym (⋆IdL C (str algA)) ∙∙ cong φ φ ⋆⟨ C str algA) (sym (F-id F)) + ⋆IdR C (str algA) ∙∙ sym (⋆IdL C (str algA)) ∙∙ cong φ φ ⋆⟨ C str algA) (sym (F-id F)) seqAlgebraHom : {algA algB algC : Algebra} (algF : AlgebraHom algA algB) (algG : AlgebraHom algB algC) @@ -81,15 +81,15 @@ ≡⟨ sym (⋆Assoc C (str algA) (carrierHom algF) (carrierHom algG)) (str algA ⋆⟨ C carrierHom algF) ⋆⟨ C carrierHom algG ≡⟨ cong φ φ ⋆⟨ C carrierHom algG) (strHom algF) - (F-hom F (carrierHom algF) ⋆⟨ C str algB) ⋆⟨ C carrierHom algG - ≡⟨ ⋆Assoc C (F-hom F (carrierHom algF)) (str algB) (carrierHom algG) - F-hom F (carrierHom algF) ⋆⟨ C (str algB ⋆⟨ C carrierHom algG) - ≡⟨ cong φ F-hom F (carrierHom algF) ⋆⟨ C φ) (strHom algG) - F-hom F (carrierHom algF) ⋆⟨ C (F-hom F (carrierHom algG) ⋆⟨ C str algC) - ≡⟨ sym (⋆Assoc C (F-hom F (carrierHom algF)) (F-hom F (carrierHom algG)) (str algC)) - (F-hom F (carrierHom algF) ⋆⟨ C F-hom F (carrierHom algG)) ⋆⟨ C str algC - ≡⟨ cong φ φ ⋆⟨ C str algC) (sym (F-seq F (carrierHom algF) (carrierHom algG))) - F-hom F (carrierHom algF ⋆⟨ C carrierHom algG) ⋆⟨ C str algC + (F-hom F (carrierHom algF) ⋆⟨ C str algB) ⋆⟨ C carrierHom algG + ≡⟨ ⋆Assoc C (F-hom F (carrierHom algF)) (str algB) (carrierHom algG) + F-hom F (carrierHom algF) ⋆⟨ C (str algB ⋆⟨ C carrierHom algG) + ≡⟨ cong φ F-hom F (carrierHom algF) ⋆⟨ C φ) (strHom algG) + F-hom F (carrierHom algF) ⋆⟨ C (F-hom F (carrierHom algG) ⋆⟨ C str algC) + ≡⟨ sym (⋆Assoc C (F-hom F (carrierHom algF)) (F-hom F (carrierHom algG)) (str algC)) + (F-hom F (carrierHom algF) ⋆⟨ C F-hom F (carrierHom algG)) ⋆⟨ C str algC + ≡⟨ cong φ φ ⋆⟨ C str algC) (sym (F-seq F (carrierHom algF) (carrierHom algG))) + F-hom F (carrierHom algF ⋆⟨ C carrierHom algG) ⋆⟨ C str algC AlgebrasCategory : Category (ℓ-max ℓC ℓC') ℓC' ob AlgebrasCategory = Algebra @@ -103,35 +103,35 @@ isSetHom AlgebrasCategory = subst isSet (sym (pathRepAlgebraHom _ _)) (isSetΣ (isSetHom C) f isProp→isSet (isSetHom C _ _))) - ForgetAlgebra : Functor AlgebrasCategory C - F-ob ForgetAlgebra = carrier - F-hom ForgetAlgebra = carrierHom - F-id ForgetAlgebra = refl - F-seq ForgetAlgebra algF algG = refl + ForgetAlgebra : Functor AlgebrasCategory C + F-ob ForgetAlgebra = carrier + F-hom ForgetAlgebra = carrierHom + F-id ForgetAlgebra = refl + F-seq ForgetAlgebra algF algG = refl -module _ {C : Category ℓC ℓC'} {F G : Functor C C} (τ : NatTrans F G) where +module _ {C : Category ℓC ℓC'} {F G : Functor C C} (τ : NatTrans F G) where private module C = Category C - open Functor + open Functor open NatTrans open AlgebraHom - AlgebrasFunctor : Functor (AlgebrasCategory G) (AlgebrasCategory F) - F-ob AlgebrasFunctor (algebra a α) = algebra a (α C.∘ N-ob τ a) - carrierHom (F-hom AlgebrasFunctor (algebraHom f isalgF)) = f - strHom (F-hom AlgebrasFunctor {algebra a α} {algebra b β} (algebraHom f isalgF)) = + AlgebrasFunctor : Functor (AlgebrasCategory G) (AlgebrasCategory F) + F-ob AlgebrasFunctor (algebra a α) = algebra a (α C.∘ N-ob τ a) + carrierHom (F-hom AlgebrasFunctor (algebraHom f isalgF)) = f + strHom (F-hom AlgebrasFunctor {algebra a α} {algebra b β} (algebraHom f isalgF)) = (N-ob τ a C.⋆ α) C.⋆ f ≡⟨ C.⋆Assoc (N-ob τ a) α f N-ob τ a C.⋆ (α C.⋆ f) ≡⟨ cong (N-ob τ a C.⋆_) isalgF - N-ob τ a C.⋆ (F-hom G f C.⋆ β) + N-ob τ a C.⋆ (F-hom G f C.⋆ β) ≡⟨ sym (C.⋆Assoc _ _ _) - (N-ob τ a C.⋆ F-hom G f) C.⋆ β + (N-ob τ a C.⋆ F-hom G f) C.⋆ β ≡⟨ cong (C._⋆ β) (sym (N-hom τ f)) - (F-hom F f C.⋆ N-ob τ b) C.⋆ β + (F-hom F f C.⋆ N-ob τ b) C.⋆ β ≡⟨ C.⋆Assoc _ _ _ - F-hom F f C.⋆ (N-ob τ b C.⋆ β) - F-id AlgebrasFunctor = AlgebraHom≡ F refl - F-seq AlgebrasFunctor algΦ algΨ = AlgebraHom≡ F refl + F-hom F f C.⋆ (N-ob τ b C.⋆ β) + F-id AlgebrasFunctor = AlgebraHom≡ F refl + F-seq AlgebrasFunctor algΦ algΨ = AlgebraHom≡ F refl \ No newline at end of file diff --git a/Cubical.Categories.Instances.Functors.Endo.html b/Cubical.Categories.Instances.Functors.Endo.html index c2aad67819..728392aa77 100644 --- a/Cubical.Categories.Instances.Functors.Endo.html +++ b/Cubical.Categories.Instances.Functors.Endo.html @@ -5,7 +5,7 @@ open import Cubical.Categories.Category.Base open import Cubical.Categories.Monoidal.Base open import Cubical.Categories.Instances.Functors -open import Cubical.Categories.Functor.Base renaming (𝟙⟨_⟩ to idfunctor) +open import Cubical.Categories.Functor.Base renaming (𝟙⟨_⟩ to idfunctor) open import Cubical.Categories.NaturalTransformation.Base open import Cubical.Categories.NaturalTransformation.Properties @@ -13,7 +13,7 @@ open Category open NatTrans - open Functor + open Functor open StrictMonStr open TensorStr diff --git a/Cubical.Categories.Instances.Functors.html b/Cubical.Categories.Instances.Functors.html index bc15fd8330..95fefdd2cb 100644 --- a/Cubical.Categories.Instances.Functors.html +++ b/Cubical.Categories.Instances.Functors.html @@ -34,31 +34,31 @@ module _ (C : Category ℓC ℓC') (D : Category ℓD ℓD') where open Category open NatTrans - open Functor + open Functor FUNCTOR : Category (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) (ℓ-max (ℓ-max ℓC ℓC') ℓD') - ob FUNCTOR = Functor C D + ob FUNCTOR = Functor C D Hom[_,_] FUNCTOR = NatTrans id FUNCTOR {F} = idTrans F _⋆_ FUNCTOR = seqTrans ⋆IdL FUNCTOR α = makeNatTransPath λ i x D .⋆IdL (α .N-ob x) i ⋆IdR FUNCTOR α = makeNatTransPath λ i x D .⋆IdR (α .N-ob x) i ⋆Assoc FUNCTOR α β γ = makeNatTransPath λ i x D .⋆Assoc (α .N-ob x) (β .N-ob x) (γ .N-ob x) i - isSetHom FUNCTOR = isSetNatTrans + isSetHom FUNCTOR = isSetNatTrans open isIsoC renaming (inv to invC) -- componentwise iso is an iso in Functor - FUNCTORIso : {F G : Functor C D} (α : F G) + FUNCTORIso : {F G : Functor C D} (α : F G) (∀ (c : C .ob) isIsoC D (α c )) isIsoC FUNCTOR α FUNCTORIso α is .invC .N-ob c = (is c) .invC FUNCTORIso {F} {G} α is .invC .N-hom {c} {d} f = invMoveL areInv-αc - ( α c ⋆⟨ D (G f ⋆⟨ D is d .invC) + ( α c ⋆⟨ D (G f ⋆⟨ D is d .invC) ≡⟨ sym (D .⋆Assoc _ _ _) - (α c ⋆⟨ D G f ) ⋆⟨ D is d .invC + (α c ⋆⟨ D G f ) ⋆⟨ D is d .invC ≡⟨ sym (invMoveR areInv-αd (α .N-hom f)) - F f + F f ) where areInv-αc : areInv _ (α c ) ((is c) .invC) @@ -70,7 +70,7 @@ FUNCTORIso α is .ret = makeNatTransPath (funExt c (is c) .ret)) -- iso is componentwise iso in Functor - FUNCTORIso' : {F G : Functor C D} (α : F G) + FUNCTORIso' : {F G : Functor C D} (α : F G) isIsoC FUNCTOR α ((c : C .ob) isIsoC D (α c )) FUNCTORIso' α isom c .invC = isom .invC .N-ob c @@ -80,21 +80,21 @@ open Iso open NatIso - FUNCTORIso→NatIso : {F G : Functor C D} CatIso FUNCTOR F G NatIso F G + FUNCTORIso→NatIso : {F G : Functor C D} CatIso FUNCTOR F G NatIso F G FUNCTORIso→NatIso α .trans = α .fst FUNCTORIso→NatIso α .nIso = FUNCTORIso' _ (α .snd) - NatIso→FUNCTORIso : {F G : Functor C D} NatIso F G CatIso FUNCTOR F G + NatIso→FUNCTORIso : {F G : Functor C D} NatIso F G CatIso FUNCTOR F G NatIso→FUNCTORIso α = α .trans , FUNCTORIso _ (α .nIso) - Path→FUNCTORIso→NatIso : {F G : Functor C D} (p : F G) pathToNatIso p FUNCTORIso→NatIso (pathToIso p) + Path→FUNCTORIso→NatIso : {F G : Functor C D} (p : F G) pathToNatIso p FUNCTORIso→NatIso (pathToIso p) Path→FUNCTORIso→NatIso {F = F} p = J _ p pathToNatIso p FUNCTORIso→NatIso (pathToIso p)) (NatIso≡ refl-helper) p where refl-helper : _ - refl-helper i x = ((λ i pathToIso-refl {C = D} {x = F .F-ob x} i .fst) + refl-helper i x = ((λ i pathToIso-refl {C = D} {x = F .F-ob x} i .fst) i pathToIso-refl {C = FUNCTOR} {x = F} (~ i) .fst .N-ob x)) i - Iso-FUNCTORIso-NatIso : {F G : Functor C D} Iso (CatIso FUNCTOR F G) (NatIso F G) + Iso-FUNCTORIso-NatIso : {F G : Functor C D} Iso (CatIso FUNCTOR F G) (NatIso F G) Iso-FUNCTORIso-NatIso .fun = FUNCTORIso→NatIso Iso-FUNCTORIso-NatIso .inv = NatIso→FUNCTORIso Iso-FUNCTORIso-NatIso .rightInv α i .trans = α .trans @@ -104,7 +104,7 @@ Iso-FUNCTORIso-NatIso .leftInv α i .snd = isProp→PathP i isPropIsIso _) (FUNCTORIso _ (FUNCTORIso' _ (α .snd))) (α .snd) i - FUNCTORIso≃NatIso : {F G : Functor C D} CatIso FUNCTOR F G NatIso F G + FUNCTORIso≃NatIso : {F G : Functor C D} CatIso FUNCTOR F G NatIso F G FUNCTORIso≃NatIso = isoToEquiv Iso-FUNCTORIso-NatIso @@ -115,59 +115,59 @@ isUnivalentFUNCTOR : isUnivalent D isUnivalent FUNCTOR isUnivalentFUNCTOR isUnivD .univ _ _ = isEquiv[equivFunA≃B∘f]→isEquiv[f] _ FUNCTORIso≃NatIso - (subst isEquiv i p Path→FUNCTORIso→NatIso p i) (Path≃NatIso isUnivD .snd)) - - appF : Functor (FUNCTOR ×C C) D - appF .F-ob (F , c) = F c - appF .F-hom {F , c} {G , d} (α , f) = α .N-ob d ∘⟨ D F .F-hom f - appF .F-id {F , c} = - D .id ∘⟨ D F .F-hom (C .id) ≡⟨ D .⋆IdR (F .F-hom (C .id)) - F .F-hom (C .id) ≡⟨ F .F-id + (subst isEquiv i p Path→FUNCTORIso→NatIso p i) (Path≃NatIso isUnivD .snd)) + + appF : Functor (FUNCTOR ×C C) D + appF .F-ob (F , c) = F c + appF .F-hom {F , c} {G , d} (α , f) = α .N-ob d ∘⟨ D F .F-hom f + appF .F-id {F , c} = + D .id ∘⟨ D F .F-hom (C .id) ≡⟨ D .⋆IdR (F .F-hom (C .id)) + F .F-hom (C .id) ≡⟨ F .F-id D .id - appF .F-seq {F , c}{G , d}{H , e} (α , f) (β , g ) = - (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D F .F-hom (g ∘⟨ C f) - ≡⟨ i (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D F .F-seq f g i) - (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D (F .F-hom g ∘⟨ D F .F-hom f) + appF .F-seq {F , c}{G , d}{H , e} (α , f) (β , g ) = + (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D F .F-hom (g ∘⟨ C f) + ≡⟨ i (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D F .F-seq f g i) + (β .N-ob e ∘⟨ D α .N-ob e) ∘⟨ D (F .F-hom g ∘⟨ D F .F-hom f) ≡⟨ sym (D .⋆Assoc _ _ _) - β .N-ob e ∘⟨ D (α .N-ob e ∘⟨ D (F .F-hom g ∘⟨ D F .F-hom f)) + β .N-ob e ∘⟨ D (α .N-ob e ∘⟨ D (F .F-hom g ∘⟨ D F .F-hom f)) ≡⟨ i β .N-ob e - ∘⟨ D D .⋆Assoc (F .F-hom f) (F .F-hom g) (α .N-ob e) i) - β .N-ob e ∘⟨ D ((α .N-ob e ∘⟨ D F .F-hom g) ∘⟨ D F .F-hom f) - ≡⟨ i β .N-ob e ∘⟨ D α .N-hom g i ∘⟨ D F .F-hom f) - β .N-ob e ∘⟨ D ((G .F-hom g ∘⟨ D α .N-ob d) ∘⟨ D F .F-hom f) + ∘⟨ D D .⋆Assoc (F .F-hom f) (F .F-hom g) (α .N-ob e) i) + β .N-ob e ∘⟨ D ((α .N-ob e ∘⟨ D F .F-hom g) ∘⟨ D F .F-hom f) + ≡⟨ i β .N-ob e ∘⟨ D α .N-hom g i ∘⟨ D F .F-hom f) + β .N-ob e ∘⟨ D ((G .F-hom g ∘⟨ D α .N-ob d) ∘⟨ D F .F-hom f) ≡⟨ i β .N-ob e - ∘⟨ D D .⋆Assoc (F .F-hom f) (α .N-ob d) (G .F-hom g) (~ i) ) - β .N-ob e ∘⟨ D (G .F-hom g ∘⟨ D (α .N-ob d ∘⟨ D F .F-hom f)) + ∘⟨ D D .⋆Assoc (F .F-hom f) (α .N-ob d) (G .F-hom g) (~ i) ) + β .N-ob e ∘⟨ D (G .F-hom g ∘⟨ D (α .N-ob d ∘⟨ D F .F-hom f)) ≡⟨ D .⋆Assoc _ _ _ - (β .N-ob e ∘⟨ D G .F-hom g) ∘⟨ D (α .N-ob d ∘⟨ D F .F-hom f) + (β .N-ob e ∘⟨ D G .F-hom g) ∘⟨ D (α .N-ob d ∘⟨ D F .F-hom f) module _ (E : Category ℓE ℓE') where - λF : Functor (E ×C C) D Functor E FUNCTOR - λF F .F-ob e .F-ob c = F e , c - λF F .F-ob e .F-hom f = F (E .id) , f - λF F .F-ob e .F-id = F .F-id - λF F .F-ob e .F-seq f g = - F E .id , g ∘⟨ C f - ≡⟨ i F (E .⋆IdL (E .id) (~ i)) , (g ∘⟨ C f) ) - (F (E .id ∘⟨ E E .id) , g ∘⟨ C f ) - ≡⟨ F .F-seq (E .id , f) (E .id , g) - (F E .id , g ∘⟨ D F E .id , f ) - λF F .F-hom h .N-ob c = F h , (C .id) - λF F .F-hom h .N-hom f = - F h , C .id ∘⟨ D F E .id , f ≡⟨ sym (F .F-seq _ _) - F h ∘⟨ E E .id , C .id ∘⟨ C f - ≡⟨ i F E .⋆IdL h i , C .⋆IdR f i ) - F h , f ≡⟨ i F (E .⋆IdR h (~ i)) , (C .⋆IdL f (~ i)) ) - F E .id ∘⟨ E h , f ∘⟨ C C .id ≡⟨ F .F-seq _ _ - F E .id , f ∘⟨ D F h , C .id - λF F .F-id = makeNatTransPath (funExt λ c F .F-id) - λF F .F-seq f g = makeNatTransPath (funExt lem) where + λF : Functor (E ×C C) D Functor E FUNCTOR + λF F .F-ob e .F-ob c = F e , c + λF F .F-ob e .F-hom f = F (E .id) , f + λF F .F-ob e .F-id = F .F-id + λF F .F-ob e .F-seq f g = + F E .id , g ∘⟨ C f + ≡⟨ i F (E .⋆IdL (E .id) (~ i)) , (g ∘⟨ C f) ) + (F (E .id ∘⟨ E E .id) , g ∘⟨ C f ) + ≡⟨ F .F-seq (E .id , f) (E .id , g) + (F E .id , g ∘⟨ D F E .id , f ) + λF F .F-hom h .N-ob c = F h , (C .id) + λF F .F-hom h .N-hom f = + F h , C .id ∘⟨ D F E .id , f ≡⟨ sym (F .F-seq _ _) + F h ∘⟨ E E .id , C .id ∘⟨ C f + ≡⟨ i F E .⋆IdL h i , C .⋆IdR f i ) + F h , f ≡⟨ i F (E .⋆IdR h (~ i)) , (C .⋆IdL f (~ i)) ) + F E .id ∘⟨ E h , f ∘⟨ C C .id ≡⟨ F .F-seq _ _ + F E .id , f ∘⟨ D F h , C .id + λF F .F-id = makeNatTransPath (funExt λ c F .F-id) + λF F .F-seq f g = makeNatTransPath (funExt lem) where lem : (c : C .ob) - F g ∘⟨ E f , C .id - F g , C .id ∘⟨ D F f , C .id + F g ∘⟨ E f , C .id + F g , C .id ∘⟨ D F f , C .id lem c = - F g ∘⟨ E f , C .id - ≡⟨ i F (g ∘⟨ E f) , (C .⋆IdR (C .id) (~ i)) ) - F g ∘⟨ E f , C .id ∘⟨ C C .id - ≡⟨ F .F-seq (f , C .id) (g , C .id) - (F g , C .id ) ∘⟨ D (F f , C .id ) + F g ∘⟨ E f , C .id + ≡⟨ i F (g ∘⟨ E f) , (C .⋆IdR (C .id) (~ i)) ) + F g ∘⟨ E f , C .id ∘⟨ C C .id + ≡⟨ F .F-seq (f , C .id) (g , C .id) + (F g , C .id ) ∘⟨ D (F f , C .id ) \ No newline at end of file diff --git a/Cubical.Categories.Instances.Groups.html b/Cubical.Categories.Instances.Groups.html new file mode 100644 index 0000000000..db128e85df --- /dev/null +++ b/Cubical.Categories.Instances.Groups.html @@ -0,0 +1,77 @@ + +Cubical.Categories.Instances.Groups
-- The category Grp of groups
+{-# OPTIONS --safe #-}
+
+module Cubical.Categories.Instances.Groups where
+
+open import Cubical.Foundations.Prelude
+open import Cubical.Foundations.Equiv
+open import Cubical.Foundations.Isomorphism
+open import Cubical.Foundations.Function
+
+open import Cubical.Algebra.Group.Base
+open import Cubical.Algebra.Group.GroupPath
+open import Cubical.Algebra.Group.Morphisms
+open import Cubical.Algebra.Group.MorphismProperties
+
+open import Cubical.Categories.Category.Base renaming (isIso to isCatIso)
+open import Cubical.Categories.Instances.Sets
+open import Cubical.Categories.Functor.Base
+
+open import Cubical.Data.Sigma
+
+module _ { : Level} where
+  open Category hiding (_∘_)
+
+  GroupCategory : Category (ℓ-suc ) 
+  GroupCategory .ob = Group 
+  GroupCategory .Hom[_,_] = GroupHom
+  GroupCategory .id = idGroupHom
+  GroupCategory ._⋆_ = compGroupHom
+  GroupCategory .⋆IdL f = GroupHom≡ refl
+  GroupCategory .⋆IdR f = GroupHom≡ refl
+  GroupCategory .⋆Assoc f g h = GroupHom≡ refl
+  GroupCategory .isSetHom = isSetGroupHom
+
+  Forget : Functor GroupCategory (SET )
+  Functor.F-ob Forget G = fst G , GroupStr.is-set (snd G)
+  Functor.F-hom Forget = fst
+  Functor.F-id Forget = refl
+  Functor.F-seq Forget _ _ = refl
+
+  GroupsCatIso≃GroupEquiv :  G G' 
+    CatIso GroupCategory G G' 
+     GroupEquiv G G'
+  GroupsCatIso≃GroupEquiv G G' =
+      Σ-cong-equiv-snd
+         _  propBiimpl→Equiv
+          (isPropIsIso _) (isPropIsEquiv _)
+           (isoToIsEquiv  →iso) →ciso)
+       ∙ₑ Σ-assoc-swap-≃
+   where
+    open Iso
+    open isCatIso
+    →iso :  {x}  isCatIso GroupCategory x  Iso _ _
+    fun (→iso ici) = _
+    inv (→iso ici) = fst (inv ici)
+    rightInv (→iso ici) b i = fst (sec ici i) b
+    leftInv (→iso ici) a i = fst (ret ici i) a
+
+    →ciso :  {x}  isEquiv (fst x)  isCatIso GroupCategory x
+    fst (inv (→ciso is≃)) = _
+    snd (inv (→ciso {x} is≃)) =
+      isGroupHomInv ((_ , is≃) , (snd x))
+    sec (→ciso is≃) =
+     Σ≡Prop  _  isPropIsGroupHom _ _) (funExt (secEq (_ , is≃)))
+    ret (→ciso is≃) =
+     Σ≡Prop  _  isPropIsGroupHom _ _) (funExt (retEq (_ , is≃)))
+
+
+  isUnivalentGrp : isUnivalent {ℓ' = } GroupCategory
+  isUnivalent.univ isUnivalentGrp _ _ =
+   precomposesToId→Equiv _ _ (funExt
+               (Σ≡Prop isPropIsIso
+               Σ≡Prop  _  isPropIsGroupHom _ _)
+               λ _  transportRefl _))
+              (snd (GroupsCatIso≃GroupEquiv _ _ ∙ₑ GroupPath _ _))
+
\ No newline at end of file diff --git a/Cubical.Categories.Instances.Sets.html b/Cubical.Categories.Instances.Sets.html index 1b1114fcb5..b997849235 100644 --- a/Cubical.Categories.Instances.Sets.html +++ b/Cubical.Categories.Instances.Sets.html @@ -33,29 +33,29 @@ variable ℓ' : Level -open Functor +open Functor -- Hom functors -_[-,_] : (C : Category ℓ') (c : C .ob) Functor (C ^op) (SET ℓ') -(C [-, c ]) .F-ob x = (C [ x , c ]) , C .isSetHom -(C [-, c ]) .F-hom f k = f ⋆⟨ C k -(C [-, c ]) .F-id = funExt λ _ C .⋆IdL _ -(C [-, c ]) .F-seq _ _ = funExt λ _ C .⋆Assoc _ _ _ - -_[_,-] : (C : Category ℓ') (c : C .ob)→ Functor C (SET ℓ') -(C [ c ,-]) .F-ob x = (C [ c , x ]) , C .isSetHom -(C [ c ,-]) .F-hom f k = k ⋆⟨ C f -(C [ c ,-]) .F-id = funExt λ _ C .⋆IdR _ -(C [ c ,-]) .F-seq _ _ = funExt λ _ sym (C .⋆Assoc _ _ _) +_[-,_] : (C : Category ℓ') (c : C .ob) Functor (C ^op) (SET ℓ') +(C [-, c ]) .F-ob x = (C [ x , c ]) , C .isSetHom +(C [-, c ]) .F-hom f k = f ⋆⟨ C k +(C [-, c ]) .F-id = funExt λ _ C .⋆IdL _ +(C [-, c ]) .F-seq _ _ = funExt λ _ C .⋆Assoc _ _ _ + +_[_,-] : (C : Category ℓ') (c : C .ob)→ Functor C (SET ℓ') +(C [ c ,-]) .F-ob x = (C [ c , x ]) , C .isSetHom +(C [ c ,-]) .F-hom f k = k ⋆⟨ C f +(C [ c ,-]) .F-id = funExt λ _ C .⋆IdR _ +(C [ c ,-]) .F-seq _ _ = funExt λ _ sym (C .⋆Assoc _ _ _) -- Lift functor -LiftF : Functor (SET ) (SET (ℓ-max ℓ')) -LiftF {}{ℓ'} .F-ob A = (Lift {}{ℓ'} (A .fst)) , isOfHLevelLift 2 (A .snd) -LiftF .F-hom f x = lift (f (x .lower)) -LiftF .F-id = refl -LiftF .F-seq f g = funExt λ x refl +LiftF : Functor (SET ) (SET (ℓ-max ℓ')) +LiftF {}{ℓ'} .F-ob A = (Lift {}{ℓ'} (A .fst)) , isOfHLevelLift 2 (A .snd) +LiftF .F-hom f x = lift (f (x .lower)) +LiftF .F-id = refl +LiftF .F-seq f g = funExt λ x refl -module _ {C : Category ℓ'} {F : Functor C (SET ℓ')} where +module _ {C : Category ℓ'} {F : Functor C (SET ℓ')} where open NatTrans -- natural transformations by pre/post composition @@ -69,7 +69,7 @@ ≡[ i ]⟨ l (α d ) (⋆Assoc C f l k (~ i))) l (α d ) (f ⋆⟨ C l ⋆⟨ C k)) ≡[ i ]⟨ l (α .N-hom k) i (f ⋆⟨ C l)) - l (F k ) ((α c ) (f ⋆⟨ C l))) + l (F k ) ((α c ) (f ⋆⟨ C l))) -- properties diff --git a/Cubical.Categories.Instances.Terminal.html b/Cubical.Categories.Instances.Terminal.html index e66438d85c..6e8708d394 100644 --- a/Cubical.Categories.Instances.Terminal.html +++ b/Cubical.Categories.Instances.Terminal.html @@ -17,11 +17,11 @@ module _ {ℓC ℓ'C : Level} {C : Category ℓC ℓ'C} where private module C = Category C - open Functor + open Functor - FunctorFromTerminal : {ℓ* : Level} C.ob Functor (TerminalCategory {ℓ*}) C - FunctorFromTerminal c .F-ob _ = c - FunctorFromTerminal c .F-hom _ = C.id - FunctorFromTerminal c .F-id = refl - FunctorFromTerminal c .F-seq _ _ = sym $ C.⋆IdL C.id + FunctorFromTerminal : {ℓ* : Level} C.ob Functor (TerminalCategory {ℓ*}) C + FunctorFromTerminal c .F-ob _ = c + FunctorFromTerminal c .F-hom _ = C.id + FunctorFromTerminal c .F-id = refl + FunctorFromTerminal c .F-seq _ _ = sym $ C.⋆IdL C.id \ No newline at end of file diff --git a/Cubical.Categories.Instances.ZFunctors.html b/Cubical.Categories.Instances.ZFunctors.html index eff8dd8443..be7d772e2e 100644 --- a/Cubical.Categories.Instances.ZFunctors.html +++ b/Cubical.Categories.Instances.ZFunctors.html @@ -55,18 +55,18 @@ module _ { : Level} where - open Functor + open Functor open NatTrans open CommRingStr ⦃...⦄ open IsRingHom -- using the naming conventions of Nieper-Wisskirchen - ℤFunctor = Functor (CommRingsCategory { = }) (SET ) + ℤFunctor = Functor (CommRingsCategory { = }) (SET ) ℤFUNCTOR = FUNCTOR (CommRingsCategory { = }) (SET ) -- Yoneda in the notation of Demazure-Gabriel, -- uses that double op is original category definitionally - Sp : Functor (CommRingsCategory { = } ^op) ℤFUNCTOR + Sp : Functor (CommRingsCategory { = } ^op) ℤFUNCTOR Sp = YO {C = (CommRingsCategory { = } ^op)} -- the forgetful functor @@ -76,62 +76,62 @@ 𝔸¹ = ForgetfulCommRing→Set -- the global sections functor - Γ : Functor ℤFUNCTOR (CommRingsCategory { = ℓ-suc } ^op) - fst (F-ob Γ X) = X 𝔸¹ + Γ : Functor ℤFUNCTOR (CommRingsCategory { = ℓ-suc } ^op) + fst (F-ob Γ X) = X 𝔸¹ -- ring struncture induced by internal ring object 𝔸¹ - N-ob (CommRingStr.0r (snd (F-ob Γ X))) A _ = 0r + N-ob (CommRingStr.0r (snd (F-ob Γ X))) A _ = 0r where instance _ = A .snd - N-hom (CommRingStr.0r (snd (F-ob Γ X))) φ = funExt λ _ sym (φ .snd .pres0) + N-hom (CommRingStr.0r (snd (F-ob Γ X))) φ = funExt λ _ sym (φ .snd .pres0) - N-ob (CommRingStr.1r (snd (F-ob Γ X))) A _ = 1r + N-ob (CommRingStr.1r (snd (F-ob Γ X))) A _ = 1r where instance _ = A .snd - N-hom (CommRingStr.1r (snd (F-ob Γ X))) φ = funExt λ _ sym (φ .snd .pres1) + N-hom (CommRingStr.1r (snd (F-ob Γ X))) φ = funExt λ _ sym (φ .snd .pres1) - N-ob ((snd (F-ob Γ X) CommRingStr.+ α) β) A x = α .N-ob A x + β .N-ob A x + N-ob ((snd (F-ob Γ X) CommRingStr.+ α) β) A x = α .N-ob A x + β .N-ob A x where instance _ = A .snd - N-hom ((snd (F-ob Γ X) CommRingStr.+ α) β) {x = A} {y = B} φ = funExt path + N-hom ((snd (F-ob Γ X) CommRingStr.+ α) β) {x = A} {y = B} φ = funExt path where instance _ = A .snd _ = B .snd - path : x α .N-ob B (X .F-hom φ x) + β .N-ob B (X .F-hom φ x) + path : x α .N-ob B (X .F-hom φ x) + β .N-ob B (X .F-hom φ x) φ .fst (α .N-ob A x + β .N-ob A x) - path x = α .N-ob B (X .F-hom φ x) + β .N-ob B (X .F-hom φ x) + path x = α .N-ob B (X .F-hom φ x) + β .N-ob B (X .F-hom φ x) ≡⟨ cong₂ _+_ (funExt⁻ (α .N-hom φ) x) (funExt⁻ (β .N-hom φ) x) φ .fst (α .N-ob A x) + φ .fst (β .N-ob A x) ≡⟨ sym (φ .snd .pres+ _ _) φ .fst (α .N-ob A x + β .N-ob A x) - N-ob ((snd (F-ob Γ X) CommRingStr.· α) β) A x = α .N-ob A x · β .N-ob A x + N-ob ((snd (F-ob Γ X) CommRingStr.· α) β) A x = α .N-ob A x · β .N-ob A x where instance _ = A .snd - N-hom ((snd (F-ob Γ X) CommRingStr.· α) β) {x = A} {y = B} φ = funExt path + N-hom ((snd (F-ob Γ X) CommRingStr.· α) β) {x = A} {y = B} φ = funExt path where instance _ = A .snd _ = B .snd - path : x α .N-ob B (X .F-hom φ x) · β .N-ob B (X .F-hom φ x) + path : x α .N-ob B (X .F-hom φ x) · β .N-ob B (X .F-hom φ x) φ .fst (α .N-ob A x · β .N-ob A x) - path x = α .N-ob B (X .F-hom φ x) · β .N-ob B (X .F-hom φ x) + path x = α .N-ob B (X .F-hom φ x) · β .N-ob B (X .F-hom φ x) ≡⟨ cong₂ _·_ (funExt⁻ (α .N-hom φ) x) (funExt⁻ (β .N-hom φ) x) φ .fst (α .N-ob A x) · φ .fst (β .N-ob A x) ≡⟨ sym (φ .snd .pres· _ _) φ .fst (α .N-ob A x · β .N-ob A x) - N-ob ((CommRingStr.- snd (F-ob Γ X)) α) A x = - α .N-ob A x + N-ob ((CommRingStr.- snd (F-ob Γ X)) α) A x = - α .N-ob A x where instance _ = A .snd - N-hom ((CommRingStr.- snd (F-ob Γ X)) α) {x = A} {y = B} φ = funExt path + N-hom ((CommRingStr.- snd (F-ob Γ X)) α) {x = A} {y = B} φ = funExt path where instance _ = A .snd _ = B .snd - path : x - α .N-ob B (X .F-hom φ x) φ .fst (- α .N-ob A x) - path x = - α .N-ob B (X .F-hom φ x) ≡⟨ cong -_ (funExt⁻ (α .N-hom φ) x) + path : x - α .N-ob B (X .F-hom φ x) φ .fst (- α .N-ob A x) + path x = - α .N-ob B (X .F-hom φ x) ≡⟨ cong -_ (funExt⁻ (α .N-hom φ) x) - φ .fst (α .N-ob A x) ≡⟨ sym (φ .snd .pres- _) φ .fst (- α .N-ob A x) - CommRingStr.isCommRing (snd (F-ob Γ X)) = makeIsCommRing - isSetNatTrans + CommRingStr.isCommRing (snd (F-ob Γ X)) = makeIsCommRing + isSetNatTrans _ _ _ makeNatTransPath (funExt₂ λ A _ A .snd .CommRingStr.+Assoc _ _ _)) _ makeNatTransPath (funExt₂ λ A _ A .snd .CommRingStr.+IdR _)) _ makeNatTransPath (funExt₂ λ A _ A .snd .CommRingStr.+InvR _)) @@ -142,28 +142,28 @@ _ _ makeNatTransPath (funExt₂ λ A _ A .snd .CommRingStr.·Comm _ _)) -- action on natural transformations - fst (F-hom Γ α) = α ●ᵛ_ - pres0 (snd (F-hom Γ α)) = makeNatTransPath (funExt₂ λ _ _ refl) - pres1 (snd (F-hom Γ α)) = makeNatTransPath (funExt₂ λ _ _ refl) - pres+ (snd (F-hom Γ α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) - pres· (snd (F-hom Γ α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) - pres- (snd (F-hom Γ α)) _ = makeNatTransPath (funExt₂ λ _ _ refl) + fst (F-hom Γ α) = α ●ᵛ_ + pres0 (snd (F-hom Γ α)) = makeNatTransPath (funExt₂ λ _ _ refl) + pres1 (snd (F-hom Γ α)) = makeNatTransPath (funExt₂ λ _ _ refl) + pres+ (snd (F-hom Γ α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) + pres· (snd (F-hom Γ α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) + pres- (snd (F-hom Γ α)) _ = makeNatTransPath (funExt₂ λ _ _ refl) -- functoriality of Γ - F-id Γ = RingHom≡ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) - F-seq Γ _ _ = RingHom≡ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) + F-id Γ = RingHom≡ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) + F-seq Γ _ _ = RingHom≡ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) -- we get an adjunction Γ ⊣ Sp modulo size issues module AdjBij where - open Functor + open Functor open NatTrans open Iso open IsRingHom private module _ {A : CommRing } {X : ℤFunctor {}} where - _♭ : CommRingHom A (Γ .F-ob X) X Sp .F-ob A + _♭ : CommRingHom A (Γ .F-ob X) X Sp .F-ob A fst (N-ob (φ ) B x) a = φ .fst a .N-ob B x pres0 (snd (N-ob (φ ) B x)) = cong y y .N-ob B x) (φ .snd .pres0) @@ -176,7 +176,7 @@ -- the other direction is just precomposition modulo Yoneda - _♯ : X Sp .F-ob A CommRingHom A (Γ .F-ob X) + _♯ : X Sp .F-ob A CommRingHom A (Γ .F-ob X) fst (α ) a = α ●ᵛ yonedaᴾ 𝔸¹ A .inv a pres0 (snd (α )) = makeNatTransPath (funExt₂ λ B x α .N-ob B x .snd .pres0) @@ -187,53 +187,53 @@ -- the two maps are inverse to each other - ♭♯Id : (α : X Sp .F-ob A) ((α ) ) α + ♭♯Id : (α : X Sp .F-ob A) ((α ) ) α ♭♯Id _ = makeNatTransPath (funExt₂ λ _ _ RingHom≡ (funExt _ refl))) - ♯♭Id : (φ : CommRingHom A (Γ .F-ob X)) ((φ ) ) φ + ♯♭Id : (φ : CommRingHom A (Γ .F-ob X)) ((φ ) ) φ ♯♭Id _ = RingHom≡ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) Γ⊣SpIso : {A : CommRing } {X : ℤFunctor {}} - Iso (CommRingHom A (Γ .F-ob X)) (X Sp .F-ob A) + Iso (CommRingHom A (Γ .F-ob X)) (X Sp .F-ob A) fun Γ⊣SpIso = _♭ inv Γ⊣SpIso = _♯ rightInv Γ⊣SpIso = ♭♯Id leftInv Γ⊣SpIso = ♯♭Id - Γ⊣SpNatℤFunctor : {A : CommRing } {X Y : ℤFunctor {}} (α : X Sp .F-ob A) (β : Y X) - (β ●ᵛ α) (Γ .F-hom β) ∘cr (α ) + Γ⊣SpNatℤFunctor : {A : CommRing } {X Y : ℤFunctor {}} (α : X Sp .F-ob A) (β : Y X) + (β ●ᵛ α) (Γ .F-hom β) ∘cr (α ) Γ⊣SpNatℤFunctor _ _ = RingHom≡ (funExt _ makeNatTransPath (funExt₂ _ _ refl)))) Γ⊣SpNatCommRing : {X : ℤFunctor {}} {A B : CommRing } - (φ : CommRingHom A (Γ .F-ob X)) (ψ : CommRingHom B A) - (φ ∘cr ψ) (φ ) ●ᵛ Sp .F-hom ψ + (φ : CommRingHom A (Γ .F-ob X)) (ψ : CommRingHom B A) + (φ ∘cr ψ) (φ ) ●ᵛ Sp .F-hom ψ Γ⊣SpNatCommRing _ _ = makeNatTransPath (funExt₂ λ _ _ RingHom≡ (funExt _ refl))) -- the counit is an equivalence private - ε : (A : CommRing ) CommRingHom A ((Γ ∘F Sp) .F-ob A) - ε A = (idTrans (Sp .F-ob A)) + ε : (A : CommRing ) CommRingHom A ((Γ ∘F Sp) .F-ob A) + ε A = (idTrans (Sp .F-ob A)) - Γ⊣SpCounitEquiv : (A : CommRing ) CommRingEquiv A ((Γ ∘F Sp) .F-ob A) + Γ⊣SpCounitEquiv : (A : CommRing ) CommRingEquiv A ((Γ ∘F Sp) .F-ob A) fst (Γ⊣SpCounitEquiv A) = isoToEquiv theIso where - theIso : Iso (A .fst) ((Γ ∘F Sp) .F-ob A .fst) + theIso : Iso (A .fst) ((Γ ∘F Sp) .F-ob A .fst) fun theIso = ε A .fst inv theIso = yonedaᴾ 𝔸¹ A .fun rightInv theIso α = ℤFUNCTOR .⋆IdL _ yonedaᴾ 𝔸¹ A .leftInv α leftInv theIso a = path -- I get yellow otherwise where - path : yonedaᴾ 𝔸¹ A .fun ((idTrans (Sp .F-ob A)) ●ᵛ yonedaᴾ 𝔸¹ A .inv a) a + path : yonedaᴾ 𝔸¹ A .fun ((idTrans (Sp .F-ob A)) ●ᵛ yonedaᴾ 𝔸¹ A .inv a) a path = cong (yonedaᴾ 𝔸¹ A .fun) (ℤFUNCTOR .⋆IdL _) yonedaᴾ 𝔸¹ A .rightInv a snd (Γ⊣SpCounitEquiv A) = ε A .snd -- Affine schemes module _ { : Level} where - open Functor + open Functor isAffine : (X : ℤFunctor) Type (ℓ-suc ) - isAffine X = ∃[ A CommRing ] NatIso (Sp .F-ob A) X + isAffine X = ∃[ A CommRing ] NatIso (Sp .F-ob A) X -- TODO: 𝔸¹ ≅ Sp ℤ[x] and 𝔾ₘ ≅ Sp ℤ[x,x⁻¹] as first examples of affine schemes @@ -244,11 +244,11 @@ -- We can however give terms that look just like the unit, -- giving us an alternative def. of affine ℤ-functors private module AffineDefs { : Level} where - open Functor + open Functor open NatTrans open Iso open IsRingHom - η : (X : ℤFunctor) (A : CommRing ) X .F-ob A .fst CommRingHom (Γ .F-ob X) A + η : (X : ℤFunctor) (A : CommRing ) X .F-ob A .fst CommRingHom (Γ .F-ob X) A fst (η X A x) α = α .N-ob A x pres0 (snd (η X A x)) = refl pres1 (snd (η X A x)) = refl @@ -258,12 +258,12 @@ -- this is basically a natural transformation ηObHom : (X : ℤFunctor) {A B : CommRing } (φ : CommRingHom A B) - η X B (X .F-hom φ) (φ ∘cr_) η X A + η X B (X .F-hom φ) (φ ∘cr_) η X A ηObHom X φ = funExt x RingHom≡ (funExt λ α funExt⁻ (α .N-hom φ) x)) -- can only state equality on object part, but that would be enough - ηHom : {X Y : ℤFunctor} (α : X Y) (A : CommRing ) (x : X .F-ob A .fst) - η Y A (α .N-ob A x) η X A x ∘cr Γ .F-hom α + ηHom : {X Y : ℤFunctor} (α : X Y) (A : CommRing ) (x : X .F-ob A .fst) + η Y A (α .N-ob A x) η X A x ∘cr Γ .F-hom α ηHom _ _ _ = RingHom≡ refl isAffine' : (X : ℤFunctor) Type (ℓ-suc ) @@ -275,7 +275,7 @@ module _ { : Level} where open Iso - open Functor + open Functor open NatTrans open DistLatticeStr ⦃...⦄ open CommRingStr ⦃...⦄ @@ -286,34 +286,34 @@ -- the Zariski lattice classifying compact open subobjects 𝓛 : ℤFunctor { = } - F-ob 𝓛 A = ZL A , SQ.squash/ - F-hom 𝓛 φ = inducedZarLatHom φ .fst - F-id 𝓛 {A} = cong fst (inducedZarLatHomId A) - F-seq 𝓛 φ ψ = cong fst (inducedZarLatHomSeq φ ψ) + F-ob 𝓛 A = ZL A , SQ.squash/ + F-hom 𝓛 φ = inducedZarLatHom φ .fst + F-id 𝓛 {A} = cong fst (inducedZarLatHomId A) + F-seq 𝓛 φ ψ = cong fst (inducedZarLatHomSeq φ ψ) CompactOpen : ℤFunctor Type (ℓ-suc ) CompactOpen X = X 𝓛 -- the induced subfunctor ⟦_⟧ᶜᵒ : {X : ℤFunctor} (U : CompactOpen X) ℤFunctor - F-ob (⟦_⟧ᶜᵒ {X = X} U) A = (Σ[ x X .F-ob A .fst ] U .N-ob A x D A 1r) - , isSetΣSndProp (X .F-ob A .snd) λ _ squash/ _ _ + F-ob (⟦_⟧ᶜᵒ {X = X} U) A = (Σ[ x X .F-ob A .fst ] U .N-ob A x D A 1r) + , isSetΣSndProp (X .F-ob A .snd) λ _ squash/ _ _ where instance _ = snd A - F-hom (⟦_⟧ᶜᵒ {X = X} U) {x = A} {y = B} φ (x , Ux≡D1) = (X .F-hom φ x) , path + F-hom (⟦_⟧ᶜᵒ {X = X} U) {x = A} {y = B} φ (x , Ux≡D1) = (X .F-hom φ x) , path where instance _ = A .snd _ = B .snd open IsLatticeHom - path : U .N-ob B (X .F-hom φ x) D B 1r - path = U .N-ob B (X .F-hom φ x) ≡⟨ funExt⁻ (U .N-hom φ) x - 𝓛 .F-hom φ (U .N-ob A x) ≡⟨ cong (𝓛 .F-hom φ) Ux≡D1 - 𝓛 .F-hom φ (D A 1r) ≡⟨ inducedZarLatHom φ .snd .pres1 + path : U .N-ob B (X .F-hom φ x) D B 1r + path = U .N-ob B (X .F-hom φ x) ≡⟨ funExt⁻ (U .N-hom φ) x + 𝓛 .F-hom φ (U .N-ob A x) ≡⟨ cong (𝓛 .F-hom φ) Ux≡D1 + 𝓛 .F-hom φ (D A 1r) ≡⟨ inducedZarLatHom φ .snd .pres1 D B 1r - F-id (⟦_⟧ᶜᵒ {X = X} U) = funExt x Σ≡Prop _ squash/ _ _) - (funExt⁻ (X .F-id) (x .fst))) - F-seq (⟦_⟧ᶜᵒ {X = X} U) φ ψ = funExt x Σ≡Prop _ squash/ _ _) - (funExt⁻ (X .F-seq φ ψ) (x .fst))) + F-id (⟦_⟧ᶜᵒ {X = X} U) = funExt x Σ≡Prop _ squash/ _ _) + (funExt⁻ (X .F-id) (x .fst))) + F-seq (⟦_⟧ᶜᵒ {X = X} U) φ ψ = funExt x Σ≡Prop _ squash/ _ _) + (funExt⁻ (X .F-seq φ ψ) (x .fst))) isAffineCompactOpen : {X : ℤFunctor} (U : CompactOpen X) Type (ℓ-suc ) @@ -322,17 +322,17 @@ -- TODO: define basic opens D(f) ↪ Sp A and prove ⟦ D(f) ⟧ᶜᵒ ≅ Sp A[1/f] -- the (big) dist. lattice of compact opens - CompOpenDistLattice : Functor ℤFUNCTOR (DistLatticesCategory { = ℓ-suc } ^op) - fst (F-ob CompOpenDistLattice X) = CompactOpen X + CompOpenDistLattice : Functor ℤFUNCTOR (DistLatticesCategory { = ℓ-suc } ^op) + fst (F-ob CompOpenDistLattice X) = CompactOpen X -- lattice structure induce by internal lattice object 𝓛 - N-ob (DistLatticeStr.0l (snd (F-ob CompOpenDistLattice X))) A _ = 0l + N-ob (DistLatticeStr.0l (snd (F-ob CompOpenDistLattice X))) A _ = 0l where instance _ = ZariskiLattice A .snd - N-hom (DistLatticeStr.0l (snd (F-ob CompOpenDistLattice X))) _ = funExt λ _ refl + N-hom (DistLatticeStr.0l (snd (F-ob CompOpenDistLattice X))) _ = funExt λ _ refl - N-ob (DistLatticeStr.1l (snd (F-ob CompOpenDistLattice X))) A _ = 1l + N-ob (DistLatticeStr.1l (snd (F-ob CompOpenDistLattice X))) A _ = 1l where instance _ = ZariskiLattice A .snd - N-hom (DistLatticeStr.1l (snd (F-ob CompOpenDistLattice X))) {x = A} {y = B} φ = funExt λ _ path + N-hom (DistLatticeStr.1l (snd (F-ob CompOpenDistLattice X))) {x = A} {y = B} φ = funExt λ _ path where instance _ = A .snd @@ -341,38 +341,38 @@ path : D B 1r D B (φ .fst 1r) ∨l 0l path = cong (D B) (sym (φ .snd .pres1)) sym (∨lRid _) - N-ob ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∨l U) V) A x = U .N-ob A x ∨l V .N-ob A x + N-ob ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∨l U) V) A x = U .N-ob A x ∨l V .N-ob A x where instance _ = ZariskiLattice A .snd - N-hom ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∨l U) V) {x = A} {y = B} φ = funExt path + N-hom ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∨l U) V) {x = A} {y = B} φ = funExt path where instance _ = ZariskiLattice A .snd _ = ZariskiLattice B .snd - path : x U .N-ob B (X .F-hom φ x) ∨l V .N-ob B (X .F-hom φ x) - 𝓛 .F-hom φ (U .N-ob A x ∨l V .N-ob A x) - path x = U .N-ob B (X .F-hom φ x) ∨l V .N-ob B (X .F-hom φ x) + path : x U .N-ob B (X .F-hom φ x) ∨l V .N-ob B (X .F-hom φ x) + 𝓛 .F-hom φ (U .N-ob A x ∨l V .N-ob A x) + path x = U .N-ob B (X .F-hom φ x) ∨l V .N-ob B (X .F-hom φ x) ≡⟨ cong₂ _∨l_ (funExt⁻ (U .N-hom φ) x) (funExt⁻ (V .N-hom φ) x) - 𝓛 .F-hom φ (U .N-ob A x) ∨l 𝓛 .F-hom φ (V .N-ob A x) + 𝓛 .F-hom φ (U .N-ob A x) ∨l 𝓛 .F-hom φ (V .N-ob A x) ≡⟨ sym (inducedZarLatHom φ .snd .pres∨l _ _) - 𝓛 .F-hom φ (U .N-ob A x ∨l V .N-ob A x) + 𝓛 .F-hom φ (U .N-ob A x ∨l V .N-ob A x) - N-ob ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∧l U) V) A x = U .N-ob A x ∧l V .N-ob A x + N-ob ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∧l U) V) A x = U .N-ob A x ∧l V .N-ob A x where instance _ = ZariskiLattice A .snd - N-hom ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∧l U) V) {x = A} {y = B} φ = funExt path + N-hom ((snd (F-ob CompOpenDistLattice X) DistLatticeStr.∧l U) V) {x = A} {y = B} φ = funExt path where instance _ = ZariskiLattice A .snd _ = ZariskiLattice B .snd - path : x U .N-ob B (X .F-hom φ x) ∧l V .N-ob B (X .F-hom φ x) - 𝓛 .F-hom φ (U .N-ob A x ∧l V .N-ob A x) - path x = U .N-ob B (X .F-hom φ x) ∧l V .N-ob B (X .F-hom φ x) + path : x U .N-ob B (X .F-hom φ x) ∧l V .N-ob B (X .F-hom φ x) + 𝓛 .F-hom φ (U .N-ob A x ∧l V .N-ob A x) + path x = U .N-ob B (X .F-hom φ x) ∧l V .N-ob B (X .F-hom φ x) ≡⟨ cong₂ _∧l_ (funExt⁻ (U .N-hom φ) x) (funExt⁻ (V .N-hom φ) x) - 𝓛 .F-hom φ (U .N-ob A x) ∧l 𝓛 .F-hom φ (V .N-ob A x) + 𝓛 .F-hom φ (U .N-ob A x) ∧l 𝓛 .F-hom φ (V .N-ob A x) ≡⟨ sym (inducedZarLatHom φ .snd .pres∧l _ _) - 𝓛 .F-hom φ (U .N-ob A x ∧l V .N-ob A x) + 𝓛 .F-hom φ (U .N-ob A x ∧l V .N-ob A x) - DistLatticeStr.isDistLattice (snd (F-ob CompOpenDistLattice X)) = makeIsDistLattice∧lOver∨l - isSetNatTrans + DistLatticeStr.isDistLattice (snd (F-ob CompOpenDistLattice X)) = makeIsDistLattice∧lOver∨l + isSetNatTrans _ _ _ makeNatTransPath (funExt₂ A _ ZariskiLattice A .snd .DistLatticeStr.∨lAssoc _ _ _))) _ makeNatTransPath (funExt₂ A _ ZariskiLattice A .snd .DistLatticeStr.∨lRid _))) @@ -387,25 +387,25 @@ A _ ZariskiLattice A .snd .DistLatticeStr.∧l-dist-∨l _ _ _ .fst))) -- (contravariant) action on morphisms - fst (F-hom CompOpenDistLattice α) = α ●ᵛ_ - pres0 (snd (F-hom CompOpenDistLattice α)) = makeNatTransPath (funExt₂ λ _ _ refl) - pres1 (snd (F-hom CompOpenDistLattice α)) = makeNatTransPath (funExt₂ λ _ _ refl) - pres∨l (snd (F-hom CompOpenDistLattice α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) - pres∧l (snd (F-hom CompOpenDistLattice α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) + fst (F-hom CompOpenDistLattice α) = α ●ᵛ_ + pres0 (snd (F-hom CompOpenDistLattice α)) = makeNatTransPath (funExt₂ λ _ _ refl) + pres1 (snd (F-hom CompOpenDistLattice α)) = makeNatTransPath (funExt₂ λ _ _ refl) + pres∨l (snd (F-hom CompOpenDistLattice α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) + pres∧l (snd (F-hom CompOpenDistLattice α)) _ _ = makeNatTransPath (funExt₂ λ _ _ refl) -- functoriality - F-id CompOpenDistLattice = LatticeHom≡f _ _ + F-id CompOpenDistLattice = LatticeHom≡f _ _ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) - F-seq CompOpenDistLattice _ _ = LatticeHom≡f _ _ + F-seq CompOpenDistLattice _ _ = LatticeHom≡f _ _ (funExt λ _ makeNatTransPath (funExt₂ λ _ _ refl)) module _ (X : ℤFunctor) where - open Join (CompOpenDistLattice .F-ob X) - open JoinSemilattice (Lattice→JoinSemilattice (DistLattice→Lattice (CompOpenDistLattice .F-ob X))) + open Join (CompOpenDistLattice .F-ob X) + open JoinSemilattice (Lattice→JoinSemilattice (DistLattice→Lattice (CompOpenDistLattice .F-ob X))) open PosetStr (IndPoset .snd) hiding (_≤_) open LatticeTheory ⦃...⦄ -- ((DistLattice→Lattice (CompOpenDistLattice .F-ob X))) - private instance _ = (CompOpenDistLattice .F-ob X) .snd + private instance _ = (CompOpenDistLattice .F-ob X) .snd record AffineCover : Type (ℓ-suc ) where field @@ -419,7 +419,7 @@ -- TODO: A ℤ-functor is a qcqs-scheme if it is a Zariski sheaf and has an affine cover -- the structure sheaf - private COᵒᵖ = (DistLatticeCategory (CompOpenDistLattice .F-ob X)) ^op + private COᵒᵖ = (DistLatticeCategory (CompOpenDistLattice .F-ob X)) ^op compOpenIncl : {U V : CompactOpen X} V U V ⟧ᶜᵒ U ⟧ᶜᵒ N-ob (compOpenIncl {U = U} {V = V} V≤U) A (x , Vx≡D1) = x , path @@ -433,20 +433,20 @@ V .N-ob A x ∨l U .N-ob A x ≡⟨ cong (_∨l U .N-ob A x) Vx≡D1 D A 1r ∨l U .N-ob A x ≡⟨ 1lLeftAnnihilates∨l _ D A 1r - N-hom (compOpenIncl V≤U) φ = funExt λ x Σ≡Prop _ squash/ _ _) refl + N-hom (compOpenIncl V≤U) φ = funExt λ x Σ≡Prop _ squash/ _ _) refl compOpenInclId : {U : CompactOpen X} compOpenIncl (is-refl U) idTrans U ⟧ᶜᵒ - compOpenInclId = makeNatTransPath (funExt₂ _ _ Σ≡Prop _ squash/ _ _) refl)) + compOpenInclId = makeNatTransPath (funExt₂ _ _ Σ≡Prop _ squash/ _ _) refl)) compOpenInclSeq : {U V W : CompactOpen X} (U≤V : U V) (V≤W : V W) compOpenIncl (is-trans _ _ _ U≤V V≤W) compOpenIncl U≤V ●ᵛ compOpenIncl V≤W compOpenInclSeq _ _ = makeNatTransPath - (funExt₂ _ _ Σ≡Prop _ squash/ _ _) refl)) + (funExt₂ _ _ Σ≡Prop _ squash/ _ _) refl)) - 𝓞 : Functor COᵒᵖ (CommRingsCategory { = ℓ-suc }) - F-ob 𝓞 U = Γ .F-ob U ⟧ᶜᵒ - F-hom 𝓞 U≥V = Γ .F-hom (compOpenIncl U≥V) - F-id 𝓞 = cong (Γ .F-hom) compOpenInclId Γ .F-id - F-seq 𝓞 _ _ = cong (Γ .F-hom) (compOpenInclSeq _ _) Γ .F-seq _ _ + 𝓞 : Functor COᵒᵖ (CommRingsCategory { = ℓ-suc }) + F-ob 𝓞 U = Γ .F-ob U ⟧ᶜᵒ + F-hom 𝓞 U≥V = Γ .F-hom (compOpenIncl U≥V) + F-id 𝓞 = cong (Γ .F-hom) compOpenInclId Γ .F-id + F-seq 𝓞 _ _ = cong (Γ .F-hom) (compOpenInclSeq _ _) Γ .F-seq _ _ \ No newline at end of file diff --git a/Cubical.Categories.Isomorphism.html b/Cubical.Categories.Isomorphism.html index 7081585fdf..03fb5f2cd4 100644 --- a/Cubical.Categories.Isomorphism.html +++ b/Cubical.Categories.Isomorphism.html @@ -207,38 +207,38 @@ op-Iso f .snd .ret = f .snd .ret -module _ {C : Category ℓC ℓC'}{D : Category ℓD ℓD'}{F : Functor C D} where +module _ {C : Category ℓC ℓC'}{D : Category ℓD ℓD'}{F : Functor C D} where open Category hiding (_∘_) open isIso - open Functor + open Functor - F-PresIsIso : {x y : C .ob}{f : C [ x , y ]} isIso C f isIso D (F .F-hom f) - F-PresIsIso f .inv = F . F-hom (f .inv) - F-PresIsIso f .sec = sym (F .F-seq (f .inv) _) cong (F .F-hom) (f .sec) F .F-id - F-PresIsIso f .ret = sym (F .F-seq _ (f .inv)) cong (F .F-hom) (f .ret) F .F-id + F-PresIsIso : {x y : C .ob}{f : C [ x , y ]} isIso C f isIso D (F .F-hom f) + F-PresIsIso f .inv = F . F-hom (f .inv) + F-PresIsIso f .sec = sym (F .F-seq (f .inv) _) cong (F .F-hom) (f .sec) F .F-id + F-PresIsIso f .ret = sym (F .F-seq _ (f .inv)) cong (F .F-hom) (f .ret) F .F-id - F-Iso : {x y : C .ob} CatIso C x y CatIso D (F .F-ob x) (F .F-ob y) - F-Iso f .fst = F . F-hom (f .fst) + F-Iso : {x y : C .ob} CatIso C x y CatIso D (F .F-ob x) (F .F-ob y) + F-Iso f .fst = F . F-hom (f .fst) F-Iso f .snd = F-PresIsIso (f .snd) F-Iso-PresId : {x : C .ob} F-Iso (idCatIso {x = x}) idCatIso - F-Iso-PresId = CatIso≡ _ _ (F .F-id) + F-Iso-PresId = CatIso≡ _ _ (F .F-id) F-Iso-Pres⋆ : {x y z : C .ob} (f : CatIso C x y)(g : CatIso C y z) F-Iso (⋆Iso f g) ⋆Iso (F-Iso f) (F-Iso g) - F-Iso-Pres⋆ _ _ = CatIso≡ _ _ (F .F-seq _ _) + F-Iso-Pres⋆ _ _ = CatIso≡ _ _ (F .F-seq _ _) - F-pathToIso : {x y : C .ob} (p : x y) F-Iso (pathToIso p) pathToIso (cong (F .F-ob) p) - F-pathToIso p = J y p F-Iso (pathToIso p) pathToIso (cong (F .F-ob) p)) F-pathToIso-refl p + F-pathToIso : {x y : C .ob} (p : x y) F-Iso (pathToIso p) pathToIso (cong (F .F-ob) p) + F-pathToIso p = J y p F-Iso (pathToIso p) pathToIso (cong (F .F-ob) p)) F-pathToIso-refl p where - F-pathToIso-refl : {x : C .ob} F-Iso (pathToIso {x = x} refl) pathToIso (cong (F .F-ob) refl) + F-pathToIso-refl : {x : C .ob} F-Iso (pathToIso {x = x} refl) pathToIso (cong (F .F-ob) refl) F-pathToIso-refl = cong F-Iso pathToIso-refl F-Iso-PresId sym pathToIso-refl - F-pathToIso-∘ : {x y : C .ob} F-Iso pathToIso {x = x} {y = y} pathToIso cong (F .F-ob) + F-pathToIso-∘ : {x y : C .ob} F-Iso pathToIso {x = x} {y = y} pathToIso cong (F .F-ob) F-pathToIso-∘ i p = F-pathToIso p i \ No newline at end of file diff --git a/Cubical.Categories.Limits.Initial.html b/Cubical.Categories.Limits.Initial.html index 347c5bd42c..5ecf7b8287 100644 --- a/Cubical.Categories.Limits.Initial.html +++ b/Cubical.Categories.Limits.Initial.html @@ -63,24 +63,24 @@ -- i.e. all initial objects are equal. isPropInitial : (hC : isUnivalent C) isProp Initial isPropInitial hC x y = - Σ≡Prop isPropIsInitial (CatIsoToPath hC (initialToIso x y)) + Σ≡Prop isPropIsInitial (CatIsoToPath hC (initialToIso x y)) -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) where +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} (F : Functor C D) where open Category - open Functor - open NaturalBijection - open _⊣_ + open Functor + open NaturalBijection + open _⊣_ open _≅_ preservesInitial : Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) - preservesInitial = (x : ob C) isInitial C x isInitial D (F-ob F x) + preservesInitial = (x : ob C) isInitial C x isInitial D (F-ob F x) - isLeftAdjoint→preservesInitial : isLeftAdjoint F preservesInitial - fst (isLeftAdjoint→preservesInitial (G , F⊣G) x initX y) = _♯ F⊣G (fst (initX (F-ob G y))) + isLeftAdjoint→preservesInitial : isLeftAdjoint F preservesInitial + fst (isLeftAdjoint→preservesInitial (G , F⊣G) x initX y) = _♯ F⊣G (fst (initX (F-ob G y))) snd (isLeftAdjoint→preservesInitial (G , F⊣G) x initX y) ψ = - _♯ F⊣G (fst (initX (F-ob G y))) - ≡⟨ cong (F⊣G ) (snd (initX (F-ob G y)) (_♭ F⊣G ψ)) - _♯ F⊣G (_♭ F⊣G ψ) - ≡⟨ leftInv (adjIso F⊣G) ψ + _♯ F⊣G (fst (initX (F-ob G y))) + ≡⟨ cong (F⊣G ) (snd (initX (F-ob G y)) (_♭ F⊣G ψ)) + _♯ F⊣G (_♭ F⊣G ψ) + ≡⟨ leftInv (adjIso F⊣G) ψ ψ \ No newline at end of file diff --git a/Cubical.Categories.Limits.Limits.html b/Cubical.Categories.Limits.Limits.html index 2f989620a0..c71b778285 100644 --- a/Cubical.Categories.Limits.Limits.html +++ b/Cubical.Categories.Limits.Limits.html @@ -23,59 +23,59 @@ module _ {ℓJ ℓJ' ℓC ℓC' : Level} {J : Category ℓJ ℓJ'} {C : Category ℓC ℓC'} where open Category - open Functor + open Functor open NatTrans private = ℓ-max (ℓ-max (ℓ-max ℓJ ℓJ') ℓC) ℓC' - record Cone (D : Functor J C) (c : ob C) : Type (ℓ-max (ℓ-max ℓJ ℓJ') ℓC') where + record Cone (D : Functor J C) (c : ob C) : Type (ℓ-max (ℓ-max ℓJ ℓJ') ℓC') where constructor cone field - coneOut : (v : ob J) C [ c , F-ob D v ] + coneOut : (v : ob J) C [ c , F-ob D v ] coneOutCommutes : {u v : ob J} (e : J [ u , v ]) - coneOut u ⋆⟨ C D .F-hom e coneOut v + coneOut u ⋆⟨ C D .F-hom e coneOut v open Cone - cone≡ : {D : Functor J C} {c : ob C} {c1 c2 : Cone D c} + cone≡ : {D : Functor J C} {c : ob C} {c1 c2 : Cone D c} ((v : ob J) coneOut c1 v coneOut c2 v) c1 c2 coneOut (cone≡ h i) v = h v i coneOutCommutes (cone≡ {D} {_} {c1} {c2} h i) {u} {v} e = - isProp→PathP j isSetHom C (h u j ⋆⟨ C D .F-hom e) (h v j)) + isProp→PathP j isSetHom C (h u j ⋆⟨ C D .F-hom e) (h v j)) (coneOutCommutes c1 e) (coneOutCommutes c2 e) i -- dependent versions - conePathP : {D₁ D₂ : Functor J C} {c₁ c₂ : ob C} {cc₁ : Cone D₁ c₁} {cc₂ : Cone D₂ c₂} + conePathP : {D₁ D₂ : Functor J C} {c₁ c₂ : ob C} {cc₁ : Cone D₁ c₁} {cc₂ : Cone D₂ c₂} {p : D₁ D₂} {q : c₁ c₂} - (∀ v PathP i C [ q i , p i .F-ob v ]) (cc₁ .coneOut v) (cc₂ .coneOut v)) + (∀ v PathP i C [ q i , p i .F-ob v ]) (cc₁ .coneOut v) (cc₂ .coneOut v)) PathP i Cone (p i) (q i)) cc₁ cc₂ coneOut (conePathP coneOutPathP i) v = coneOutPathP v i coneOutCommutes (conePathP {cc₁ = cc₁} {cc₂ = cc₂} {p = p} coneOutPathP i) {u} {v} e = - isProp→PathP j isSetHom C (coneOutPathP u j ⋆⟨ C p j .F-hom e) + isProp→PathP j isSetHom C (coneOutPathP u j ⋆⟨ C p j .F-hom e) (coneOutPathP v j)) (coneOutCommutes cc₁ e) (coneOutCommutes cc₂ e) i - conePathPOb : {D : Functor J C} {c c' : ob C} {c1 : Cone D c} {c2 : Cone D c'} {p : c c'} - (∀ (v : ob J) PathP i C [ p i , F-ob D v ]) (coneOut c1 v) (coneOut c2 v)) + conePathPOb : {D : Functor J C} {c c' : ob C} {c1 : Cone D c} {c2 : Cone D c'} {p : c c'} + (∀ (v : ob J) PathP i C [ p i , F-ob D v ]) (coneOut c1 v) (coneOut c2 v)) PathP i Cone D (p i)) c1 c2 conePathPOb coneOutPathP = conePathP {p = refl} coneOutPathP - conePathPDiag : {D₁ D₂ : Functor J C} {c : ob C} {cc₁ : Cone D₁ c} {cc₂ : Cone D₂ c} {p : D₁ D₂} - (∀ v PathP i C [ c , p i .F-ob v ]) (cc₁ .coneOut v) (cc₂ .coneOut v)) + conePathPDiag : {D₁ D₂ : Functor J C} {c : ob C} {cc₁ : Cone D₁ c} {cc₂ : Cone D₂ c} {p : D₁ D₂} + (∀ v PathP i C [ c , p i .F-ob v ]) (cc₁ .coneOut v) (cc₂ .coneOut v)) PathP i Cone (p i) c) cc₁ cc₂ conePathPDiag coneOutPathP = conePathP {q = refl} coneOutPathP -- TODO: can we automate this a bit? - isSetCone : (D : Functor J C) (c : ob C) isSet (Cone D c) + isSetCone : (D : Functor J C) (c : ob C) isSet (Cone D c) isSetCone D c = isSetRetract toConeΣ fromConeΣ _ refl) (isSetΣSndProp (isSetΠ _ isSetHom C)) _ isPropImplicitΠ2 _ _ isPropΠ _ isSetHom C _ _)))) where - ConeΣ = Σ[ f ((v : ob J) C [ c , F-ob D v ]) ] - ({u v : ob J} (e : J [ u , v ]) f u ⋆⟨ C D .F-hom e f v) + ConeΣ = Σ[ f ((v : ob J) C [ c , F-ob D v ]) ] + ({u v : ob J} (e : J [ u , v ]) f u ⋆⟨ C D .F-hom e f v) toConeΣ : Cone D c ConeΣ fst (toConeΣ x) = coneOut x @@ -85,72 +85,72 @@ coneOut (fromConeΣ x) = fst x coneOutCommutes (fromConeΣ x) = snd x - preCompCone : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} + preCompCone : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} Cone D c2 Cone D c1 coneOut (preCompCone f cc) v = f ⋆⟨ C coneOut cc v coneOutCommutes (preCompCone f cc) e = ⋆Assoc C _ _ _ cong x f ⋆⟨ C x) (coneOutCommutes cc e) - _★_ : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} Cone D c2 Cone D c1 + _★_ : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} Cone D c2 Cone D c1 _★_ = preCompCone - natTransPostCompCone : {c : ob C} {D₁ D₂ : Functor J C} (α : NatTrans D₁ D₂) + natTransPostCompCone : {c : ob C} {D₁ D₂ : Functor J C} (α : NatTrans D₁ D₂) Cone D₁ c Cone D₂ c coneOut (natTransPostCompCone α cc) u = cc .coneOut u ⋆⟨ C α .N-ob u coneOutCommutes (natTransPostCompCone {D₁ = D₁} {D₂ = D₂} α cc) {u = u} {v = v} e = - cc .coneOut u ⋆⟨ C α .N-ob u ⋆⟨ C D₂ .F-hom e + cc .coneOut u ⋆⟨ C α .N-ob u ⋆⟨ C D₂ .F-hom e ≡⟨ ⋆Assoc C _ _ _ - cc .coneOut u ⋆⟨ C (α .N-ob u ⋆⟨ C D₂ .F-hom e) + cc .coneOut u ⋆⟨ C (α .N-ob u ⋆⟨ C D₂ .F-hom e) ≡⟨ cong x cc .coneOut u ⋆⟨ C x) (sym (α .N-hom e)) - cc .coneOut u ⋆⟨ C (D₁ .F-hom e ⋆⟨ C α .N-ob v) + cc .coneOut u ⋆⟨ C (D₁ .F-hom e ⋆⟨ C α .N-ob v) ≡⟨ sym (⋆Assoc C _ _ _) - cc .coneOut u ⋆⟨ C D₁ .F-hom e ⋆⟨ C α .N-ob v + cc .coneOut u ⋆⟨ C D₁ .F-hom e ⋆⟨ C α .N-ob v ≡⟨ cong x x ⋆⟨ C α .N-ob v) (cc .coneOutCommutes e) cc .coneOut v ⋆⟨ C α .N-ob v - _★ₙₜ_ : {c : ob C} {D₁ D₂ : Functor J C} Cone D₁ c NatTrans D₁ D₂ Cone D₂ c + _★ₙₜ_ : {c : ob C} {D₁ D₂ : Functor J C} Cone D₁ c NatTrans D₁ D₂ Cone D₂ c _★ₙₜ_ = flip natTransPostCompCone - isConeMor : {c1 c2 : ob C} {D : Functor J C} + isConeMor : {c1 c2 : ob C} {D : Functor J C} (cc1 : Cone D c1) (cc2 : Cone D c2) C [ c1 , c2 ] Type (ℓ-max ℓJ ℓC') isConeMor cc1 cc2 f = (v : ob J) f ⋆⟨ C coneOut cc2 v coneOut cc1 v - isPropIsConeMor : {c1 c2 : ob C} {D : Functor J C} + isPropIsConeMor : {c1 c2 : ob C} {D : Functor J C} (cc1 : Cone D c1) (cc2 : Cone D c2) (f : C [ c1 , c2 ]) isProp (isConeMor cc1 cc2 f) isPropIsConeMor cc1 cc2 f = isPropΠ _ isSetHom C _ _) - isConeMorId : {c : ob C} {D : Functor J C} (cc : Cone D c) + isConeMorId : {c : ob C} {D : Functor J C} (cc : Cone D c) isConeMor cc cc (id C) isConeMorId _ _ = ⋆IdL C _ - isConeMorSeq : {c1 c2 c3 : ob C} {D : Functor J C} + isConeMorSeq : {c1 c2 c3 : ob C} {D : Functor J C} (cc1 : Cone D c1) (cc2 : Cone D c2) (cc3 : Cone D c3) {f : C [ c1 , c2 ]} {g : C [ c2 , c3 ]} isConeMor cc1 cc2 f isConeMor cc2 cc3 g isConeMor cc1 cc3 (f ⋆⟨ C g) isConeMorSeq cc1 cc2 cc3 {f} {g} isConeMorF isConeMorG v = ⋆Assoc C _ _ _ ∙∙ cong x f ⋆⟨ C x) (isConeMorG v) ∙∙ isConeMorF v - preCompConeMor : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} (cc : Cone D c2) + preCompConeMor : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} (cc : Cone D c2) isConeMor (f cc) cc f preCompConeMor f cc v = refl - isLimCone : (D : Functor J C) (c0 : ob C) Cone D c0 Type + isLimCone : (D : Functor J C) (c0 : ob C) Cone D c0 Type isLimCone D c0 cc0 = (c : ob C) (cc : Cone D c) ∃![ f C [ c , c0 ] ] isConeMor cc cc0 f - isPropIsLimCone : (D : Functor J C) (c0 : ob C) (cc0 : Cone D c0) + isPropIsLimCone : (D : Functor J C) (c0 : ob C) (cc0 : Cone D c0) isProp (isLimCone D c0 cc0) isPropIsLimCone D c0 cc0 = isPropΠ2 λ _ _ isProp∃! - preCompUnique : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} (cc : Cone D c2) + preCompUnique : {c1 c2 : ob C} (f : C [ c1 , c2 ]) {D : Functor J C} (cc : Cone D c2) isLimCone D c2 cc (g : C [ c1 , c2 ]) isConeMor (f cc) cc g g f preCompUnique f cc ccIsLimCone g gIsConeMor = cong fst (isContr→isProp (ccIsLimCone _ (f cc)) (g , gIsConeMor) (f , preCompConeMor f cc)) - record LimCone (D : Functor J C) : Type where + record LimCone (D : Functor J C) : Type where constructor climCone field @@ -158,11 +158,11 @@ limCone : Cone D lim univProp : isLimCone D lim limCone - limOut : (v : ob J) C [ lim , D .F-ob v ] + limOut : (v : ob J) C [ lim , D .F-ob v ] limOut = coneOut limCone limOutCommutes : {u v : ob J} (e : J [ u , v ]) - limOut u ⋆⟨ C D .F-hom e limOut v + limOut u ⋆⟨ C D .F-hom e limOut v limOutCommutes = coneOutCommutes limCone limArrow : (c : ob C) (cc : Cone D c) C [ c , lim ] @@ -177,35 +177,35 @@ limArrowUnique c cc k hk = cong fst (univProp c cc .snd (k , hk)) open LimCone - limOfArrowsCone : {D₁ D₂ : Functor J C} + limOfArrowsCone : {D₁ D₂ : Functor J C} (CC₁ : LimCone D₁) NatTrans D₁ D₂ Cone D₂ (CC₁ .lim) coneOut (limOfArrowsCone {D₁} {D₂} CC₁ α) v = limOut CC₁ v ⋆⟨ C α .N-ob v coneOutCommutes (limOfArrowsCone {D₁} {D₂} CC₁ α) {u = u} {v = v} e = - limOut CC₁ u ⋆⟨ C α .N-ob u ⋆⟨ C D₂ .F-hom e ≡⟨ ⋆Assoc C _ _ _ - limOut CC₁ u ⋆⟨ C (α .N-ob u ⋆⟨ C D₂ .F-hom e) ≡⟨ cong x seq' C (limOut CC₁ u) x) (sym (α .N-hom e)) - limOut CC₁ u ⋆⟨ C (D₁ .F-hom e ⋆⟨ C α .N-ob v) ≡⟨ sym (⋆Assoc C _ _ _) - limOut CC₁ u ⋆⟨ C D₁ .F-hom e ⋆⟨ C α .N-ob v ≡⟨ cong x x ⋆⟨ C α .N-ob v) (limOutCommutes CC₁ e) + limOut CC₁ u ⋆⟨ C α .N-ob u ⋆⟨ C D₂ .F-hom e ≡⟨ ⋆Assoc C _ _ _ + limOut CC₁ u ⋆⟨ C (α .N-ob u ⋆⟨ C D₂ .F-hom e) ≡⟨ cong x seq' C (limOut CC₁ u) x) (sym (α .N-hom e)) + limOut CC₁ u ⋆⟨ C (D₁ .F-hom e ⋆⟨ C α .N-ob v) ≡⟨ sym (⋆Assoc C _ _ _) + limOut CC₁ u ⋆⟨ C D₁ .F-hom e ⋆⟨ C α .N-ob v ≡⟨ cong x x ⋆⟨ C α .N-ob v) (limOutCommutes CC₁ e) limOut CC₁ v ⋆⟨ C α .N-ob v - limOfArrows : {D₁ D₂ : Functor J C} + limOfArrows : {D₁ D₂ : Functor J C} (CC₁ : LimCone D₁) (CC₂ : LimCone D₂) NatTrans D₁ D₂ C [ CC₁ .lim , CC₂ .lim ] limOfArrows {D₁} {D₂} CC₁ CC₂ α = limArrow CC₂ (CC₁ .lim) (limOfArrowsCone CC₁ α) - limOfArrowsOut : {D₁ D₂ : Functor J C} + limOfArrowsOut : {D₁ D₂ : Functor J C} (CC₁ : LimCone D₁) (CC₂ : LimCone D₂) (α : NatTrans D₁ D₂) (u : ob J) limOfArrows CC₁ CC₂ α ⋆⟨ C limOut CC₂ u limOut CC₁ u ⋆⟨ C α .N-ob u limOfArrowsOut _ CC₂ _ _ = limArrowCommutes CC₂ _ _ _ - limOfArrowsId : {D : Functor J C} (CC : LimCone D) + limOfArrowsId : {D : Functor J C} (CC : LimCone D) limOfArrows CC CC (idTrans D) id C limOfArrowsId CC = limArrowUnique CC _ _ _ λ v ⋆IdL C _ sym (⋆IdR C _) - limOfArrowsSeq : {D₁ D₂ D₃ : Functor J C} + limOfArrowsSeq : {D₁ D₂ D₃ : Functor J C} (CC₁ : LimCone D₁) (CC₂ : LimCone D₂) (CC₃ : LimCone D₃) (α : NatTrans D₁ D₂) (β : NatTrans D₂ D₃) limOfArrows CC₁ CC₃ (α ●ᵛ β) @@ -227,7 +227,7 @@ ≡⟨ ⋆Assoc C _ _ _ limOut CC₁ u ⋆⟨ C (α .N-ob u ⋆⟨ C β .N-ob u) - limArrowCompLimOfArrows : {D₁ D₂ : Functor J C} + limArrowCompLimOfArrows : {D₁ D₂ : Functor J C} (CC₁ : LimCone D₁) (CC₂ : LimCone D₂) (α : NatTrans D₁ D₂) (c : ob C) (cc : Cone D₁ c) @@ -250,7 +250,7 @@ -- any two limits are isomorphic up to a unique cone isomorphism open isIso - LimIso : (D : Functor J C) (L₁ L₂ : LimCone D) + LimIso : (D : Functor J C) (L₁ L₂ : LimCone D) ∃![ e CatIso C (lim L₁) (lim L₂) ] isConeMor (limCone L₁) (limCone L₂) (fst e) fst (fst (fst (LimIso D L₁ L₂))) = limArrow L₂ _ (limCone L₁) inv (snd (fst (fst (LimIso D L₁ L₂)))) = limArrow L₁ _ (limCone L₂) @@ -290,31 +290,31 @@ coneOut (limCone L₁) v snd (fst (LimIso D L₁ L₂)) = limArrowCommutes L₂ _ _ - snd (LimIso D L₁ L₂) (e , isConeMorE) = Σ≡Prop + snd (LimIso D L₁ L₂) (e , isConeMorE) = Σ≡Prop _ isPropIsConeMor (limCone L₁) (limCone L₂) _) (CatIso≡ _ _ (limArrowUnique L₂ _ _ (fst e) isConeMorE)) -- if the index category of the diagram has an initial object, -- we get a canonical limiting cone - Initial→LimCone : (D : Functor J C) Initial J LimCone D - lim (Initial→LimCone D (j , isInitJ)) = D .F-ob j - coneOut (limCone (Initial→LimCone D (j , isInitJ))) k = D .F-hom (isInitJ k .fst) + Initial→LimCone : (D : Functor J C) Initial J LimCone D + lim (Initial→LimCone D (j , isInitJ)) = D .F-ob j + coneOut (limCone (Initial→LimCone D (j , isInitJ))) k = D .F-hom (isInitJ k .fst) coneOutCommutes (limCone (Initial→LimCone D (j , isInitJ))) f = - sym (D .F-seq _ _) cong (D .F-hom) (sym (isInitJ _ .snd _)) + sym (D .F-seq _ _) cong (D .F-hom) (sym (isInitJ _ .snd _)) fst (fst (univProp (Initial→LimCone D (j , isInitJ)) c cc)) = cc .coneOut j -- canonical arrow c → D(j) snd (fst (univProp (Initial→LimCone D (j , isInitJ)) c cc)) k = cc .coneOutCommutes (isInitJ k .fst) -- is a cone morphism snd (univProp (Initial→LimCone D (j , isInitJ)) c cc) (f , isConeMorF) = -- and indeed unique - Σ≡Prop + Σ≡Prop _ isPropIsConeMor cc (limCone (Initial→LimCone D (j , isInitJ))) _) - (sym (isConeMorF j) ∙∙ cong x f ⋆⟨ C x) (subst x D .F-hom x id C) - (sym (isInitJ j .snd _)) (D .F-id)) + (sym (isConeMorF j) ∙∙ cong x f ⋆⟨ C x) (subst x D .F-hom x id C) + (sym (isInitJ j .snd _)) (D .F-id)) ∙∙ ⋆IdR C f) -- cones that respect isomorphisms are limiting cones - Iso→LimCone : {D : Functor J C} {c₁ c₂ : ob C} (cc₁ : Cone D c₁) (e : CatIso C c₁ c₂) + Iso→LimCone : {D : Functor J C} {c₁ c₂ : ob C} (cc₁ : Cone D c₁) (e : CatIso C c₁ c₂) isLimCone _ _ cc₁ (cc₂ : Cone D c₂) isConeMor cc₁ cc₂ (e .fst) @@ -324,7 +324,7 @@ snd (fst (Iso→LimCone cc₁ e isLimConeCC₁ cc₂ isConeMorE d cd)) = isConeMorSeq cd cc₁ cc₂ (isLimConeCC₁ d cd .fst .snd) isConeMorE snd (Iso→LimCone cc₁ e isLimConeCC₁ cc₂ isConeMorE d cd) (f , isConeMorF) = - Σ≡Prop (isPropIsConeMor cd cc₂) path + Σ≡Prop (isPropIsConeMor cd cc₂) path where isConeMorE⁻¹ : isConeMor cc₂ cc₁ (e .snd .inv) isConeMorE⁻¹ v = @@ -348,60 +348,60 @@ -- A category is complete if it has all limits Limits : {ℓJ ℓJ' ℓC ℓC' : Level} Category ℓC ℓC' Type _ -Limits {ℓJ} {ℓJ'} C = (J : Category ℓJ ℓJ') (D : Functor J C) LimCone D +Limits {ℓJ} {ℓJ'} C = (J : Category ℓJ ℓJ') (D : Functor J C) LimCone D hasLimits : {ℓJ ℓJ' ℓC ℓC' : Level} Category ℓC ℓC' Type _ -hasLimits {ℓJ} {ℓJ'} C = (J : Category ℓJ ℓJ') (D : Functor J C) LimCone D ∥₁ +hasLimits {ℓJ} {ℓJ'} C = (J : Category ℓJ ℓJ') (D : Functor J C) LimCone D ∥₁ -- Limits of a specific shape J in a category C LimitsOfShape : {ℓJ ℓJ' ℓC ℓC' : Level} Category ℓJ ℓJ' Category ℓC ℓC' Type _ -LimitsOfShape J C = (D : Functor J C) LimCone D +LimitsOfShape J C = (D : Functor J C) LimCone D -- precomposition with a functor and preservation of limits module _ {ℓJ ℓJ' ℓC1 ℓC1' ℓC2 ℓC2' : Level} {C1 : Category ℓC1 ℓC1'} {C2 : Category ℓC2 ℓC2'} - (F : Functor C1 C2) where + (F : Functor C1 C2) where open Category - open Functor + open Functor open Cone -- same as F-cone!!! - F-cone : {J : Category ℓJ ℓJ'} {D : Functor J C1} {x : ob C1} - Cone D x Cone (funcComp F D) (F .F-ob x) - coneOut (F-cone ccx) v = F .F-hom (coneOut ccx v) + F-cone : {J : Category ℓJ ℓJ'} {D : Functor J C1} {x : ob C1} + Cone D x Cone (funcComp F D) (F .F-ob x) + coneOut (F-cone ccx) v = F .F-hom (coneOut ccx v) coneOutCommutes (F-cone ccx) e = - sym (F-seq F (coneOut ccx _) _) cong (F .F-hom) (coneOutCommutes ccx e) + sym (F-seq F (coneOut ccx _) _) cong (F .F-hom) (coneOutCommutes ccx e) preservesLimits : Type _ - preservesLimits = {J : Category ℓJ ℓJ'} {D : Functor J C1} {L : ob C1} + preservesLimits = {J : Category ℓJ ℓJ'} {D : Functor J C1} {L : ob C1} (ccL : Cone D L) - isLimCone _ _ ccL isLimCone (funcComp F D) (F .F-ob L) (F-cone ccL) + isLimCone _ _ ccL isLimCone (funcComp F D) (F .F-ob L) (F-cone ccL) -- characterizing limit preserving functors open LimCone preservesLimitsChar : (L₁ : Limits {ℓJ} {ℓJ'} C1) (L₂ : Limits {ℓJ} {ℓJ'} C2) - (e : J D CatIso C2 (L₂ J (F ∘F D) .lim) (F .F-ob (L₁ J D .lim))) - (∀ J D isConeMor (L₂ J (F ∘F D) .limCone) (F-cone (L₁ J D .limCone)) (e J D .fst)) + (e : J D CatIso C2 (L₂ J (F ∘F D) .lim) (F .F-ob (L₁ J D .lim))) + (∀ J D isConeMor (L₂ J (F ∘F D) .limCone) (F-cone (L₁ J D .limCone)) (e J D .fst)) preservesLimits preservesLimitsChar L₁ L₂ e isConeMorE {J = J} {D = D} {L = c} cc isLimConeCC = - Iso→LimCone (L₂ J (F ∘F D) .limCone) f (L₂ J (F ∘F D) .univProp) (F-cone cc) isConeMorF + Iso→LimCone (L₂ J (F ∘F D) .limCone) f (L₂ J (F ∘F D) .univProp) (F-cone cc) isConeMorF where theCLimCone : LimCone D lim theCLimCone = c limCone theCLimCone = cc univProp theCLimCone = isLimConeCC - f : CatIso C2 (lim (L₂ J (funcComp F D))) (F .F-ob c) + f : CatIso C2 (lim (L₂ J (funcComp F D))) (F .F-ob c) f = ⋆Iso (e J D) (F-Iso {F = F} (LimIso D (L₁ J D) theCLimCone .fst .fst)) - isConeMorF : isConeMor (L₂ J (funcComp F D) .limCone) (F-cone cc) (f .fst) - isConeMorF = isConeMorSeq (L₂ J (funcComp F D) .limCone) + isConeMorF : isConeMor (L₂ J (funcComp F D) .limCone) (F-cone cc) (f .fst) + isConeMorF = isConeMorSeq (L₂ J (funcComp F D) .limCone) (F-cone (L₁ J D .limCone)) (F-cone cc) (isConeMorE J D) - v F-triangle F (limArrowCommutes theCLimCone _ _ _)) + v F-triangle F (limArrowCommutes theCLimCone _ _ _)) -- TODO: prove that right adjoints preserve limits \ No newline at end of file diff --git a/Cubical.Categories.Limits.Pullback.html b/Cubical.Categories.Limits.Pullback.html index 8574e97288..aedb902b35 100644 --- a/Cubical.Categories.Limits.Pullback.html +++ b/Cubical.Categories.Limits.Pullback.html @@ -21,7 +21,7 @@ module _ (C : Category ℓ') where open Category C - open Functor + open Functor record Cospan : Type (ℓ-max ℓ') where constructor cospan @@ -96,31 +96,31 @@ -- Pullbacks from limits module _ {C : Category ℓ'} where open Category C - open Functor + open Functor open Pullback open LimCone open Cone open Cospan - Cospan→Func : Cospan C Functor CospanCat C - Cospan→Func (cospan l m r f g) .F-ob = l - Cospan→Func (cospan l m r f g) .F-ob = m - Cospan→Func (cospan l m r f g) .F-ob = r - Cospan→Func (cospan l m r f g) .F-hom {} {} k = f - Cospan→Func (cospan l m r f g) .F-hom {} {} k = g - Cospan→Func (cospan l m r f g) .F-hom {} {} k = id - Cospan→Func (cospan l m r f g) .F-hom {} {} k = id - Cospan→Func (cospan l m r f g) .F-hom {} {} k = id - Cospan→Func (cospan l m r f g) .F-id {} = refl - Cospan→Func (cospan l m r f g) .F-id {} = refl - Cospan→Func (cospan l m r f g) .F-id {} = refl - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdR _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) - Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdR _) + Cospan→Func : Cospan C Functor CospanCat C + Cospan→Func (cospan l m r f g) .F-ob = l + Cospan→Func (cospan l m r f g) .F-ob = m + Cospan→Func (cospan l m r f g) .F-ob = r + Cospan→Func (cospan l m r f g) .F-hom {} {} k = f + Cospan→Func (cospan l m r f g) .F-hom {} {} k = g + Cospan→Func (cospan l m r f g) .F-hom {} {} k = id + Cospan→Func (cospan l m r f g) .F-hom {} {} k = id + Cospan→Func (cospan l m r f g) .F-hom {} {} k = id + Cospan→Func (cospan l m r f g) .F-id {} = refl + Cospan→Func (cospan l m r f g) .F-id {} = refl + Cospan→Func (cospan l m r f g) .F-id {} = refl + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdR _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdL _) + Cospan→Func (cospan l m r f g) .F-seq {} {} {} φ ψ = sym (⋆IdR _) LimitsOfShapeCospanCat→Pullbacks : LimitsOfShape CospanCat C Pullbacks C pbOb (LimitsOfShapeCospanCat→Pullbacks H cspn) = lim (H (Cospan→Func cspn)) diff --git a/Cubical.Categories.Limits.RightKan.html b/Cubical.Categories.Limits.RightKan.html index cbcba3dcae..2c5b98825e 100644 --- a/Cubical.Categories.Limits.RightKan.html +++ b/Cubical.Categories.Limits.RightKan.html @@ -28,160 +28,160 @@ {M : Category ℓM ℓM'} {A : Category ℓA ℓA'} (limitA : Limits {ℓ-max ℓC' ℓM} {ℓ-max ℓC' ℓM'} A) - (K : Functor M C) - (T : Functor M A) + (K : Functor M C) + (T : Functor M A) where open Category - open Functor + open Functor open Cone open LimCone _↓Diag : ob C Category (ℓ-max ℓC' ℓM) (ℓ-max ℓC' ℓM') - ob (x ↓Diag) = Σ[ u ob M ] C [ x , K .F-ob u ] - Hom[_,_] (x ↓Diag) (u , f) (v , g) = Σ[ h M [ u , v ] ] f ⋆⟨ C K .F-hom h g - id (x ↓Diag) {x = (u , f)} = id M , cong (seq' C f) (F-id K) ⋆IdR C f + ob (x ↓Diag) = Σ[ u ob M ] C [ x , K .F-ob u ] + Hom[_,_] (x ↓Diag) (u , f) (v , g) = Σ[ h M [ u , v ] ] f ⋆⟨ C K .F-hom h g + id (x ↓Diag) {x = (u , f)} = id M , cong (seq' C f) (F-id K) ⋆IdR C f _⋆_ (x ↓Diag) {x = (u , f)} (h , hComm) (k , kComm) = (h ⋆⟨ M k) - , cong (seq' C f) (F-seq K h k) + , cong (seq' C f) (F-seq K h k) sym (⋆Assoc C _ _ _) - cong l seq' C l (F-hom K k)) hComm + cong l seq' C l (F-hom K k)) hComm kComm - ⋆IdL (x ↓Diag) _ = Σ≡Prop _ isSetHom C _ _) (⋆IdL M _) - ⋆IdR (x ↓Diag) _ = Σ≡Prop _ isSetHom C _ _) (⋆IdR M _) - ⋆Assoc (x ↓Diag) _ _ _ = Σ≡Prop _ isSetHom C _ _) (⋆Assoc M _ _ _) + ⋆IdL (x ↓Diag) _ = Σ≡Prop _ isSetHom C _ _) (⋆IdL M _) + ⋆IdR (x ↓Diag) _ = Σ≡Prop _ isSetHom C _ _) (⋆IdR M _) + ⋆Assoc (x ↓Diag) _ _ _ = Σ≡Prop _ isSetHom C _ _) (⋆Assoc M _ _ _) isSetHom (x ↓Diag) = isSetΣSndProp (isSetHom M) λ _ isSetHom C _ _ private - i : (x : ob C) Functor (x ↓Diag) M - F-ob (i x) = fst - F-hom (i x) = fst - F-id (i x) = refl - F-seq (i x) _ _ = refl + i : (x : ob C) Functor (x ↓Diag) M + F-ob (i x) = fst + F-hom (i x) = fst + F-id (i x) = refl + F-seq (i x) _ _ = refl - j : {x y : ob C} (f : C [ x , y ]) Functor (y ↓Diag) (x ↓Diag) - F-ob (j f) (u , g) = u , f ⋆⟨ C g - F-hom (j f) (h , hComm) = h , ⋆Assoc C _ _ _ cong (seq' C f) hComm - F-id (j f) = Σ≡Prop _ isSetHom C _ _) refl - F-seq (j f) _ _ = Σ≡Prop _ isSetHom C _ _) refl + j : {x y : ob C} (f : C [ x , y ]) Functor (y ↓Diag) (x ↓Diag) + F-ob (j f) (u , g) = u , f ⋆⟨ C g + F-hom (j f) (h , hComm) = h , ⋆Assoc C _ _ _ cong (seq' C f) hComm + F-id (j f) = Σ≡Prop _ isSetHom C _ _) refl + F-seq (j f) _ _ = Σ≡Prop _ isSetHom C _ _) refl - T* : (x : ob C) Functor (x ↓Diag) A - T* x = funcComp T (i x) + T* : (x : ob C) Functor (x ↓Diag) A + T* x = funcComp T (i x) RanOb : ob C ob A RanOb x = limitA (x ↓Diag) (T* x) .lim RanCone : {x y : ob C} C [ x , y ] Cone (T* y) (RanOb x) - coneOut (RanCone {x = x} f) v = limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob v) - coneOutCommutes (RanCone {x = x} f) h = limOutCommutes (limitA (x ↓Diag) (T* x)) (j f .F-hom h) + coneOut (RanCone {x = x} f) v = limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob v) + coneOutCommutes (RanCone {x = x} f) h = limOutCommutes (limitA (x ↓Diag) (T* x)) (j f .F-hom h) private -- technical lemmas for proving functoriality RanConeRefl : {x} v limOut (limitA (x ↓Diag) (T* x)) v - limOut (limitA (x ↓Diag) (T* x)) (j (id C) .F-ob v) + limOut (limitA (x ↓Diag) (T* x)) (j (id C) .F-ob v) RanConeRefl {x = x} (v , f) = cong p limOut (limitA (x ↓Diag) (T* x)) (v , p)) (sym (⋆IdL C f)) RanConeTrans : {x y z} (f : C [ x , y ]) (g : C [ y , z ]) v - limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob (j g .F-ob v)) - limOut (limitA (x ↓Diag) (T* x)) (j (f ⋆⟨ C g) .F-ob v) + limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob (j g .F-ob v)) + limOut (limitA (x ↓Diag) (T* x)) (j (f ⋆⟨ C g) .F-ob v) RanConeTrans {x = x} {y = y} {z = z} f g (v , h) = cong p limOut (limitA (x ↓Diag) (T* x)) (v , p)) (sym (⋆Assoc C f g h)) -- the right Kan-extension - Ran : Functor C A - F-ob Ran = RanOb - F-hom Ran {y = y} f = limArrow (limitA (y ↓Diag) (T* y)) _ (RanCone f) - F-id Ran {x = x} = + Ran : Functor C A + F-ob Ran = RanOb + F-hom Ran {y = y} f = limArrow (limitA (y ↓Diag) (T* y)) _ (RanCone f) + F-id Ran {x = x} = limArrowUnique (limitA (x ↓Diag) (T* x)) _ _ _ v (⋆IdL A _) RanConeRefl v) - F-seq Ran {x = x} {y = y} {z = z} f g = + F-seq Ran {x = x} {y = y} {z = z} f g = limArrowUnique (limitA (z ↓Diag) (T* z)) _ _ _ path where path : v - (F-hom Ran f) ⋆⟨ A (F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v) + (F-hom Ran f) ⋆⟨ A (F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v) coneOut (RanCone (f ⋆⟨ C g)) v - path v = (F-hom Ran f) ⋆⟨ A (F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v) + path v = (F-hom Ran f) ⋆⟨ A (F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v) ≡⟨ ⋆Assoc A _ _ _ - (F-hom Ran f) ⋆⟨ A ((F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v)) - ≡⟨ cong (seq' A (F-hom Ran f)) (limArrowCommutes _ _ _ _) - (F-hom Ran f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (j g .F-ob v) + (F-hom Ran f) ⋆⟨ A ((F-hom Ran g) ⋆⟨ A (limOut (limitA (z ↓Diag) (T* z)) v)) + ≡⟨ cong (seq' A (F-hom Ran f)) (limArrowCommutes _ _ _ _) + (F-hom Ran f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (j g .F-ob v) ≡⟨ limArrowCommutes _ _ _ _ - limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob (j g .F-ob v)) + limOut (limitA (x ↓Diag) (T* x)) (j f .F-ob (j g .F-ob v)) ≡⟨ RanConeTrans f g v coneOut (RanCone (f ⋆⟨ C g)) v open NatTrans - RanNatTrans : NatTrans (funcComp Ran K) T + RanNatTrans : NatTrans (funcComp Ran K) T N-ob RanNatTrans u = coneOut (RanCone (id C)) (u , id C) N-hom RanNatTrans {x = u} {y = v} f = - Ran .F-hom (K .F-hom f) ⋆⟨ A coneOut (RanCone (id C)) (v , id C) - ≡⟨ cong g Ran .F-hom (K .F-hom f) ⋆⟨ A g) (sym (RanConeRefl (v , id C))) - Ran .F-hom (K .F-hom f) ⋆⟨ A limOut (limitA ((K .F-ob v) ↓Diag) (T* (K .F-ob v))) (v , id C) + Ran .F-hom (K .F-hom f) ⋆⟨ A coneOut (RanCone (id C)) (v , id C) + ≡⟨ cong g Ran .F-hom (K .F-hom f) ⋆⟨ A g) (sym (RanConeRefl (v , id C))) + Ran .F-hom (K .F-hom f) ⋆⟨ A limOut (limitA ((K .F-ob v) ↓Diag) (T* (K .F-ob v))) (v , id C) ≡⟨ limArrowCommutes _ _ _ _ - coneOut (RanCone (K .F-hom f)) (v , id C) - ≡⟨ cong g limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (v , g)) - (⋆IdR C (K .F-hom f) sym (⋆IdL C (K .F-hom f))) - coneOut (RanCone (id C)) (v , K .F-hom f) + coneOut (RanCone (K .F-hom f)) (v , id C) + ≡⟨ cong g limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (v , g)) + (⋆IdR C (K .F-hom f) sym (⋆IdL C (K .F-hom f))) + coneOut (RanCone (id C)) (v , K .F-hom f) ≡⟨ sym (coneOutCommutes (RanCone (id C)) (f , ⋆IdL C _)) - coneOut (RanCone (id C)) (u , id C) ⋆⟨ A T .F-hom f + coneOut (RanCone (id C)) (u , id C) ⋆⟨ A T .F-hom f -- the universal property private ε = RanNatTrans - NatTransCone : (S : Functor C A) (α : NatTrans (S ∘F K) T) (x : ob C) - Cone (T* x) (S .F-ob x) - coneOut (NatTransCone S α x) (v , f) = S .F-hom f ⋆⟨ A α .N-ob v + NatTransCone : (S : Functor C A) (α : NatTrans (S ∘F K) T) (x : ob C) + Cone (T* x) (S .F-ob x) + coneOut (NatTransCone S α x) (v , f) = S .F-hom f ⋆⟨ A α .N-ob v coneOutCommutes (NatTransCone S α x) {u = (u , f)} {v = (v , g)} (h , f⋆Kh≡g) = - (S .F-hom f ⋆⟨ A α .N-ob u) ⋆⟨ A T .F-hom h + (S .F-hom f ⋆⟨ A α .N-ob u) ⋆⟨ A T .F-hom h ≡⟨ ⋆Assoc A _ _ _ - S .F-hom f ⋆⟨ A (α .N-ob u ⋆⟨ A T .F-hom h) - ≡⟨ cong (seq' A (S .F-hom f)) (sym (α .N-hom h)) - S .F-hom f ⋆⟨ A ((S ∘F K) .F-hom h ⋆⟨ A α .N-ob v) + S .F-hom f ⋆⟨ A (α .N-ob u ⋆⟨ A T .F-hom h) + ≡⟨ cong (seq' A (S .F-hom f)) (sym (α .N-hom h)) + S .F-hom f ⋆⟨ A ((S ∘F K) .F-hom h ⋆⟨ A α .N-ob v) ≡⟨ sym (⋆Assoc A _ _ _) - (S .F-hom f ⋆⟨ A (S ∘F K) .F-hom h) ⋆⟨ A α .N-ob v - ≡⟨ cong x x ⋆⟨ A (α .N-ob v)) (sym (S .F-seq _ _)) - S .F-hom (f ⋆⟨ C K .F-hom h) ⋆⟨ A α .N-ob v - ≡⟨ cong x S .F-hom x ⋆⟨ A (α .N-ob v)) f⋆Kh≡g - S .F-hom g ⋆⟨ A α .N-ob v + (S .F-hom f ⋆⟨ A (S ∘F K) .F-hom h) ⋆⟨ A α .N-ob v + ≡⟨ cong x x ⋆⟨ A (α .N-ob v)) (sym (S .F-seq _ _)) + S .F-hom (f ⋆⟨ C K .F-hom h) ⋆⟨ A α .N-ob v + ≡⟨ cong x S .F-hom x ⋆⟨ A (α .N-ob v)) f⋆Kh≡g + S .F-hom g ⋆⟨ A α .N-ob v - RanUnivProp : (S : Functor C A) (α : NatTrans (S ∘F K) T) + RanUnivProp : (S : Functor C A) (α : NatTrans (S ∘F K) T) ∃![ σ NatTrans S Ran ] α (σ ∘ˡ K) ●ᵛ ε - RanUnivProp S α = uniqueExists σ pathNatTrans _ isSetNatTrans _ _) pathUnique + RanUnivProp S α = uniqueExists σ pathNatTrans _ isSetNatTrans _ _) pathUnique where σ : NatTrans S Ran N-ob σ x = limArrow (limitA (x ↓Diag) (T* x)) _ (NatTransCone S α x) - N-hom σ {x = x} {y = y} f = preCompUnique (N-ob σ x ⋆⟨ A Ran .F-hom f) + N-hom σ {x = x} {y = y} f = preCompUnique (N-ob σ x ⋆⟨ A Ran .F-hom f) (limitA (y ↓Diag) (T* y) .limCone) (limitA (y ↓Diag) (T* y) .univProp) - (S .F-hom f ⋆⟨ A N-ob σ y) + (S .F-hom f ⋆⟨ A N-ob σ y) equalUpToConeOut where equalUpToConeOut : (u : ob (y ↓Diag)) - (S .F-hom f ⋆⟨ A N-ob σ y) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) u - (N-ob σ x ⋆⟨ A Ran .F-hom f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) u + (S .F-hom f ⋆⟨ A N-ob σ y) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) u + (N-ob σ x ⋆⟨ A Ran .F-hom f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) u equalUpToConeOut (u , g) = - (S .F-hom f ⋆⟨ A N-ob σ y) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g) + (S .F-hom f ⋆⟨ A N-ob σ y) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g) ≡⟨ ⋆Assoc A _ _ _ - S .F-hom f ⋆⟨ A (N-ob σ y ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g)) - ≡⟨ cong (seq' A (S .F-hom f)) (limArrowCommutes _ _ _ _) - S .F-hom f ⋆⟨ A (S .F-hom g ⋆⟨ A α .N-ob u) + S .F-hom f ⋆⟨ A (N-ob σ y ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g)) + ≡⟨ cong (seq' A (S .F-hom f)) (limArrowCommutes _ _ _ _) + S .F-hom f ⋆⟨ A (S .F-hom g ⋆⟨ A α .N-ob u) ≡⟨ sym (⋆Assoc A _ _ _) - (S .F-hom f ⋆⟨ A S .F-hom g) ⋆⟨ A α .N-ob u - ≡⟨ cong h h ⋆⟨ A α .N-ob u) (sym (S .F-seq _ _)) - S .F-hom (f ⋆⟨ C g) ⋆⟨ A α .N-ob u + (S .F-hom f ⋆⟨ A S .F-hom g) ⋆⟨ A α .N-ob u + ≡⟨ cong h h ⋆⟨ A α .N-ob u) (sym (S .F-seq _ _)) + S .F-hom (f ⋆⟨ C g) ⋆⟨ A α .N-ob u ≡⟨ sym (limArrowCommutes _ _ _ _) N-ob σ x ⋆⟨ A limOut (limitA (x ↓Diag) (T* x)) (u , f ⋆⟨ C g) ≡⟨ cong (seq' A (N-ob σ x)) (sym (limArrowCommutes _ _ _ _)) - N-ob σ x ⋆⟨ A (Ran .F-hom f ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g)) + N-ob σ x ⋆⟨ A (Ran .F-hom f ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g)) ≡⟨ sym (⋆Assoc A _ _ _) - (N-ob σ x ⋆⟨ A Ran .F-hom f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g) + (N-ob σ x ⋆⟨ A Ran .F-hom f) ⋆⟨ A limOut (limitA (y ↓Diag) (T* y)) (u , g) pathNatTrans : α (σ ∘ˡ K) ●ᵛ ε @@ -189,21 +189,21 @@ where path : (u : ob M) α .N-ob u - limArrow (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) _ (NatTransCone S α (F-ob K u)) - ⋆⟨ A limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (u , id C ⋆⟨ C id C) + limArrow (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) _ (NatTransCone S α (F-ob K u)) + ⋆⟨ A limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (u , id C ⋆⟨ C id C) path u = α .N-ob u ≡⟨ sym (⋆IdL A _) id A ⋆⟨ A α .N-ob u - ≡⟨ cong x x ⋆⟨ A α .N-ob u) (sym (S .F-id)) - S .F-hom (id C) ⋆⟨ A α .N-ob u - ≡⟨ cong x S .F-hom x ⋆⟨ A α .N-ob u) (sym (⋆IdL C _)) - S .F-hom (id C ⋆⟨ C id C) ⋆⟨ A α .N-ob u + ≡⟨ cong x x ⋆⟨ A α .N-ob u) (sym (S .F-id)) + S .F-hom (id C) ⋆⟨ A α .N-ob u + ≡⟨ cong x S .F-hom x ⋆⟨ A α .N-ob u) (sym (⋆IdL C _)) + S .F-hom (id C ⋆⟨ C id C) ⋆⟨ A α .N-ob u ≡⟨ refl - NatTransCone S α (F-ob K u) .coneOut (u , id C ⋆⟨ C id C) + NatTransCone S α (F-ob K u) .coneOut (u , id C ⋆⟨ C id C) ≡⟨ sym (limArrowCommutes _ _ _ _) - limArrow (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) _ (NatTransCone S α (F-ob K u)) - ⋆⟨ A limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (u , id C ⋆⟨ C id C) + limArrow (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) _ (NatTransCone S α (F-ob K u)) + ⋆⟨ A limOut (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) (u , id C ⋆⟨ C id C) pathUnique : (τ : NatTrans S Ran) α (τ ∘ˡ K) ●ᵛ ε σ τ pathUnique τ α≡ετK = makeNatTransPath @@ -219,17 +219,17 @@ ≡⟨ i τ .N-ob x ⋆⟨ A limOut (limitA (x ↓Diag) (T* x)) (u , p i)) τ .N-ob x ⋆⟨ A limOut (limitA (x ↓Diag) (T* x)) (u , f ⋆⟨ C (id C ⋆⟨ C id C)) ≡⟨ cong (seq' A (τ .N-ob x)) (sym (limArrowCommutes - (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) + (limitA ((K .F-ob u) ↓Diag) (T* (K .F-ob u))) _ _ _)) - τ .N-ob x ⋆⟨ A (Ran .F-hom f ⋆⟨ A ε .N-ob u) + τ .N-ob x ⋆⟨ A (Ran .F-hom f ⋆⟨ A ε .N-ob u) ≡⟨ sym (⋆Assoc A _ _ _) - (τ .N-ob x ⋆⟨ A Ran .F-hom f) ⋆⟨ A ε .N-ob u + (τ .N-ob x ⋆⟨ A Ran .F-hom f) ⋆⟨ A ε .N-ob u ≡⟨ cong g g ⋆⟨ A ε .N-ob u) (sym (τ .N-hom f)) - (S .F-hom f ⋆⟨ A τ .N-ob (K .F-ob u)) ⋆⟨ A ε .N-ob u + (S .F-hom f ⋆⟨ A τ .N-ob (K .F-ob u)) ⋆⟨ A ε .N-ob u ≡⟨ ⋆Assoc A _ _ _ - S .F-hom f ⋆⟨ A (τ .N-ob (K .F-ob u) ⋆⟨ A ε .N-ob u) - ≡⟨ cong (seq' A (S .F-hom f)) (cong γ γ .N-ob u) (sym α≡ετK)) - S .F-hom f ⋆⟨ A α .N-ob u + S .F-hom f ⋆⟨ A (τ .N-ob (K .F-ob u) ⋆⟨ A ε .N-ob u) + ≡⟨ cong (seq' A (S .F-hom f)) (cong γ γ .N-ob u) (sym α≡ετK)) + S .F-hom f ⋆⟨ A α .N-ob u @@ -237,25 +237,25 @@ open isIso open NatIso - RanNatIso : isFullyFaithful K NatIso (funcComp Ran K) T + RanNatIso : isFullyFaithful K NatIso (funcComp Ran K) T trans (RanNatIso isFFK) = RanNatTrans - nIso (RanNatIso isFFK) u = LimIso _ (limitA (K .F-ob u ↓Diag) (T* (K .F-ob u))) + nIso (RanNatIso isFFK) u = LimIso _ (limitA (K .F-ob u ↓Diag) (T* (K .F-ob u))) (Initial→LimCone _ uInitial) .fst .fst .snd where - invKHom : {u v : ob M} C [ K .F-ob u , K .F-ob v ] M [ u , v ] - invKHom f = invEq (K .F-hom , (isFFK _ _)) f + invKHom : {u v : ob M} C [ K .F-ob u , K .F-ob v ] M [ u , v ] + invKHom f = invEq (K .F-hom , (isFFK _ _)) f - secKHom : {u v : ob M} (f : C [ K .F-ob u , K .F-ob v ]) - K .F-hom (invKHom f) f - secKHom f = secEq (K .F-hom , (isFFK _ _)) f + secKHom : {u v : ob M} (f : C [ K .F-ob u , K .F-ob v ]) + K .F-hom (invKHom f) f + secKHom f = secEq (K .F-hom , (isFFK _ _)) f - uInitial : Initial (K .F-ob u ↓Diag) + uInitial : Initial (K .F-ob u ↓Diag) fst uInitial = u , id C ⋆⟨ C id C fst (snd uInitial (v , f)) = invKHom f -- the unique arrow u→v in Ku↓ , cong₂ (seq' C) (⋆IdL C _) (secKHom f) ⋆IdL C f - snd (snd uInitial (v , f)) (g , tr) = Σ≡Prop _ isSetHom C _ _) path -- is indeed unique + snd (snd uInitial (v , f)) (g , tr) = Σ≡Prop _ isSetHom C _ _) path -- is indeed unique where path : invKHom f g path = isFullyFaithful→Faithful {F = K} isFFK _ _ _ _ - (secKHom f ∙∙ sym tr ∙∙ cong x x ⋆⟨ C K .F-hom g) (⋆IdL C _) ⋆IdL C _) + (secKHom f ∙∙ sym tr ∙∙ cong x x ⋆⟨ C K .F-hom g) (⋆IdL C _) ⋆IdL C _) \ No newline at end of file diff --git a/Cubical.Categories.Limits.Terminal.html b/Cubical.Categories.Limits.Terminal.html index 1ff6756231..e93375e5c7 100644 --- a/Cubical.Categories.Limits.Terminal.html +++ b/Cubical.Categories.Limits.Terminal.html @@ -67,19 +67,19 @@ -- i.e. all terminal objects are equal. isPropTerminal : (hC : isUnivalent C) isProp Terminal isPropTerminal hC x y = - Σ≡Prop isPropIsTerminal (CatIsoToPath hC (terminalToIso x y)) + Σ≡Prop isPropIsTerminal (CatIsoToPath hC (terminalToIso x y)) preservesTerminals : (C : Category ℓc ℓc')(D : Category ℓd ℓd') - Functor C D + Functor C D Type (ℓ-max (ℓ-max (ℓ-max ℓc ℓc') ℓd) ℓd') -preservesTerminals C D F = (term : Terminal C) isTerminal D (F term .fst ) +preservesTerminals C D F = (term : Terminal C) isTerminal D (F term .fst ) preserveAnyTerminal→PreservesTerminals : (C : Category ℓc ℓc')(D : Category ℓd ℓd') - (F : Functor C D) - (term : Terminal C) isTerminal D (F term .fst ) + (F : Functor C D) + (term : Terminal C) isTerminal D (F term .fst ) preservesTerminals C D F preserveAnyTerminal→PreservesTerminals C D F term D-preserves-term term' = isoToTerminal D - ((F term .fst ) , D-preserves-term) (F term' .fst ) + ((F term .fst ) , D-preserves-term) (F term' .fst ) (F-Iso {F = F} (terminalToIso C term term')) \ No newline at end of file diff --git a/Cubical.Categories.Monad.Base.html b/Cubical.Categories.Monad.Base.html index 3b633ac1de..4606e7fc4f 100644 --- a/Cubical.Categories.Monad.Base.html +++ b/Cubical.Categories.Monad.Base.html @@ -4,7 +4,7 @@ open import Cubical.Foundations.Prelude open import Cubical.Categories.Category -open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) +open import Cubical.Categories.Functor renaming (𝟙⟨_⟩ to funcId) open import Cubical.Categories.NaturalTransformation.Base open import Cubical.Categories.NaturalTransformation.Properties open import Cubical.Categories.Functors.HomFunctor @@ -14,9 +14,9 @@ variable ℓ' : Level -module _ {C : Category ℓ'} (M : Functor C C) where +module _ {C : Category ℓ'} (M : Functor C C) where open Category C - open Functor + open Functor open NatTrans IsPointed : Type (ℓ-max ℓ') @@ -25,7 +25,7 @@ record IsMonad : Type (ℓ-max ℓ') where field η : IsPointed - μ : NatTrans (funcComp M M) M + μ : NatTrans (funcComp M M) M idl-μ : PathP i NatTrans (F-rUnit {F = M} i) M) (compTrans μ (η ∘ˡ M)) (idTrans M) idr-μ : PathP i NatTrans (F-lUnit {F = M} i) M) (compTrans μ (M ∘ʳ η)) (idTrans M) assoc-μ : PathP i NatTrans (F-assoc {F = M} {G = M} {H = M} i) M) @@ -33,33 +33,33 @@ (compTrans μ (μ ∘ˡ M)) -- bind : Hom[-,M-] -> Hom[M-,M-] - bind : NatTrans (funcComp (HomFunctor C) ((funcId C ^opF) ×F M)) (funcComp (HomFunctor C) ((M ^opF) ×F M)) - N-ob bind (x , y) f = N-ob μ y F-hom M f + bind : NatTrans (funcComp (HomFunctor C) ((funcId C ^opF) ×F M)) (funcComp (HomFunctor C) ((M ^opF) ×F M)) + N-ob bind (x , y) f = N-ob μ y F-hom M f N-hom bind {x , y} {x' , y'} (f , h) = funExt λ g - (F-hom M ((f g) F-hom M h) N-ob μ y') - ≡⟨ cong (_⋆ N-ob μ y') (F-seq M (f g) (F-hom M h)) - ((F-hom M (f g) F-hom M (F-hom M h)) N-ob μ y') - ≡⟨ ⋆Assoc (F-hom M (f g)) (F-hom M (F-hom M h)) (N-ob μ y') - (F-hom M (f g) (F-hom M (F-hom M h) N-ob μ y')) - ≡⟨ cong (F-hom M (f g) ⋆_) (N-hom μ h) - (F-hom M (f g) (N-ob μ y F-hom M h)) - ≡⟨ sym (⋆Assoc (F-hom M (f g)) (N-ob μ y) (F-hom M h)) - ((F-hom M (f g) N-ob μ y) F-hom M h) - ≡⟨ cong (_⋆ F-hom M h) (cong (_⋆ N-ob μ y) (F-seq M f g)) - (((F-hom M f F-hom M g) N-ob μ y) F-hom M h) - ≡⟨ cong (_⋆ F-hom M h) (⋆Assoc (F-hom M f) (F-hom M g) (N-ob μ y)) - ((M .F-hom f (F-hom M g N-ob μ y)) F-hom M h) + (F-hom M ((f g) F-hom M h) N-ob μ y') + ≡⟨ cong (_⋆ N-ob μ y') (F-seq M (f g) (F-hom M h)) + ((F-hom M (f g) F-hom M (F-hom M h)) N-ob μ y') + ≡⟨ ⋆Assoc (F-hom M (f g)) (F-hom M (F-hom M h)) (N-ob μ y') + (F-hom M (f g) (F-hom M (F-hom M h) N-ob μ y')) + ≡⟨ cong (F-hom M (f g) ⋆_) (N-hom μ h) + (F-hom M (f g) (N-ob μ y F-hom M h)) + ≡⟨ sym (⋆Assoc (F-hom M (f g)) (N-ob μ y) (F-hom M h)) + ((F-hom M (f g) N-ob μ y) F-hom M h) + ≡⟨ cong (_⋆ F-hom M h) (cong (_⋆ N-ob μ y) (F-seq M f g)) + (((F-hom M f F-hom M g) N-ob μ y) F-hom M h) + ≡⟨ cong (_⋆ F-hom M h) (⋆Assoc (F-hom M f) (F-hom M g) (N-ob μ y)) + ((M .F-hom f (F-hom M g N-ob μ y)) F-hom M h) -- Define comonads as monads on the opposite category? module _ (C : Category ℓ') where Monad : Type (ℓ-max ℓ') - Monad = Σ[ M Functor C C ] IsMonad M + Monad = Σ[ M Functor C C ] IsMonad M module _ {C : Category ℓ'} (monadM monadN : Monad C) (ν : NatTrans (fst monadM) (fst monadN)) where private - M N : Functor C C + M N : Functor C C M = fst monadM N = fst monadN module M = IsMonad (snd monadM) @@ -73,8 +73,8 @@ open IsMonadHom isProp-IsMonadHom : isProp (IsMonadHom) - N-η (isProp-IsMonadHom (proveMonadHom N-η1 N-μ1) (proveMonadHom N-η2 N-μ2) i) = isSetNatTrans _ _ N-η1 N-η2 i - N-μ (isProp-IsMonadHom (proveMonadHom N-η1 N-μ1) (proveMonadHom N-η2 N-μ2) i) = isSetNatTrans _ _ N-μ1 N-μ2 i + N-η (isProp-IsMonadHom (proveMonadHom N-η1 N-μ1) (proveMonadHom N-η2 N-μ2) i) = isSetNatTrans _ _ N-η1 N-η2 i + N-μ (isProp-IsMonadHom (proveMonadHom N-η1 N-μ1) (proveMonadHom N-η2 N-μ2) i) = isSetNatTrans _ _ N-μ1 N-μ2 i module _ {C : Category ℓ'} (monadM monadN : Monad C) where MonadHom : Type (ℓ-max ℓ') diff --git a/Cubical.Categories.Monoidal.Base.html b/Cubical.Categories.Monoidal.Base.html index 97d615826b..d31ddeca56 100644 --- a/Cubical.Categories.Monoidal.Base.html +++ b/Cubical.Categories.Monoidal.Base.html @@ -17,18 +17,18 @@ record TensorStr : Type (ℓ-max ℓ') where field - ─⊗─ : Functor (C ×C C) C + ─⊗─ : Functor (C ×C C) C unit : ob - open Functor + open Functor -- Useful tensor product notation _⊗_ : ob ob ob - x y = ─⊗─ .F-ob (x , y) + x y = ─⊗─ .F-ob (x , y) _⊗ₕ_ : {x y z w} Hom[ x , y ] Hom[ z , w ] Hom[ x z , y w ] - f ⊗ₕ g = ─⊗─ .F-hom (f , g) + f ⊗ₕ g = ─⊗─ .F-hom (f , g) record StrictMonStr : Type (ℓ-max ℓ') where @@ -52,15 +52,15 @@ private -- Private names to make the axioms below look nice - x⊗[y⊗z] : Functor (C ×C C ×C C) C - x⊗[y⊗z] = ─⊗─ ∘F (𝟙⟨ C ×F ─⊗─) + x⊗[y⊗z] : Functor (C ×C C ×C C) C + x⊗[y⊗z] = ─⊗─ ∘F (𝟙⟨ C ×F ─⊗─) - [x⊗y]⊗z : Functor (C ×C C ×C C) C - [x⊗y]⊗z = ─⊗─ ∘F (─⊗─ ×F 𝟙⟨ C ) ∘F (×C-assoc C C C) + [x⊗y]⊗z : Functor (C ×C C ×C C) C + [x⊗y]⊗z = ─⊗─ ∘F (─⊗─ ×F 𝟙⟨ C ) ∘F (×C-assoc C C C) - x = 𝟙⟨ C - 1⊗x = ─⊗─ ∘F (rinj C C unit) - x⊗1 = ─⊗─ ∘F (linj C C unit) + x = 𝟙⟨ C + 1⊗x = ─⊗─ ∘F (rinj C C unit) + x⊗1 = ─⊗─ ∘F (linj C C unit) field -- "Axioms" - up to natural isomorphism diff --git a/Cubical.Categories.Monoidal.Strict.Monoid.html b/Cubical.Categories.Monoidal.Strict.Monoid.html index 16c18536b0..cc11ce91f5 100644 --- a/Cubical.Categories.Monoidal.Strict.Monoid.html +++ b/Cubical.Categories.Monoidal.Strict.Monoid.html @@ -49,7 +49,7 @@ open Category open Monoid open Monoid[_,_] -open Functor +open Functor monoidCategory : Category (ℓ-max ℓ') ℓ' ob monoidCategory = Monoid @@ -62,7 +62,7 @@ μ monA ≡⟨ sym (C.⋆IdL (μ monA)) μ monA C.∘ id C.C - ≡⟨ cong (μ monA C.∘_) (sym (F-id C.─⊗─)) + ≡⟨ cong (μ monA C.∘_) (sym (F-id C.─⊗─)) μ monA C.∘ (C.id C.⊗ₕ C.id) carrierHom (_⋆_ monoidCategory f g) = carrierHom g C.∘ carrierHom f nat-η (_⋆_ monoidCategory {monA} {monB} {monC} f g) = @@ -85,7 +85,7 @@ (μ monC C.∘ (carrierHom g C.⊗ₕ carrierHom g)) C.∘ (carrierHom f C.⊗ₕ carrierHom f) ≡⟨ sym (C.⋆Assoc (carrierHom f C.⊗ₕ carrierHom f) (carrierHom g C.⊗ₕ carrierHom g) (μ monC)) μ monC C.∘ ((carrierHom g C.⊗ₕ carrierHom g) C.∘ (carrierHom f C.⊗ₕ carrierHom f)) - ≡⟨ cong (μ monC C.∘_) (sym (F-seq C.─⊗─ (carrierHom f , carrierHom f) (carrierHom g , carrierHom g))) + ≡⟨ cong (μ monC C.∘_) (sym (F-seq C.─⊗─ (carrierHom f , carrierHom f) (carrierHom g , carrierHom g))) μ monC C.∘ ((carrierHom g C.∘ carrierHom f) C.⊗ₕ (carrierHom g C.∘ carrierHom f)) ⋆IdL monoidCategory {monA} f = monoidHomExt _ _ (C.⋆IdL (carrierHom f)) ⋆IdR monoidCategory {monA} f = monoidHomExt _ _ (C.⋆IdR (carrierHom f)) diff --git a/Cubical.Categories.NaturalTransformation.Base.html b/Cubical.Categories.NaturalTransformation.Base.html index 8f9c9aaad1..fa868bd427 100644 --- a/Cubical.Categories.NaturalTransformation.Base.html +++ b/Cubical.Categories.NaturalTransformation.Base.html @@ -26,16 +26,16 @@ f ⋆ᴰ g = f ⋆⟨ D g open Category - open Functor + open Functor -- type aliases because it gets tedious typing it out all the time - N-ob-Type : (F G : Functor C D) Type _ - N-ob-Type F G = (x : C .ob) D [(F .F-ob x) , (G .F-ob x)] + N-ob-Type : (F G : Functor C D) Type _ + N-ob-Type F G = (x : C .ob) D [(F .F-ob x) , (G .F-ob x)] - N-hom-Type : (F G : Functor C D) N-ob-Type F G Type _ - N-hom-Type F G ϕ = {x y : C .ob} (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (ϕ y) (ϕ x) ⋆ᴰ (G .F-hom f) + N-hom-Type : (F G : Functor C D) N-ob-Type F G Type _ + N-hom-Type F G ϕ = {x y : C .ob} (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (ϕ y) (ϕ x) ⋆ᴰ (G .F-hom f) - record NatTrans (F G : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') where + record NatTrans (F G : Functor C D) : Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') where constructor natTrans field -- components of the natural transformation @@ -43,7 +43,7 @@ -- naturality condition N-hom : N-hom-Type F G N-ob - record NatIso (F G : Functor C D): Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where + record NatIso (F G : Functor C D): Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) where field trans : NatTrans F G open NatTrans trans @@ -55,103 +55,103 @@ -- the three other commuting squares sqRL : {x y : C .ob} {f : C [ x , y ]} - F f (N-ob x) ⋆ᴰ G f ⋆ᴰ (nIso y) .inv + F f (N-ob x) ⋆ᴰ G f ⋆ᴰ (nIso y) .inv sqRL {x} {y} {f} = invMoveR (isIso→areInv (nIso y)) (N-hom f) sqLL : {x y : C .ob} {f : C [ x , y ]} - G f ⋆ᴰ (nIso y) .inv (nIso x) .inv ⋆ᴰ F f + G f ⋆ᴰ (nIso y) .inv (nIso x) .inv ⋆ᴰ F f sqLL {x} {y} {f} = invMoveL (isIso→areInv (nIso x)) (sym sqRL') where - sqRL' : F f (N-ob x) ⋆ᴰ ( G f ⋆ᴰ (nIso y) .inv ) + sqRL' : F f (N-ob x) ⋆ᴰ ( G f ⋆ᴰ (nIso y) .inv ) sqRL' = sqRL (D .⋆Assoc _ _ _) sqLR : {x y : C .ob} {f : C [ x , y ]} - G f (nIso x) .inv ⋆ᴰ F f ⋆ᴰ (N-ob y) + G f (nIso x) .inv ⋆ᴰ F f ⋆ᴰ (N-ob y) sqLR {x} {y} {f} = invMoveR (symAreInv (isIso→areInv (nIso y))) sqLL open NatTrans open NatIso infix 10 _⇒_ - _⇒_ : Functor C D Functor C D Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') + _⇒_ : Functor C D Functor C D Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') _⇒_ = NatTrans infix 9 _≅ᶜ_ -- c superscript to indicate that this is in the context of categories - _≅ᶜ_ : Functor C D Functor C D Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) + _≅ᶜ_ : Functor C D Functor C D Type (ℓ-max (ℓ-max ℓC ℓC') (ℓ-max ℓD ℓD')) _≅ᶜ_ = NatIso -- component of a natural transformation infix 30 _⟦_⟧ - _⟦_⟧ : {F G : Functor C D} F G (x : C .ob) D [ F .F-ob x , G .F-ob x ] + _⟦_⟧ : {F G : Functor C D} F G (x : C .ob) D [ F .F-ob x , G .F-ob x ] _⟦_⟧ = N-ob - idTrans : (F : Functor C D) NatTrans F F + idTrans : (F : Functor C D) NatTrans F F idTrans F .N-ob x = D .id idTrans F .N-hom f = - (F .F-hom f) ⋆ᴰ (idTrans F .N-ob _) + (F .F-hom f) ⋆ᴰ (idTrans F .N-ob _) ≡⟨ D .⋆IdR _ - F .F-hom f + F .F-hom f ≡⟨ sym (D .⋆IdL _) - (D .id) ⋆ᴰ (F .F-hom f) + (D .id) ⋆ᴰ (F .F-hom f) - 1[_] : (F : Functor C D) NatTrans F F + 1[_] : (F : Functor C D) NatTrans F F 1[_] = idTrans - idNatIso : (F : Functor C D) NatIso F F + idNatIso : (F : Functor C D) NatIso F F idNatIso F .trans = idTrans F idNatIso F .nIso _ = idCatIso .snd -- Natural isomorphism induced by path of functors - pathToNatTrans : {F G : Functor C D} F G NatTrans F G - pathToNatTrans p .N-ob x = pathToIso {C = D} i p i .F-ob x) .fst + pathToNatTrans : {F G : Functor C D} F G NatTrans F G + pathToNatTrans p .N-ob x = pathToIso {C = D} i p i .F-ob x) .fst pathToNatTrans {F = F} {G = G} p .N-hom {x = x} {y = y} f = - pathToIso-Comm {C = D} _ _ _ _ i p i .F-hom f) + pathToIso-Comm {C = D} _ _ _ _ i p i .F-hom f) - pathToNatIso : {F G : Functor C D} F G NatIso F G + pathToNatIso : {F G : Functor C D} F G NatIso F G pathToNatIso p .trans = pathToNatTrans p pathToNatIso p .nIso x = pathToIso {C = D} _ .snd -- vertical sequencing - seqTrans : {F G H : Functor C D} (α : NatTrans F G) (β : NatTrans G H) NatTrans F H + seqTrans : {F G H : Functor C D} (α : NatTrans F G) (β : NatTrans G H) NatTrans F H seqTrans α β .N-ob x = (α .N-ob x) ⋆ᴰ (β .N-ob x) seqTrans {F} {G} {H} α β .N-hom f = - (F .F-hom f) ⋆ᴰ ((α .N-ob _) ⋆ᴰ (β .N-ob _)) + (F .F-hom f) ⋆ᴰ ((α .N-ob _) ⋆ᴰ (β .N-ob _)) ≡⟨ sym (D .⋆Assoc _ _ _) - ((F .F-hom f) ⋆ᴰ (α .N-ob _)) ⋆ᴰ (β .N-ob _) + ((F .F-hom f) ⋆ᴰ (α .N-ob _)) ⋆ᴰ (β .N-ob _) ≡[ i ]⟨ (α .N-hom f i) ⋆ᴰ (β .N-ob _) - ((α .N-ob _) ⋆ᴰ (G .F-hom f)) ⋆ᴰ (β .N-ob _) + ((α .N-ob _) ⋆ᴰ (G .F-hom f)) ⋆ᴰ (β .N-ob _) ≡⟨ D .⋆Assoc _ _ _ - (α .N-ob _) ⋆ᴰ ((G .F-hom f) ⋆ᴰ (β .N-ob _)) + (α .N-ob _) ⋆ᴰ ((G .F-hom f) ⋆ᴰ (β .N-ob _)) ≡[ i ]⟨ (α .N-ob _) ⋆ᴰ (β .N-hom f i) - (α .N-ob _) ⋆ᴰ ((β .N-ob _) ⋆ᴰ (H .F-hom f)) + (α .N-ob _) ⋆ᴰ ((β .N-ob _) ⋆ᴰ (H .F-hom f)) ≡⟨ sym (D .⋆Assoc _ _ _) - ((α .N-ob _) ⋆ᴰ (β .N-ob _)) ⋆ᴰ (H .F-hom f) + ((α .N-ob _) ⋆ᴰ (β .N-ob _)) ⋆ᴰ (H .F-hom f) - compTrans : {F G H : Functor C D} (β : NatTrans G H) (α : NatTrans F G) NatTrans F H + compTrans : {F G H : Functor C D} (β : NatTrans G H) (α : NatTrans F G) NatTrans F H compTrans β α = seqTrans α β infixl 8 _●ᵛ_ - _●ᵛ_ : {F G H : Functor C D} NatTrans F G NatTrans G H NatTrans F H + _●ᵛ_ : {F G H : Functor C D} NatTrans F G NatTrans G H NatTrans F H _●ᵛ_ = seqTrans -- vertically sequence natural transformations whose -- common functor is not definitional equal - seqTransP : {F G G' H : Functor C D} (p : G G') + seqTransP : {F G G' H : Functor C D} (p : G G') (α : NatTrans F G) (β : NatTrans G' H) NatTrans F H seqTransP {F} {G} {G'} {H} p α β .N-ob x -- sequence morphisms with non-judgementally equal (co)domain = seqP {C = D} {p = Gx≡G'x} (α x ) (β x ) where - Gx≡G'x : {x} G x G' x - Gx≡G'x {x} i = F-ob (p i) x + Gx≡G'x : {x} G x G' x + Gx≡G'x {x} i = F-ob (p i) x seqTransP {F} {G} {G'} {H} p α β .N-hom {x = x} {y} f -- compose the two commuting squares -- 1. α's commuting square @@ -159,74 +159,74 @@ = compSq {C = D} (α .N-hom f) βSq where -- functor equality implies equality of actions on objects and morphisms - Gx≡G'x : G x G' x - Gx≡G'x i = F-ob (p i) x + Gx≡G'x : G x G' x + Gx≡G'x i = F-ob (p i) x - Gy≡G'y : G y G' y - Gy≡G'y i = F-ob (p i) y + Gy≡G'y : G y G' y + Gy≡G'y i = F-ob (p i) y - Gf≡G'f : PathP i D [ Gx≡G'x i , Gy≡G'y i ]) (G f ) (G' f ) - Gf≡G'f i = p i f + Gf≡G'f : PathP i D [ Gx≡G'x i , Gy≡G'y i ]) (G f ) (G' f ) + Gf≡G'f i = p i f -- components of β extended out to Gx and Gy respectively - βx' = subst a D [ a , H x ]) (sym Gx≡G'x) (β x ) - βy' = subst a D [ a , H y ]) (sym Gy≡G'y) (β y ) + βx' = subst a D [ a , H x ]) (sym Gx≡G'x) (β x ) + βy' = subst a D [ a , H y ]) (sym Gy≡G'y) (β y ) -- extensions are equal to originals - βy'≡βy : PathP i D [ Gy≡G'y i , H y ]) βy' (β y ) - βy'≡βy = symP (toPathP {A = λ i D [ Gy≡G'y (~ i) , H y ]} refl) + βy'≡βy : PathP i D [ Gy≡G'y i , H y ]) βy' (β y ) + βy'≡βy = symP (toPathP {A = λ i D [ Gy≡G'y (~ i) , H y ]} refl) - βx≡βx' : PathP i D [ Gx≡G'x (~ i) , H x ]) (β x ) βx' + βx≡βx' : PathP i D [ Gx≡G'x (~ i) , H x ]) (β x ) βx' βx≡βx' = toPathP refl -- left wall of square - left : PathP i D [ Gx≡G'x i , H y ]) (G f ⋆⟨ D βy') (G' f ⋆⟨ D β y ) + left : PathP i D [ Gx≡G'x i , H y ]) (G f ⋆⟨ D βy') (G' f ⋆⟨ D β y ) left i = Gf≡G'f i ⋆⟨ D βy'≡βy i -- right wall of square - right : PathP i D [ Gx≡G'x (~ i) , H y ]) (β x ⋆⟨ D H f ) (βx' ⋆⟨ D H f ) - right i = βx≡βx' i ⋆⟨ D refl {x = H f } i + right : PathP i D [ Gx≡G'x (~ i) , H y ]) (β x ⋆⟨ D H f ) (βx' ⋆⟨ D H f ) + right i = βx≡βx' i ⋆⟨ D refl {x = H f } i -- putting it all together - βSq : G f ⋆⟨ D βy' βx' ⋆⟨ D H f - βSq i = comp k D [ Gx≡G'x (~ k) , H y ]) + βSq : G f ⋆⟨ D βy' βx' ⋆⟨ D H f + βSq i = comp k D [ Gx≡G'x (~ k) , H y ]) j λ { (i = i0) left (~ j) ; (i = i1) right j }) (β .N-hom f i) - module _ {F G : Functor C D} {α β : NatTrans F G} where + module _ {F G : Functor C D} {α β : NatTrans F G} where open Category - open Functor + open Functor open NatTrans makeNatTransPath : α .N-ob β .N-ob α β makeNatTransPath p i .N-ob = p i makeNatTransPath p i .N-hom f = rem i where - rem : PathP i (F .F-hom f) ⋆ᴰ (p i _) (p i _) ⋆ᴰ (G .F-hom f)) + rem : PathP i (F .F-hom f) ⋆ᴰ (p i _) (p i _) ⋆ᴰ (G .F-hom f)) (α .N-hom f) (β .N-hom f) rem = toPathP (D .isSetHom _ _ _ _) -- `constructor` for path of natural isomorphisms - NatIso≡ : {F G : Functor C D}{f g : NatIso F G} f .trans .N-ob g .trans .N-ob f g + NatIso≡ : {F G : Functor C D}{f g : NatIso F G} f .trans .N-ob g .trans .N-ob f g NatIso≡ {f = f} {g} p i .trans = makeNatTransPath {α = f .trans} {β = g .trans} p i NatIso≡ {f = f} {g} p i .nIso x = isProp→PathP i isPropIsIso (NatIso≡ {f = f} {g} p i .trans .N-ob x)) (f .nIso _) (g .nIso _) i - module _ {F F' G G' : Functor C D} {α : NatTrans F G} {β : NatTrans F' G'} where + module _ {F F' G G' : Functor C D} {α : NatTrans F G} {β : NatTrans F' G'} where open Category - open Functor + open Functor open NatTrans makeNatTransPathP : (p : F F') (q : G G') - PathP i (x : C .ob) D [ (p i) .F-ob x , (q i) .F-ob x ]) + PathP i (x : C .ob) D [ (p i) .F-ob x , (q i) .F-ob x ]) (α .N-ob) (β .N-ob) PathP i NatTrans (p i) (q i)) α β makeNatTransPathP p q P i .N-ob = P i makeNatTransPathP p q P i .N-hom f = rem i where - rem : PathP i ((p i) .F-hom f) ⋆ᴰ (P i _) (P i _) ⋆ᴰ ((q i) .F-hom f)) + rem : PathP i ((p i) .F-hom f) ⋆ᴰ (P i _) (P i _) ⋆ᴰ ((q i) .F-hom f)) (α .N-hom f) (β .N-hom f) rem = toPathP (D .isSetHom _ _ _ _) @@ -234,18 +234,18 @@ open NatTrans -- whiskering -- αF - _∘ˡ_ : {G H : Functor C D} (α : NatTrans G H) (F : Functor B C) - NatTrans (G ∘F F) (H ∘F F) - (_∘ˡ_ {G} {H} α F) .N-ob x = α F x + _∘ˡ_ : {G H : Functor C D} (α : NatTrans G H) (F : Functor B C) + NatTrans (G ∘F F) (H ∘F F) + (_∘ˡ_ {G} {H} α F) .N-ob x = α F x (_∘ˡ_ {G} {H} α F) .N-hom f = (α .N-hom) _ -- Kβ - _∘ʳ_ : (K : Functor C D) {G H : Functor B C} (β : NatTrans G H) - NatTrans (K ∘F G) (K ∘F H) - (_∘ʳ_ K {G} {H} β) .N-ob x = K β x + _∘ʳ_ : (K : Functor C D) {G H : Functor B C} (β : NatTrans G H) + NatTrans (K ∘F G) (K ∘F H) + (_∘ʳ_ K {G} {H} β) .N-ob x = K β x (_∘ʳ_ K {G} {H} β) .N-hom f = preserveCommF {C = C} {D = D} {K} (β .N-hom f) - whiskerTrans : {F F' : Functor B C} {G G' : Functor C D} (β : NatTrans G G') (α : NatTrans F F') - NatTrans (G ∘F F) (G' ∘F F') + whiskerTrans : {F F' : Functor B C} {G G' : Functor C D} (β : NatTrans G G') (α : NatTrans F F') + NatTrans (G ∘F F) (G' ∘F F') whiskerTrans {F}{F'}{G}{G'} β α = compTrans (β ∘ˡ F') (G ∘ʳ α) \ No newline at end of file diff --git a/Cubical.Categories.NaturalTransformation.Properties.html b/Cubical.Categories.NaturalTransformation.Properties.html index 3a165f8d02..cd80b5ba8a 100644 --- a/Cubical.Categories.NaturalTransformation.Properties.html +++ b/Cubical.Categories.NaturalTransformation.Properties.html @@ -21,156 +21,177 @@ private variable ℓB ℓB' ℓC ℓC' ℓD ℓD' ℓE ℓE' : Level + C : Category ℓC ℓC' + D : Category ℓD ℓD' + F F' : Functor C D + +open isIsoC +open NatIso +open NatTrans +open Category +open Functor +open Iso + +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where + private + _⋆ᴰ_ : {x y z} (f : D [ x , y ]) (g : D [ y , z ]) D [ x , z ] + f ⋆ᴰ g = f ⋆⟨ D g + + -- natural isomorphism is symmetric + symNatIso : {F G : Functor C D} + F ≅ᶜ G + G ≅ᶜ F + symNatIso η .trans .N-ob x = η .nIso x .inv + symNatIso η .trans .N-hom _ = sqLL η + symNatIso η .nIso x .inv = η .trans .N-ob x + symNatIso η .nIso x .sec = η .nIso x .ret + symNatIso η .nIso x .ret = η .nIso x .sec + + -- Properties + + -- path helpers + module NatTransP where + + module _ {F G : Functor C D} where + + -- same as Sigma version + NatTransΣ : Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') + NatTransΣ = Σ[ ob ((x : C .ob) D [(F .F-ob x) , (G .F-ob x)]) ] + ({x y : _ } (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (ob y) (ob x) ⋆ᴰ (G .F-hom f)) + + NatTransIsoΣ : Iso (NatTrans F G) NatTransΣ + NatTransIsoΣ .fun (natTrans N-ob N-hom) = N-ob , N-hom + NatTransIsoΣ .inv (N-ob , N-hom) = (natTrans N-ob N-hom) + NatTransIsoΣ .rightInv _ = refl + NatTransIsoΣ .leftInv _ = refl + + NatTrans≡Σ : NatTrans F G NatTransΣ + NatTrans≡Σ = isoToPath NatTransIsoΣ + + -- introducing paths + NatTrans-≡-intro : {αo βo : N-ob-Type F G} + {αh : N-hom-Type F G αo} + {βh : N-hom-Type F G βo} + (p : αo βo) + PathP i ({x y : C .ob} (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (p i y) (p i x) ⋆ᴰ (G .F-hom f))) αh βh + natTrans {F = F} {G} αo αh natTrans βo βh + NatTrans-≡-intro p q i = natTrans (p i) (q i) + + module _ {F G : Functor C D} {α β : NatTrans F G} where + open Iso + private + αOb = α .N-ob + βOb = β .N-ob + αHom = α .N-hom + βHom = β .N-hom + -- path between natural transformations is the same as a pair of paths (between ob and hom) + NTPathIsoPathΣ : Iso (α β) + (Σ[ p (αOb βOb) ] + (PathP i ({x y : _} (f : _) F f ⋆ᴰ (p i y) (p i x) ⋆ᴰ G f )) + αHom + βHom)) + NTPathIsoPathΣ .fun p = i p i .N-ob) , i p i .N-hom) + NTPathIsoPathΣ .inv (po , ph) i = record { N-ob = po i ; N-hom = ph i } + NTPathIsoPathΣ .rightInv = refl + NTPathIsoPathΣ .leftInv p = refl + + NTPath≃PathΣ = isoToEquiv NTPathIsoPathΣ + + NTPath≡PathΣ = ua NTPath≃PathΣ + + module _ where + open NatTransP + + isSetNatTrans : {F G : Functor C D} isSet (NatTrans F G) + isSetNatTrans = + isSetRetract (fun NatTransIsoΣ) (inv NatTransIsoΣ) (leftInv NatTransIsoΣ) + (isSetΣSndProp (isSetΠ _ isSetHom D)) + _ isPropImplicitΠ2 _ _ isPropΠ _ isSetHom D _ _)))) + + +-- Natural isomorphism is path when the target category is univalent. + +module _ + (isUnivD : isUnivalent D) + {F G : Functor C D} where + + open isUnivalent isUnivD + + NatIsoToPath : NatIso F G F G + NatIsoToPath niso = + Functor≡ x CatIsoToPath (_ , niso .nIso x)) + f isoToPath-Square isUnivD _ _ _ _ (niso .trans .N-hom f)) + + NatIso→Path→NatIso : (niso : NatIso F G) pathToNatIso (NatIsoToPath niso) niso + NatIso→Path→NatIso niso = NatIso≡ i x secEq (univEquiv _ _) (_ , niso .nIso x) i .fst) + + Path→NatIso→Path : (p : F G) NatIsoToPath (pathToNatIso p) p + Path→NatIso→Path p = FunctorPath≡ i j x retEq (univEquiv _ _) i p i .F-ob x) i j) + + Iso-Path-NatIso : Iso (F G) (NatIso F G) + Iso-Path-NatIso = iso pathToNatIso NatIsoToPath NatIso→Path→NatIso Path→NatIso→Path + + Path≃NatIso : (F G) NatIso F G + Path≃NatIso = isoToEquiv Iso-Path-NatIso +module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where + seqNatIso : {F G H : Functor C D} NatIso F G NatIso G H NatIso F H + seqNatIso ı ı' .trans = seqTrans (ı .trans) (ı' .trans) + seqNatIso ı ı' .nIso x .inv = ı' .nIso x .inv ⋆⟨ D ı .nIso x .inv + seqNatIso ı ı' .nIso x .sec = + D .⋆Assoc _ _ _ + cong (_⋆_ D (ı' .nIso x .inv)) + (sym (D .⋆Assoc _ _ _) + cong (D ı' .trans .N-ob x) (ı .nIso x .sec) + D .⋆IdL (ı' .trans .N-ob x)) + ı' .nIso x .sec + seqNatIso ı ı' .nIso x .ret = + (sym (D .⋆Assoc _ _ _)) + cong (_∘_ D (ı .nIso x .inv)) + (D .⋆Assoc _ _ _ + cong (D ı .trans .N-ob x) (ı' .nIso x .ret) + D .⋆IdR (ı .trans .N-ob x)) + ı .nIso x .ret + + CAT⋆IdR : {F : Functor C D} NatIso (Id ∘F F) F + CAT⋆IdR {F} .trans .N-ob = idTrans F .N-ob + CAT⋆IdR {F} .trans .N-hom = idTrans F .N-hom + CAT⋆IdR {F} .nIso = idNatIso F .nIso + +module _ {B : Category ℓB ℓB'}{C : Category ℓC ℓC'}{D : Category ℓD ℓD'} where + _∘ʳi_ : (K : Functor C D) {G H : Functor B C} (β : NatIso G H) + NatIso (K ∘F G) (K ∘F H) + _∘ʳi_ K β .trans = K ∘ʳ β .trans + _∘ʳi_ K β .nIso x = preserveIsosF {F = K} (β .trans .N-ob _ , β .nIso x) .snd + + open Functor + _∘ˡi_ : (K : Functor B C) {G H : Functor C D} (β : NatIso G H) + NatIso (G ∘F K) (H ∘F K) + _∘ˡi_ K β .trans = β .trans ∘ˡ K + _∘ˡi_ K β .nIso b = β .nIso (K b ) + + CAT⋆Assoc : {E : Category ℓE ℓE'} + (F : Functor B C)(G : Functor C D)(H : Functor D E) + NatIso (H ∘F (G ∘F F)) ((H ∘F G) ∘F F) + CAT⋆Assoc F G H .trans .N-ob = idTrans ((H ∘F G) ∘F F) .N-ob + CAT⋆Assoc F G H .trans .N-hom = idTrans ((H ∘F G) ∘F F) .N-hom + CAT⋆Assoc F G H .nIso = idNatIso ((H ∘F G) ∘F F) .nIso + + + +⇒^opFiso : Iso (F F') (_^opF {C = C} {D = D} F' F ^opF ) +N-ob (fun ⇒^opFiso x) = N-ob x +N-hom (fun ⇒^opFiso x) f = sym (N-hom x f) +inv ⇒^opFiso = _ +rightInv ⇒^opFiso _ = refl +leftInv ⇒^opFiso _ = refl + +congNatIso^opFiso : Iso (F ≅ᶜ F') (_^opF {C = C} {D = D} F' ≅ᶜ F ^opF ) +trans (fun congNatIso^opFiso x) = Iso.fun ⇒^opFiso (trans x) +inv (nIso (fun congNatIso^opFiso x) x₁) = _ +sec (nIso (fun congNatIso^opFiso x) x₁) = ret (nIso x x₁) +ret (nIso (fun congNatIso^opFiso x) x₁) = sec (nIso x x₁) +inv congNatIso^opFiso = _ +rightInv congNatIso^opFiso _ = refl +leftInv congNatIso^opFiso _ = refl -open isIsoC -open NatIso -open NatTrans -open Category -open Functor -open Iso - -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where - private - _⋆ᴰ_ : {x y z} (f : D [ x , y ]) (g : D [ y , z ]) D [ x , z ] - f ⋆ᴰ g = f ⋆⟨ D g - - -- natural isomorphism is symmetric - symNatIso : {F G : Functor C D} - F ≅ᶜ G - G ≅ᶜ F - symNatIso η .trans .N-ob x = η .nIso x .inv - symNatIso η .trans .N-hom _ = sqLL η - symNatIso η .nIso x .inv = η .trans .N-ob x - symNatIso η .nIso x .sec = η .nIso x .ret - symNatIso η .nIso x .ret = η .nIso x .sec - - -- Properties - - -- path helpers - module NatTransP where - - module _ {F G : Functor C D} where - - -- same as Sigma version - NatTransΣ : Type (ℓ-max (ℓ-max ℓC ℓC') ℓD') - NatTransΣ = Σ[ ob ((x : C .ob) D [(F .F-ob x) , (G .F-ob x)]) ] - ({x y : _ } (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (ob y) (ob x) ⋆ᴰ (G .F-hom f)) - - NatTransIsoΣ : Iso (NatTrans F G) NatTransΣ - NatTransIsoΣ .fun (natTrans N-ob N-hom) = N-ob , N-hom - NatTransIsoΣ .inv (N-ob , N-hom) = (natTrans N-ob N-hom) - NatTransIsoΣ .rightInv _ = refl - NatTransIsoΣ .leftInv _ = refl - - NatTrans≡Σ : NatTrans F G NatTransΣ - NatTrans≡Σ = isoToPath NatTransIsoΣ - - -- introducing paths - NatTrans-≡-intro : {αo βo : N-ob-Type F G} - {αh : N-hom-Type F G αo} - {βh : N-hom-Type F G βo} - (p : αo βo) - PathP i ({x y : C .ob} (f : C [ x , y ]) (F .F-hom f) ⋆ᴰ (p i y) (p i x) ⋆ᴰ (G .F-hom f))) αh βh - natTrans {F = F} {G} αo αh natTrans βo βh - NatTrans-≡-intro p q i = natTrans (p i) (q i) - - module _ {F G : Functor C D} {α β : NatTrans F G} where - open Iso - private - αOb = α .N-ob - βOb = β .N-ob - αHom = α .N-hom - βHom = β .N-hom - -- path between natural transformations is the same as a pair of paths (between ob and hom) - NTPathIsoPathΣ : Iso (α β) - (Σ[ p (αOb βOb) ] - (PathP i ({x y : _} (f : _) F f ⋆ᴰ (p i y) (p i x) ⋆ᴰ G f )) - αHom - βHom)) - NTPathIsoPathΣ .fun p = i p i .N-ob) , i p i .N-hom) - NTPathIsoPathΣ .inv (po , ph) i = record { N-ob = po i ; N-hom = ph i } - NTPathIsoPathΣ .rightInv = refl - NTPathIsoPathΣ .leftInv p = refl - - NTPath≃PathΣ = isoToEquiv NTPathIsoPathΣ - - NTPath≡PathΣ = ua NTPath≃PathΣ - - module _ where - open NatTransP - - isSetNatTrans : {F G : Functor C D} isSet (NatTrans F G) - isSetNatTrans = - isSetRetract (fun NatTransIsoΣ) (inv NatTransIsoΣ) (leftInv NatTransIsoΣ) - (isSetΣSndProp (isSetΠ _ isSetHom D)) - _ isPropImplicitΠ2 _ _ isPropΠ _ isSetHom D _ _)))) - - --- Natural isomorphism is path when the target category is univalent. - -module _ - {C : Category ℓC ℓC'} - {D : Category ℓD ℓD'}(isUnivD : isUnivalent D) - {F G : Functor C D} where - - open isUnivalent isUnivD - - NatIsoToPath : NatIso F G F G - NatIsoToPath niso = - Functor≡ x CatIsoToPath (_ , niso .nIso x)) - f isoToPath-Square isUnivD _ _ _ _ (niso .trans .N-hom f)) - - NatIso→Path→NatIso : (niso : NatIso F G) pathToNatIso (NatIsoToPath niso) niso - NatIso→Path→NatIso niso = NatIso≡ i x secEq (univEquiv _ _) (_ , niso .nIso x) i .fst) - - Path→NatIso→Path : (p : F G) NatIsoToPath (pathToNatIso p) p - Path→NatIso→Path p = FunctorPath≡ i j x retEq (univEquiv _ _) i p i .F-ob x) i j) - - Iso-Path-NatIso : Iso (F G) (NatIso F G) - Iso-Path-NatIso = iso pathToNatIso NatIsoToPath NatIso→Path→NatIso Path→NatIso→Path - - Path≃NatIso : (F G) NatIso F G - Path≃NatIso = isoToEquiv Iso-Path-NatIso -module _ {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} where - seqNatIso : {F G H : Functor C D} NatIso F G NatIso G H NatIso F H - seqNatIso ı ı' .trans = seqTrans (ı .trans) (ı' .trans) - seqNatIso ı ı' .nIso x .inv = ı' .nIso x .inv ⋆⟨ D ı .nIso x .inv - seqNatIso ı ı' .nIso x .sec = - D .⋆Assoc _ _ _ - cong (_⋆_ D (ı' .nIso x .inv)) - (sym (D .⋆Assoc _ _ _) - cong (D ı' .trans .N-ob x) (ı .nIso x .sec) - D .⋆IdL (ı' .trans .N-ob x)) - ı' .nIso x .sec - seqNatIso ı ı' .nIso x .ret = - (sym (D .⋆Assoc _ _ _)) - cong (_∘_ D (ı .nIso x .inv)) - (D .⋆Assoc _ _ _ - cong (D ı .trans .N-ob x) (ı' .nIso x .ret) - D .⋆IdR (ı .trans .N-ob x)) - ı .nIso x .ret - - CAT⋆IdR : {F : Functor C D} NatIso (Id ∘F F) F - CAT⋆IdR {F} .trans .N-ob = idTrans F .N-ob - CAT⋆IdR {F} .trans .N-hom = idTrans F .N-hom - CAT⋆IdR {F} .nIso = idNatIso F .nIso - -module _ {B : Category ℓB ℓB'}{C : Category ℓC ℓC'}{D : Category ℓD ℓD'} where - _∘ʳi_ : (K : Functor C D) {G H : Functor B C} (β : NatIso G H) - NatIso (K ∘F G) (K ∘F H) - _∘ʳi_ K β .trans = K ∘ʳ β .trans - _∘ʳi_ K β .nIso x = preserveIsosF {F = K} (β .trans .N-ob _ , β .nIso x) .snd - - open Functor - _∘ˡi_ : (K : Functor B C) {G H : Functor C D} (β : NatIso G H) - NatIso (G ∘F K) (H ∘F K) - _∘ˡi_ K β .trans = β .trans ∘ˡ K - _∘ˡi_ K β .nIso b = β .nIso (K b ) - - CAT⋆Assoc : {E : Category ℓE ℓE'} - (F : Functor B C)(G : Functor C D)(H : Functor D E) - NatIso (H ∘F (G ∘F F)) ((H ∘F G) ∘F F) - CAT⋆Assoc F G H .trans .N-ob = idTrans ((H ∘F G) ∘F F) .N-ob - CAT⋆Assoc F G H .trans .N-hom = idTrans ((H ∘F G) ∘F F) .N-hom - CAT⋆Assoc F G H .nIso = idNatIso ((H ∘F G) ∘F F) .nIso \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.Base.html b/Cubical.Categories.Presheaf.Base.html index 446fcc07ea..7794e36bd1 100644 --- a/Cubical.Categories.Presheaf.Base.html +++ b/Cubical.Categories.Presheaf.Base.html @@ -14,7 +14,7 @@ ℓ' ℓS : Level Presheaf : Category ℓ' (ℓS : Level) Type (ℓ-max (ℓ-max ℓ') (ℓ-suc ℓS)) -Presheaf C ℓS = Functor (C ^op) (SET ℓS) +Presheaf C ℓS = Functor (C ^op) (SET ℓS) PresheafCategory : Category ℓ' (ℓS : Level) Category (ℓ-max (ℓ-max ℓ') (ℓ-suc ℓS)) @@ -26,24 +26,24 @@ isUnivalentPresheafCategory = isUnivalentFUNCTOR _ _ isUnivalentSET open Category -open Functor +open Functor action : (C : Category ℓ') (P : Presheaf C ℓS) - {a b : C .ob} C [ a , b ] fst (P b ) fst (P a ) -action C P = P .F-hom + {a b : C .ob} C [ a , b ] fst (P b ) fst (P a ) +action C P = P .F-hom -- Convenient notation for naturality syntax action C P f ϕ = ϕ ∘ᴾ⟨ C , P f ∘ᴾId : (C : Category ℓ') (P : Presheaf C ℓS) {a : C .ob} - (ϕ : fst (P a )) + (ϕ : fst (P a )) ϕ ∘ᴾ⟨ C , P C .id ϕ -∘ᴾId C P ϕ i = P .F-id i ϕ +∘ᴾId C P ϕ i = P .F-id i ϕ ∘ᴾAssoc : (C : Category ℓ') (P : Presheaf C ℓS) {a b c : C .ob} - (ϕ : fst (P c )) + (ϕ : fst (P c )) (f : C [ b , c ]) (g : C [ a , b ]) ϕ ∘ᴾ⟨ C , P (f ∘⟨ C g) (ϕ ∘ᴾ⟨ C , P f) ∘ᴾ⟨ C , P g -∘ᴾAssoc C P ϕ f g i = P .F-seq f g i ϕ +∘ᴾAssoc C P ϕ f g i = P .F-seq f g i ϕ \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.KanExtension.html b/Cubical.Categories.Presheaf.KanExtension.html index 7cd66ca697..0b258237b5 100644 --- a/Cubical.Categories.Presheaf.KanExtension.html +++ b/Cubical.Categories.Presheaf.KanExtension.html @@ -30,10 +30,10 @@ module Lan {ℓC ℓC' ℓD ℓD'} ℓS {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (F : Functor C D) + (F : Functor C D) where - open Functor + open Functor open NatTrans private @@ -47,18 +47,18 @@ -} = ℓ-max (ℓ-max (ℓ-max ℓC ℓC') ℓD') ℓS - module _ (G : Functor (C ^op) (SET )) where + module _ (G : Functor (C ^op) (SET )) where -- Definition of the coend module _ (d : D.ob) where Raw : Type - Raw = Σ[ c C.ob ] Σ[ g D.Hom[ d , F c ] ] G .F-ob c .fst + Raw = Σ[ c C.ob ] Σ[ g D.Hom[ d , F c ] ] G .F-ob c .fst data _≈_ : (u v : Raw) Type where - shift : {c c' : C.ob} (g : D.Hom[ d , F c ]) (f : C.Hom[ c , c' ]) (a : (G c' ) .fst) - (c' , (g D.⋆ F f ) , a) (c , g , (G f ) a) + shift : {c c' : C.ob} (g : D.Hom[ d , F c ]) (f : C.Hom[ c , c' ]) (a : (G c' ) .fst) + (c' , (g D.⋆ F f ) , a) (c , g , (G f ) a) Quo = Raw / _≈_ @@ -71,8 +71,8 @@ mapR h (shift/ g f a i) = hcomp j λ - { (i = i0) [ _ , D.⋆Assoc h g (F f ) j , a ] - ; (i = i1) [ _ , h D.⋆ g , (G f ) a ] + { (i = i0) [ _ , D.⋆Assoc h g (F f ) j , a ] + ; (i = i1) [ _ , h D.⋆ g , (G f ) a ] }) (shift/ (h D.⋆ g) f a i) mapR h (squash/ t u p q i j) = @@ -88,23 +88,23 @@ mapR∘ h' h = funExt (elimProp _ squash/ _ _) (c , g , a) i [ c , D.⋆Assoc h' h g i , a ])) - LanOb : Functor (C ^op) (SET ) Functor (D ^op) (SET _) - LanOb G .F-ob d .fst = Quo G d - LanOb G .F-ob d .snd = squash/ - LanOb G .F-hom = mapR G - LanOb G .F-id {d} = mapRId G d - LanOb G .F-seq h h' = mapR∘ G h' h + LanOb : Functor (C ^op) (SET ) Functor (D ^op) (SET _) + LanOb G .F-ob d .fst = Quo G d + LanOb G .F-ob d .snd = squash/ + LanOb G .F-hom = mapR G + LanOb G .F-id {d} = mapRId G d + LanOb G .F-seq h h' = mapR∘ G h' h -- Action of Quo on arrows in Cᵒᵖ → Set - module _ {G G' : Functor (C ^op) (SET )} (α : NatTrans G G') where + module _ {G G' : Functor (C ^op) (SET )} (α : NatTrans G G') where mapL : (d : D.ob) Quo G d Quo G' d mapL d [ c , g , a ] = [ c , g , α .N-ob c a ] mapL d (shift/ g f a i) = hcomp j λ - { (i = i0) [ _ , (g D.⋆ F f ) , α .N-ob _ a ] + { (i = i0) [ _ , (g D.⋆ F f ) , α .N-ob _ a ] ; (i = i1) [ _ , g , funExt⁻ (α .N-hom f) a (~ j) ] }) (shift/ g f ((α _ ) a) i) @@ -115,87 +115,87 @@ mapL d' mapR G h mapR G' h mapL d mapLR h = funExt (elimProp _ squash/ _ _) _ refl)) - mapLId : (G : Functor (C ^op) (SET )) + mapLId : (G : Functor (C ^op) (SET )) (d : D.ob) mapL (idTrans G) d idfun (Quo G d) mapLId G d = funExt (elimProp _ squash/ _ _) _ refl)) - mapL∘ : {G G' G'' : Functor (C ^op) (SET )} + mapL∘ : {G G' G'' : Functor (C ^op) (SET )} (β : NatTrans G' G'') (α : NatTrans G G') (d : D.ob) mapL (seqTrans α β) d mapL β d mapL α d mapL∘ β α d = funExt (elimProp _ squash/ _ _) _ refl)) - LanHom : {G G' : Functor (C ^op) (SET )} + LanHom : {G G' : Functor (C ^op) (SET )} NatTrans G G' NatTrans (LanOb G) (LanOb G') LanHom α .N-ob = mapL α LanHom α .N-hom = mapLR α -- Definition of the left Kan extension functor - Lan : Functor (FUNCTOR (C ^op) (SET )) (FUNCTOR (D ^op) (SET )) - Lan .F-ob = LanOb - Lan .F-hom = LanHom - Lan .F-id {G} = makeNatTransPath (funExt (mapLId G)) - Lan .F-seq α β = makeNatTransPath (funExt (mapL∘ β α)) + Lan : Functor (FUNCTOR (C ^op) (SET )) (FUNCTOR (D ^op) (SET )) + Lan .F-ob = LanOb + Lan .F-hom = LanHom + Lan .F-id {G} = makeNatTransPath (funExt (mapLId G)) + Lan .F-seq α β = makeNatTransPath (funExt (mapL∘ β α)) -- Adjunction between the left Kan extension and precomposition private - F* = precomposeF (SET ) (F ^opF) + F* = precomposeF (SET ) (F ^opF) - open UnitCounit + open UnitCounit - η : 𝟙⟨ FUNCTOR (C ^op) (SET ) funcComp F* Lan + η : 𝟙⟨ FUNCTOR (C ^op) (SET ) funcComp F* Lan η .N-ob G .N-ob c a = [ c , D.id , a ] η .N-ob G .N-hom {c'} {c} f = funExt λ a - [ c , D.id , (G f ) a ] + [ c , D.id , (G f ) a ] ≡⟨ sym (shift/ D.id f a) - [ c' , (D.id D.⋆ F f ) , a ] + [ c' , (D.id D.⋆ F f ) , a ] ≡[ i ]⟨ [ c' , lem i , a ] - [ c' , (F f D.⋆ D.id) , a ] + [ c' , (F f D.⋆ D.id) , a ] where - lem : D.id D.⋆ F f F f D.⋆ D.id - lem = D.⋆IdL (F f ) sym (D.⋆IdR (F f )) + lem : D.id D.⋆ F f F f D.⋆ D.id + lem = D.⋆IdL (F f ) sym (D.⋆IdR (F f )) η .N-hom f = makeNatTransPath refl - ε : funcComp Lan F* 𝟙⟨ FUNCTOR (D ^op) (SET ) + ε : funcComp Lan F* 𝟙⟨ FUNCTOR (D ^op) (SET ) ε .N-ob H .N-ob d = elim - _ (H d ) .snd) - (c , g , a) (H g ) a) - {_ _ (shift g f a) i H .F-seq (F f ) g i a}) + _ (H d ) .snd) + (c , g , a) (H g ) a) + {_ _ (shift g f a) i H .F-seq (F f ) g i a}) ε .N-ob H .N-hom g' = - funExt (elimProp _ (H _ ) .snd _ _) (c , g , a) funExt⁻ (H .F-seq g g') a)) + funExt (elimProp _ (H _ ) .snd _ _) (c , g , a) funExt⁻ (H .F-seq g g') a)) ε .N-hom {H} {H'} α = makeNatTransPath (funExt₂ λ d - elimProp _ (H' _ ) .snd _ _) + elimProp _ (H' _ ) .snd _ _) (c , g , a) sym (funExt⁻ (α .N-hom g) a))) - Δ₁ : G seqTrans (Lan η G ) (ε Lan G ) idTrans _ + Δ₁ : G seqTrans (Lan η G ) (ε Lan G ) idTrans _ Δ₁ G = makeNatTransPath (funExt₂ λ d elimProp _ squash/ _ _) (c , g , a) [ c , g D.⋆ D.id , a ] - ≡[ i ]⟨ [ c , (g D.⋆ F .F-id (~ i)) , a ] - [ c , g D.⋆ (F C.id ) , a ] + ≡[ i ]⟨ [ c , (g D.⋆ F .F-id (~ i)) , a ] + [ c , g D.⋆ (F C.id ) , a ] ≡⟨ shift/ g C.id a - [ c , g , (G C.id ) a ] - ≡[ i ]⟨ [ c , g , G .F-id i a ] + [ c , g , (G C.id ) a ] + ≡[ i ]⟨ [ c , g , G .F-id i a ] [ c , g , a ] )) - Δ₂ : H seqTrans (η F* H ) (F* ε H ) idTrans _ - Δ₂ H = makeNatTransPath (funExt λ c H .F-id) + Δ₂ : H seqTrans (η F* H ) (F* ε H ) idTrans _ + Δ₂ H = makeNatTransPath (funExt λ c H .F-id) - adj : Lan F* - adj ._⊣_.η = η - adj ._⊣_.ε = ε - adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₁ = Δ₁ - adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₂ = Δ₂ + adj : Lan F* + adj ._⊣_.η = η + adj ._⊣_.ε = ε + adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₁ = Δ₁ + adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₂ = Δ₂ {- Right Kan extension of a functor C → D to a functor PresheafCategory C ℓ → PresheafCategory D ℓ @@ -204,10 +204,10 @@ module Ran {ℓC ℓC' ℓD ℓD'} ℓS {C : Category ℓC ℓC'} {D : Category ℓD ℓD'} - (F : Functor C D) + (F : Functor C D) where - open Functor + open Functor open NatTrans private @@ -221,33 +221,33 @@ -} = ℓ-max (ℓ-max (ℓ-max ℓC ℓC') ℓD') ℓS - module _ (G : Functor (C ^op) (SET )) where + module _ (G : Functor (C ^op) (SET )) where -- Definition of the end record End (d : D.ob) : Type where field - fun : (c : C.ob) (g : D.Hom[ F c , d ]) G .F-ob c .fst - coh : {c c' : C.ob} (f : C.Hom[ c , c' ]) (g : D.Hom[ F c' , d ]) - fun c (F f ⋆⟨ D g) (G f ) (fun c' g) + fun : (c : C.ob) (g : D.Hom[ F c , d ]) G .F-ob c .fst + coh : {c c' : C.ob} (f : C.Hom[ c , c' ]) (g : D.Hom[ F c' , d ]) + fun c (F f ⋆⟨ D g) (G f ) (fun c' g) open End end≡ : {d : D.ob} {x x' : End d} (∀ c g x .fun c g x' .fun c g) x x' end≡ h i .fun c g = h c g i end≡ {_} {x} {x'} h i .coh f g = - isSet→isSet' (G .F-ob _ .snd) + isSet→isSet' (G .F-ob _ .snd) (x .coh f g) (x' .coh f g) - (h _ (F f ⋆⟨ D g)) - (cong (G f ) (h _ g)) + (h _ (F f ⋆⟨ D g)) + (cong (G f ) (h _ g)) i -- Action of End on arrows in D mapR : {d d' : D.ob} (h : D.Hom[ d' , d ]) End d End d' mapR h x .fun c g = x .fun c (g ⋆⟨ D h) - mapR h x .coh f g = cong (x .fun _) (D.⋆Assoc (F f ) g h) x .coh f (g ⋆⟨ D h) + mapR h x .coh f g = cong (x .fun _) (D.⋆Assoc (F f ) g h) x .coh f (g ⋆⟨ D h) mapRId : (d : D.ob) mapR (D.id {x = d}) idfun (End d) mapRId h = funExt λ x end≡ λ c g cong (x .fun c) (D.⋆IdR g) @@ -259,30 +259,30 @@ open End - RanOb : Functor (C ^op) (SET ) Functor (D ^op) (SET _) - RanOb G .F-ob d .fst = End G d - RanOb G .F-ob d .snd = + RanOb : Functor (C ^op) (SET ) Functor (D ^op) (SET _) + RanOb G .F-ob d .fst = End G d + RanOb G .F-ob d .snd = -- We use that End is equivalent to a Σ-type to prove its HLevel more easily isOfHLevelRetract 2 {B = - Σ[ z ((c : C.ob) (g : D.Hom[ F c , d ]) G .F-ob c .fst) ] - ({c c' : C.ob} (f : C.Hom[ c , c' ]) (g : D.Hom[ F c' , d ]) - z c (F f ⋆⟨ D g) (G f ) (z c' g)) + Σ[ z ((c : C.ob) (g : D.Hom[ F c , d ]) G .F-ob c .fst) ] + ({c c' : C.ob} (f : C.Hom[ c , c' ]) (g : D.Hom[ F c' , d ]) + z c (F f ⋆⟨ D g) (G f ) (z c' g)) } x λ where .fst x .fun; .snd x .coh) σ λ where .fun σ .fst; .coh σ .snd) _ refl) (isSetΣ - (isSetΠ2 λ _ _ G .F-ob _ .snd) + (isSetΠ2 λ _ _ G .F-ob _ .snd) _ isProp→isSet - (isPropImplicitΠ λ _ isPropImplicitΠ λ _ isPropΠ2 λ _ _ G .F-ob _ .snd _ _))) - RanOb G .F-hom = mapR G - RanOb G .F-id {d} = mapRId G d - RanOb G .F-seq h h' = mapR∘ G h' h + (isPropImplicitΠ λ _ isPropImplicitΠ λ _ isPropΠ2 λ _ _ G .F-ob _ .snd _ _))) + RanOb G .F-hom = mapR G + RanOb G .F-id {d} = mapRId G d + RanOb G .F-seq h h' = mapR∘ G h' h -- Action of End on arrows in Cᵒᵖ → Set - module _ {G G' : Functor (C ^op) (SET )} (α : NatTrans G G') where + module _ {G G' : Functor (C ^op) (SET )} (α : NatTrans G G') where mapL : (d : D.ob) End G d End G' d mapL d x .fun c g = (α c ) (x .fun c g) @@ -294,58 +294,58 @@ mapL d' mapR G h mapR G' h mapL d mapLR h = funExt λ _ end≡ _ λ _ _ refl - mapLId : (G : Functor (C ^op) (SET )) + mapLId : (G : Functor (C ^op) (SET )) (d : D.ob) mapL (idTrans G) d idfun (End G d) mapLId G d = funExt λ _ end≡ _ λ _ _ refl - mapL∘ : {G G' G'' : Functor (C ^op) (SET )} + mapL∘ : {G G' G'' : Functor (C ^op) (SET )} (β : NatTrans G' G'') (α : NatTrans G G') (d : D.ob) mapL (seqTrans α β) d mapL β d mapL α d mapL∘ β α d = funExt λ _ end≡ _ λ _ _ refl - RanHom : {G G' : Functor (C ^op) (SET )} + RanHom : {G G' : Functor (C ^op) (SET )} NatTrans G G' NatTrans (RanOb G) (RanOb G') RanHom α .N-ob = mapL α RanHom α .N-hom = mapLR α -- Definition of the right Kan extension functor - Ran : Functor (FUNCTOR (C ^op) (SET )) (FUNCTOR (D ^op) (SET )) - Ran .F-ob = RanOb - Ran .F-hom = RanHom - Ran .F-id {G} = makeNatTransPath (funExt (mapLId G)) - Ran .F-seq α β = makeNatTransPath (funExt (mapL∘ β α)) + Ran : Functor (FUNCTOR (C ^op) (SET )) (FUNCTOR (D ^op) (SET )) + Ran .F-ob = RanOb + Ran .F-hom = RanHom + Ran .F-id {G} = makeNatTransPath (funExt (mapLId G)) + Ran .F-seq α β = makeNatTransPath (funExt (mapL∘ β α)) -- Adjunction between precomposition and right Kan extension private - F* = precomposeF (SET ) (F ^opF) + F* = precomposeF (SET ) (F ^opF) - open UnitCounit + open UnitCounit - η : 𝟙⟨ FUNCTOR (D ^op) (SET ) (funcComp Ran F*) - η .N-ob G .N-ob d a .fun c g = (G g ) a - η .N-ob G .N-ob d a .coh f g = funExt⁻ (G .F-seq g (F f )) a - η .N-ob G .N-hom h = funExt λ a end≡ _ λ c g sym (funExt⁻ (G .F-seq h g) a) + η : 𝟙⟨ FUNCTOR (D ^op) (SET ) (funcComp Ran F*) + η .N-ob G .N-ob d a .fun c g = (G g ) a + η .N-ob G .N-ob d a .coh f g = funExt⁻ (G .F-seq g (F f )) a + η .N-ob G .N-hom h = funExt λ a end≡ _ λ c g sym (funExt⁻ (G .F-seq h g) a) η .N-hom {G} {G'} α = makeNatTransPath (funExt₂ λ d a end≡ _ λ c g sym (funExt⁻ (α .N-hom g) a)) - ε : funcComp F* Ran 𝟙⟨ FUNCTOR (C ^op) (SET ) + ε : funcComp F* Ran 𝟙⟨ FUNCTOR (C ^op) (SET ) ε .N-ob H .N-ob c x = x .fun c D.id ε .N-ob H .N-hom {c} {c'} g = funExt λ x cong (x .fun c') (D.⋆IdL _ sym (D.⋆IdR _)) x .coh g D.id ε .N-hom {H} {H'} α = makeNatTransPath refl - Δ₁ : G seqTrans (F* η G ) (ε F* G ) idTrans _ - Δ₁ G = makeNatTransPath (funExt₂ λ c a funExt⁻ (G .F-id) a) + Δ₁ : G seqTrans (F* η G ) (ε F* G ) idTrans _ + Δ₁ G = makeNatTransPath (funExt₂ λ c a funExt⁻ (G .F-id) a) - Δ₂ : H seqTrans (η Ran H ) (Ran ε H ) idTrans _ + Δ₂ : H seqTrans (η Ran H ) (Ran ε H ) idTrans _ Δ₂ H = makeNatTransPath (funExt₂ λ c x end≡ _ λ c' g cong (x .fun c') (D.⋆IdL g)) - adj : F* Ran - adj ._⊣_.η = η - adj ._⊣_.ε = ε - adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₁ = Δ₁ - adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₂ = Δ₂ + adj : F* Ran + adj ._⊣_.η = η + adj ._⊣_.ε = ε + adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₁ = Δ₁ + adj ._⊣_.triangleIdentities .TriangleIdentities.Δ₂ = Δ₂ \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.Morphism.html b/Cubical.Categories.Presheaf.Morphism.html index 8083e34e65..c5ba77a033 100644 --- a/Cubical.Categories.Presheaf.Morphism.html +++ b/Cubical.Categories.Presheaf.Morphism.html @@ -39,41 +39,41 @@ open Category open Contravariant -open Functor +open Functor open NatTrans open UniversalElement module _ {C : Category ℓc ℓc'}{D : Category ℓd ℓd'} - (F : Functor C D) + (F : Functor C D) (P : Presheaf C ℓp) (Q : Presheaf D ℓq) where PshHom : Type (ℓ-max (ℓ-max (ℓ-max ℓc ℓc') ℓp) ℓq) PshHom = PresheafCategory C (ℓ-max ℓp ℓq) - [ LiftF {ℓp}{ℓq} ∘F P , LiftF {ℓq}{ℓp} ∘F Q ∘F (F ^opF) ] + [ LiftF {ℓp}{ℓq} ∘F P , LiftF {ℓq}{ℓp} ∘F Q ∘F (F ^opF) ] module _ (h : PshHom) where -- This should define a functor on the category of elements pushElt : Elementᴾ {C = C} P Elementᴾ {C = D} Q - pushElt (A , η) = (F A ) , (h .N-ob A (lift η) .lower) + pushElt (A , η) = (F A ) , (h .N-ob A (lift η) .lower) pushEltNat : {B : C .ob} (η : Elementᴾ {C = C} P) (f : C [ B , η .fst ]) - (pushElt η .snd ∘ᴾ⟨ D , Q F .F-hom f) + (pushElt η .snd ∘ᴾ⟨ D , Q F .F-hom f) pushElt (B , η .snd ∘ᴾ⟨ C , P f) .snd pushEltNat η f i = h .N-hom f (~ i) (lift (η .snd)) .lower - pushEltF : Functor (∫ᴾ_ {C = C} P) (∫ᴾ_ {C = D} Q) - pushEltF .F-ob = pushElt - pushEltF .F-hom {x}{y} (f , commutes) .fst = F .F-hom f - pushEltF .F-hom {x}{y} (f , commutes) .snd = - pushElt _ .snd ∘ᴾ⟨ D , Q F .F-hom f + pushEltF : Functor (∫ᴾ_ {C = C} P) (∫ᴾ_ {C = D} Q) + pushEltF .F-ob = pushElt + pushEltF .F-hom {x}{y} (f , commutes) .fst = F .F-hom f + pushEltF .F-hom {x}{y} (f , commutes) .snd = + pushElt _ .snd ∘ᴾ⟨ D , Q F .F-hom f ≡⟨ pushEltNat y f pushElt (_ , y .snd ∘ᴾ⟨ C , P f) .snd ≡⟨ cong a pushElt a .snd) (ΣPathP (refl , commutes)) pushElt x .snd - pushEltF .F-id = Σ≡Prop x (Q _ ) .snd _ _) (F .F-id) - pushEltF .F-seq f g = - Σ≡Prop ((λ x (Q _ ) .snd _ _)) (F .F-seq (f .fst) (g .fst)) + pushEltF .F-id = Σ≡Prop x (Q _ ) .snd _ _) (F .F-id) + pushEltF .F-seq f g = + Σ≡Prop ((λ x (Q _ ) .snd _ _)) (F .F-seq (f .fst) (g .fst)) preservesRepresentation : (η : UniversalElement C P) Type (ℓ-max (ℓ-max ℓd ℓd') ℓq) diff --git a/Cubical.Categories.Presheaf.NonPresheaf.Cofree.html b/Cubical.Categories.Presheaf.NonPresheaf.Cofree.html index 394e218fe7..4b97e50d44 100644 --- a/Cubical.Categories.Presheaf.NonPresheaf.Cofree.html +++ b/Cubical.Categories.Presheaf.NonPresheaf.Cofree.html @@ -13,7 +13,7 @@ open import Cubical.Categories.Presheaf.NonPresheaf.Forget open Category -open Functor +open Functor open NatTrans private @@ -22,19 +22,19 @@ cofreePresheaf : (C : Category ℓ') NonPresheaf C ℓS Presheaf C (ℓ-max (ℓ-max ℓ') ℓS) -fst (F-ob (cofreePresheaf C X) c) = (b : ob C) C [ b , c ] fst (X b) -snd (F-ob (cofreePresheaf C X) c) = isSetΠ b isSetΠ _ snd (X b))) -F-hom (cofreePresheaf C X) {d}{c} ψ x b φ = x b (φ ⋆⟨ C ψ) -F-id (cofreePresheaf C X) {c} i x b φ = x b (⋆IdR C φ i) -F-seq (cofreePresheaf C X) {e}{d}{c} ω ψ i x b φ = x b (⋆Assoc C φ ψ ω (~ i)) +fst (F-ob (cofreePresheaf C X) c) = (b : ob C) C [ b , c ] fst (X b) +snd (F-ob (cofreePresheaf C X) c) = isSetΠ b isSetΠ _ snd (X b))) +F-hom (cofreePresheaf C X) {d}{c} ψ x b φ = x b (φ ⋆⟨ C ψ) +F-id (cofreePresheaf C X) {c} i x b φ = x b (⋆IdR C φ i) +F-seq (cofreePresheaf C X) {e}{d}{c} ω ψ i x b φ = x b (⋆Assoc C φ ψ ω (~ i)) CofreePresheaf : (C : Category ℓ') - Functor (NonPresheafCategory C ℓS) (PresheafCategory C (ℓ-max (ℓ-max ℓ') ℓS)) -F-ob (CofreePresheaf C) = cofreePresheaf C -N-ob (F-hom (CofreePresheaf C) {X} {Y} f) c x b φ = f b (x b φ) -N-hom (F-hom (CofreePresheaf C) {X} {Y} f) {c}{c'} g = refl -F-id (CofreePresheaf C) {X} = makeNatTransPath refl -F-seq (CofreePresheaf C) {X}{Y}{Z} f g = makeNatTransPath refl + Functor (NonPresheafCategory C ℓS) (PresheafCategory C (ℓ-max (ℓ-max ℓ') ℓS)) +F-ob (CofreePresheaf C) = cofreePresheaf C +N-ob (F-hom (CofreePresheaf C) {X} {Y} f) c x b φ = f b (x b φ) +N-hom (F-hom (CofreePresheaf C) {X} {Y} f) {c}{c'} g = refl +F-id (CofreePresheaf C) {X} = makeNatTransPath refl +F-seq (CofreePresheaf C) {X}{Y}{Z} f g = makeNatTransPath refl -- Prove relative adjunction w.r.t. a level-lift between SETs? \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.NonPresheaf.Forget.html b/Cubical.Categories.Presheaf.NonPresheaf.Forget.html index 6ab16cfbba..8384976aac 100644 --- a/Cubical.Categories.Presheaf.NonPresheaf.Forget.html +++ b/Cubical.Categories.Presheaf.NonPresheaf.Forget.html @@ -14,7 +14,7 @@ open import Cubical.Categories.Presheaf.Base open Category -open Functor +open Functor open NatTrans private @@ -28,9 +28,9 @@ Category (ℓ-max (ℓ-suc ℓS)) (ℓ-max ℓS) NonPresheafCategory C ℓS = ΠC (ob C) _ SET ℓS) -ForgetPresheaf : (C : Category ℓ') Functor (PresheafCategory C ℓS) (NonPresheafCategory C ℓS) -F-ob (ForgetPresheaf C) pshX = F-ob pshX -F-hom (ForgetPresheaf C) {pshX} {pshY} pshF = N-ob pshF -F-id (ForgetPresheaf C) {pshX} = refl -F-seq (ForgetPresheaf C) {pshX} {pshY} {pshZ} pshF pshG = refl +ForgetPresheaf : (C : Category ℓ') Functor (PresheafCategory C ℓS) (NonPresheafCategory C ℓS) +F-ob (ForgetPresheaf C) pshX = F-ob pshX +F-hom (ForgetPresheaf C) {pshX} {pshY} pshF = N-ob pshF +F-id (ForgetPresheaf C) {pshX} = refl +F-seq (ForgetPresheaf C) {pshX} {pshY} {pshZ} pshF pshG = refl \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.NonPresheaf.Free.html b/Cubical.Categories.Presheaf.NonPresheaf.Free.html index ba67bc8eff..9e3b3936d2 100644 --- a/Cubical.Categories.Presheaf.NonPresheaf.Free.html +++ b/Cubical.Categories.Presheaf.NonPresheaf.Free.html @@ -15,7 +15,7 @@ open import Cubical.Categories.Presheaf.NonPresheaf.Forget open Category -open Functor +open Functor open NatTrans private @@ -24,19 +24,19 @@ freePresheaf : (C : Category ℓ') isSet (ob C) NonPresheaf C ℓS Presheaf C (ℓ-max (ℓ-max ℓ') ℓS) -fst (F-ob (freePresheaf C isSetObC X) c) = Σ[ d ob C ] C [ c , d ] × fst (X d) -snd (F-ob (freePresheaf C isSetObC X) c) = isSetΣ isSetObC λ d isSet× (isSetHom C) (snd (X d)) -F-hom (freePresheaf C isSetObC X) {d}{c} φ (e , ψ , x) = e , φ ⋆⟨ C ψ , x -F-id (freePresheaf C isSetObC X) {c} i (d , φ , x) = d , ⋆IdL C φ i , x -F-seq (freePresheaf C isSetObC X) {e}{d}{c} ψ φ i (f , ω , x) = f , ⋆Assoc C φ ψ ω i , x +fst (F-ob (freePresheaf C isSetObC X) c) = Σ[ d ob C ] C [ c , d ] × fst (X d) +snd (F-ob (freePresheaf C isSetObC X) c) = isSetΣ isSetObC λ d isSet× (isSetHom C) (snd (X d)) +F-hom (freePresheaf C isSetObC X) {d}{c} φ (e , ψ , x) = e , φ ⋆⟨ C ψ , x +F-id (freePresheaf C isSetObC X) {c} i (d , φ , x) = d , ⋆IdL C φ i , x +F-seq (freePresheaf C isSetObC X) {e}{d}{c} ψ φ i (f , ω , x) = f , ⋆Assoc C φ ψ ω i , x FreePresheaf : (C : Category ℓ') isSet (ob C) - Functor (NonPresheafCategory C ℓS) (PresheafCategory C (ℓ-max (ℓ-max ℓ') ℓS)) -F-ob (FreePresheaf C isSetObC) X = freePresheaf C isSetObC X -N-ob (F-hom (FreePresheaf C isSetObC) {X} {Y} f) c (d , φ , x) = d , φ , f d x -N-hom (F-hom (FreePresheaf C isSetObC) {X} {Y} f) {c} {c'} g = refl -F-id (FreePresheaf C isSetObC) {X} = makeNatTransPath (funExt c funExt λ {(d , φ , x) refl})) -F-seq (FreePresheaf C isSetObC) {X}{Y}{Z} f g = makeNatTransPath (funExt c funExt λ {(d , φ , x) refl})) + Functor (NonPresheafCategory C ℓS) (PresheafCategory C (ℓ-max (ℓ-max ℓ') ℓS)) +F-ob (FreePresheaf C isSetObC) X = freePresheaf C isSetObC X +N-ob (F-hom (FreePresheaf C isSetObC) {X} {Y} f) c (d , φ , x) = d , φ , f d x +N-hom (F-hom (FreePresheaf C isSetObC) {X} {Y} f) {c} {c'} g = refl +F-id (FreePresheaf C isSetObC) {X} = makeNatTransPath (funExt c funExt λ {(d , φ , x) refl})) +F-seq (FreePresheaf C isSetObC) {X}{Y}{Z} f g = makeNatTransPath (funExt c funExt λ {(d , φ , x) refl})) -- Prove relative adjunction w.r.t. a level-lift between SETs? \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.Properties.html b/Cubical.Categories.Presheaf.Properties.html index a44d385955..75dc6926d4 100644 --- a/Cubical.Categories.Presheaf.Properties.html +++ b/Cubical.Categories.Presheaf.Properties.html @@ -32,9 +32,9 @@ -- (PresheafCategory C) / F ≃ᶜ PresheafCategory (∫ᴾ F) -module _ {ℓS : Level} (C : Category ℓ') (F : Functor (C ^op) (SET ℓS)) where +module _ {ℓS : Level} (C : Category ℓ') (F : Functor (C ^op) (SET ℓS)) where open Category - open Functor + open Functor open _≃ᶜ_ open WeakInverse open NatTrans @@ -49,7 +49,7 @@ fst a' fst b' PathP i fiber (ϕ c ) (px i)) a' b' fibersEqIfRepsEqNatTrans ϕ {c} {x} {x'} {px} {a , fiba} {b , fibb} p - = fibersEqIfRepsEq {isSetB = snd (F c )} (ϕ c ) p + = fibersEqIfRepsEq {isSetB = snd (F c )} (ϕ c ) p -- ======================================== -- K : Slice → PresheafCategory @@ -58,27 +58,27 @@ -- action on (slice) objects K-ob : (s : SliceCat .ob) (PresheafCategory (∫ᴾ F) ℓS .ob) -- we take (c , x) to the fiber in A of ϕ over x - K-ob (sliceob {A} ϕ) .F-ob (c , x) + K-ob (sliceob {A} ϕ) .F-ob (c , x) = (fiber (ϕ c ) x) - , isOfHLevelΣ 2 (snd (A c )) λ _ isSet→isGroupoid (snd (F c )) _ _ + , isOfHLevelΣ 2 (snd (A c )) λ _ isSet→isGroupoid (snd (F c )) _ _ -- for morphisms, we just apply A ⟪ h ⟫ (plus equality proof) - K-ob (sliceob {A} ϕ) .F-hom {d , y} {c , x} (h , com) (b , eq) - = ((A h ) b) - , ((ϕ c ) ((A h ) b) + K-ob (sliceob {A} ϕ) .F-hom {d , y} {c , x} (h , com) (b , eq) + = ((A h ) b) + , ((ϕ c ) ((A h ) b) ≡[ i ]⟨ (ϕ .N-hom h) i b - (F h ) ((ϕ d ) b) - ≡[ i ]⟨ (F h ) (eq i) - (F h ) y + (F h ) ((ϕ d ) b) + ≡[ i ]⟨ (F h ) (eq i) + (F h ) y ≡⟨ com x ) -- functoriality follows from functoriality of A - K-ob (sliceob {A} ϕ) .F-id {x = (c , x)} + K-ob (sliceob {A} ϕ) .F-id {x = (c , x)} = funExt λ { (a , fibp) - fibersEqIfRepsEqNatTrans ϕ i A .F-id i a) } - K-ob (sliceob {A} ϕ) .F-seq {x = (c , x)} {(d , y)} {(e , z)} (f' , eq1) (g' , eq2) + fibersEqIfRepsEqNatTrans ϕ i A .F-id i a) } + K-ob (sliceob {A} ϕ) .F-seq {x = (c , x)} {(d , y)} {(e , z)} (f' , eq1) (g' , eq2) = funExt λ { ( a , fibp ) - fibersEqIfRepsEqNatTrans ϕ i (A .F-seq f' g') i a) } + fibersEqIfRepsEqNatTrans ϕ i (A .F-seq f' g') i a) } -- action on morphisms (in this case, natural transformation) @@ -92,29 +92,29 @@ -- just apply the natural transformation (ε) we're given -- this ensures that we stay in the fiber over x due to the commutativity given by slicenesss - η-ob : (el : (∫ᴾ F) .ob) (fst (P el ) fst (Q el ) ) + η-ob : (el : (∫ᴾ F) .ob) (fst (P el ) fst (Q el ) ) η-ob (c , x) (a , ϕa≡x) = ((ε c ) a) , εψ≡ϕ ϕa≡x where εψ≡ϕ : (ψ c ) ((ε c ) a) (ϕ c ) a εψ≡ϕ i = ((com i) c ) a - η-hom : {el1 el2} (h : (∫ᴾ F) [ el1 , el2 ]) (ae : fst (P el2 )) η-ob el1 ((P h ) ae) (Q h ) (η-ob el2 ae) + η-hom : {el1 el2} (h : (∫ᴾ F) [ el1 , el2 ]) (ae : fst (P el2 )) η-ob el1 ((P h ) ae) (Q h ) (η-ob el2 ae) η-hom {el1 = (c , x)} {d , y} (h , eqh) (a , eqa) = fibersEqIfRepsEqNatTrans ψ i ε .N-hom h i a) - K : Functor SliceCat (PresheafCategory (∫ᴾ F) ℓS) - K .F-ob = K-ob - K .F-hom = K-hom - K .F-id = makeNatTransPath + K : Functor SliceCat (PresheafCategory (∫ᴾ F) ℓS) + K .F-ob = K-ob + K .F-hom = K-hom + K .F-id = makeNatTransPath (funExt λ cx@(c , x) funExt λ aeq@(a , eq) - fibersEqIfRepsEq {isSetB = snd (F c )} _ refl) - K .F-seq (slicehom α eqa) (slicehom β eqb) + fibersEqIfRepsEq {isSetB = snd (F c )} _ refl) + K .F-seq (slicehom α eqa) (slicehom β eqb) = makeNatTransPath (funExt λ cx@(c , x) funExt λ aeq@(a , eq) - fibersEqIfRepsEq {isSetB = snd (F c )} _ refl) + fibersEqIfRepsEq {isSetB = snd (F c )} _ refl) -- ======================================== @@ -128,44 +128,44 @@ where -- sends c to the disjoint union of all the images under P LF-ob : (c : C .ob) (SET _) .ob - LF-ob c = (Σ[ x fst (F c ) ] fst (P c , x )) , isSetΣ (snd (F c )) x snd (P c , x )) + LF-ob c = (Σ[ x fst (F c ) ] fst (P c , x )) , isSetΣ (snd (F c )) x snd (P c , x )) -- defines a function piecewise over the fibers by applying P LF-hom : {x y} (f : C [ y , x ]) (SET _) [ LF-ob x , LF-ob y ] - LF-hom {x = c} {d} f (x , a) = ((F f ) x) , (P f , refl ) a + LF-hom {x = c} {d} f (x , a) = ((F f ) x) , (P f , refl ) a - L-ob-ob : Functor (C ^op) (SET _) - L-ob-ob .F-ob = LF-ob - L-ob-ob .F-hom = LF-hom - L-ob-ob .F-id {x = c} + L-ob-ob : Functor (C ^op) (SET _) + L-ob-ob .F-ob = LF-ob + L-ob-ob .F-hom = LF-hom + L-ob-ob .F-id {x = c} = funExt idFunExt where idFunExt : (un : fst (LF-ob c)) (LF-hom (C .id) un) un idFunExt (x , X) = ΣPathP (leftEq , rightEq) where - leftEq : (F C .id ) x x - leftEq i = F .F-id i x + leftEq : (F C .id ) x x + leftEq i = F .F-id i x - rightEq : PathP i fst (P c , leftEq i )) - ((P C .id , refl ) X) X + rightEq : PathP i fst (P c , leftEq i )) + ((P C .id , refl ) X) X rightEq = left right where -- the id morphism in (∫ᴾ F) - ∫id = C .id , funExt⁻ (F .F-id) x + ∫id = C .id , funExt⁻ (F .F-id) x -- functoriality of P gives us close to what we want - right : (P ∫id ) X X - right i = P .F-id i X + right : (P ∫id ) X X + right i = P .F-id i X -- but need to do more work to show that (C .id , refl) ≡ ∫id - left : PathP i fst (P c , leftEq i )) - ((P C .id , refl ) X) - ((P ∫id ) X) - left i = (P ∫ᴾhomEq {F = F} (C .id , refl) ∫id i (c , leftEq i)) refl refl i ) X - L-ob-ob .F-seq {x = c} {d} {e} f g + left : PathP i fst (P c , leftEq i )) + ((P C .id , refl ) X) + ((P ∫id ) X) + left i = (P ∫ᴾhomEq {F = F} (C .id , refl) ∫id i (c , leftEq i)) refl refl i ) X + L-ob-ob .F-seq {x = c} {d} {e} f g = funExt seqFunEq where seqFunEq : (un : fst (LF-ob c)) @@ -175,26 +175,26 @@ -- the left component is comparing the action of F on x -- equality follows from functoriality of F -- leftEq : fst (LF-hom (g ⋆⟨ C ⟩ f) un) ≡ fst ((LF-hom g) (LF-hom f un)) - leftEq : (F g ⋆⟨ C f ) x (F g ) ((F f ) x) - leftEq i = F .F-seq f g i x + leftEq : (F g ⋆⟨ C f ) x (F g ) ((F f ) x) + leftEq i = F .F-seq f g i x -- on the right, equality also follows from functoriality of P -- but it's more complicated because of heterogeneity -- since leftEq is not a definitional equality - rightEq : PathP i fst (P e , leftEq i )) - ((P g ⋆⟨ C f , refl ) X) - ((P g , refl ) ((P f , refl ) X)) + rightEq : PathP i fst (P e , leftEq i )) + ((P g ⋆⟨ C f , refl ) X) + ((P g , refl ) ((P f , refl ) X)) rightEq = left right where -- functoriality of P only gets us to this weird composition on the left - right : (P (g , refl) ⋆⟨ (∫ᴾ F) (f , refl) ) X (P g , refl ) ((P f , refl ) X) - right i = P .F-seq (f , refl) (g , refl) i X + right : (P (g , refl) ⋆⟨ (∫ᴾ F) (f , refl) ) X (P g , refl ) ((P f , refl ) X) + right i = P .F-seq (f , refl) (g , refl) i X -- so we need to show that this composition is actually equal to the one we want - left : PathP i fst (P e , leftEq i )) - ((P g ⋆⟨ C f , refl ) X) - ((P (g , refl) ⋆⟨ (∫ᴾ F) (f , refl) ) X) - left i = (P ∫ᴾhomEq {F = F} (g ⋆⟨ C f , refl) ((g , refl) ⋆⟨ (∫ᴾ F) (f , refl)) i (e , leftEq i)) refl refl i ) X + left : PathP i fst (P e , leftEq i )) + ((P g ⋆⟨ C f , refl ) X) + ((P (g , refl) ⋆⟨ (∫ᴾ F) (f , refl) ) X) + left i = (P ∫ᴾhomEq {F = F} (g ⋆⟨ C f , refl) ((g , refl) ⋆⟨ (∫ᴾ F) (f , refl)) i (e , leftEq i)) refl refl i ) X L-ob-hom : L-ob-ob F L-ob-hom .N-ob c (x , _) = x L-ob-hom .N-hom f = funExt λ (x , _) refl @@ -213,9 +213,9 @@ arr .N-ob c (x , X) = x , ((η c , x ) X) arr .N-hom {c} {d} f = funExt natu where - natuType : fst (A c ) Type _ - natuType xX@(x , X) = ((F f ) x , (η d , (F f ) x ) ((P f , refl ) X)) ((F f ) x , (Q f , refl ) ((η c , x ) X)) - natu : (xX : fst (A c )) natuType xX + natuType : fst (A c ) Type _ + natuType xX@(x , X) = ((F f ) x , (η d , (F f ) x ) ((P f , refl ) X)) ((F f ) x , (Q f , refl ) ((η c , x ) X)) + natu : (xX : fst (A c )) natuType xX natu (x , X) = ΣPathP (refl , λ i (η .N-hom (f , refl) i) X) com : arr ⋆⟨ PresheafCategory C ℓS ψ ϕ @@ -225,11 +225,11 @@ (arr ●ᵛ ψ) c ϕ c comFunExt c = funExt λ x refl - L : Functor (PresheafCategory (∫ᴾ F) ℓS) SliceCat - L .F-ob = L-ob - L .F-hom = L-hom - L .F-id {cx} = SliceHom-≡-intro' (makeNatTransPath (funExt λ c refl)) - L .F-seq {cx} {dy} P Q = SliceHom-≡-intro' (makeNatTransPath (funExt λ c refl)) + L : Functor (PresheafCategory (∫ᴾ F) ℓS) SliceCat + L .F-ob = L-ob + L .F-hom = L-hom + L .F-id {cx} = SliceHom-≡-intro' (makeNatTransPath (funExt λ c refl)) + L .F-seq {cx} {dy} P Q = SliceHom-≡-intro' (makeNatTransPath (funExt λ c refl)) -- ======================================== -- η : 𝟙 ≅ LK @@ -251,18 +251,18 @@ -- the natural transformation -- just applies typeSectionIso - ηTrans : 𝟙⟨ SliceCat (L ∘F K) + ηTrans : 𝟙⟨ SliceCat (L ∘F K) ηTrans .N-ob sob@(sliceob {A} ϕ) = slicehom A⇒LK comm where - LKA = S-ob (L K sob ) - ψ = S-arr (L K sob ) + LKA = S-ob (L K sob ) + ψ = S-arr (L K sob ) A⇒LK : A LKA - A⇒LK .N-ob c = typeSectionIso {isSetB = snd (F c )} (ϕ c ) .fun + A⇒LK .N-ob c = typeSectionIso {isSetB = snd (F c )} (ϕ c ) .fun A⇒LK .N-hom {c} {d} f = funExt homFunExt where - homFunExt : (x : fst (A c )) - (((ϕ d ) ((A f ) x)) , ((A f ) x , refl)) ((F f ) ((ϕ c ) x) , (A f ) x , _) + homFunExt : (x : fst (A c )) + (((ϕ d ) ((A f ) x)) , ((A f ) x , refl)) ((F f ) ((ϕ c ) x) , (A f ) x , _) homFunExt x = ΣPathP ((λ i (ϕ .N-hom f i) x) , fibersEqIfRepsEqNatTrans ϕ refl) comm : (A⇒LK) ●ᵛ ψ ϕ @@ -270,7 +270,7 @@ ηTrans .N-hom {sliceob {A} α} {sliceob {B} β} (slicehom ϕ eq) = SliceHom-≡-intro' (makeNatTransPath (funExt c funExt λ a natFunExt c a))) where - natFunExt : (c : C .ob) (a : fst (A c )) + natFunExt : (c : C .ob) (a : fst (A c )) ((β c ) ((ϕ c ) a) , (ϕ c ) a , _) ((α c ) a , (ϕ c ) a , _) natFunExt c a = ΣPathP ((λ i ((eq i) c ) a) , fibersEqIfRepsEqNatTrans β refl) @@ -281,7 +281,7 @@ where isIsoCf : (c : C .ob) isIsoC _ (ηTrans .N-ob sob .S-hom c ) - isIsoCf c = Morphism.CatIso→isIso (Iso→CatIso (typeSectionIso {isSetB = snd (F c )} (ϕ c ))) + isIsoCf c = Morphism.CatIso→isIso (Iso→CatIso (typeSectionIso {isSetB = snd (F c )} (ϕ c ))) -- ======================================== @@ -302,66 +302,66 @@ -- the natural isomorphism -- applies typeFiberIso (inv) - εTrans : (K ∘F L) 𝟙⟨ PresheafCategory (∫ᴾ F) ℓS + εTrans : (K ∘F L) 𝟙⟨ PresheafCategory (∫ᴾ F) ℓS εTrans .N-ob P = natTrans γ-ob f funExt a γ-homFunExt f a)) where - KLP = K L P + KLP = K L P γ-ob : (el : (∫ᴾ F) .ob) - (fst (KLP el ) fst (P el ) ) - γ-ob el@(c , _) = typeFiberIso {isSetA = snd (F c )} x fst (P c , x )) .inv + (fst (KLP el ) fst (P el ) ) + γ-ob el@(c , _) = typeFiberIso {isSetA = snd (F c )} x fst (P c , x )) .inv -- naturality -- the annoying part is all the substs γ-homFunExt : {el2 el1} (f' : (∫ᴾ F) [ el2 , el1 ]) - (∀ (a : fst (KLP el1 )) γ-ob el2 ((KLP f' ) a) (P f' ) (γ-ob el1 a)) + (∀ (a : fst (KLP el1 )) γ-ob el2 ((KLP f' ) a) (P f' ) (γ-ob el1 a)) γ-homFunExt {d , y} {c , x} f'@(f , comm) a@((x' , X') , eq) i - = comp j fst (P d , eq' j )) j λ { (i = i0) left j - ; (i = i1) right j }) ((P f , refl ) X') + = comp j fst (P d , eq' j )) j λ { (i = i0) left j + ; (i = i1) right j }) ((P f , refl ) X') where -- fiber equality proof that we get from an application of KLP - eq' = snd ((KLP f' ) a) + eq' = snd ((KLP f' ) a) -- top right of the commuting diagram -- "remove" the subst from the inside - right : PathP i fst (P d , eq' i )) ((P f , refl ) X') ((P f , comm ) (subst _ eq X')) - right i = (P f , refl≡comm i ) (X'≡subst i) + right : PathP i fst (P d , eq' i )) ((P f , refl ) X') ((P f , comm ) (subst _ eq X')) + right i = (P f , refl≡comm i ) (X'≡subst i) where - refl≡comm : PathP i (F f ) (eq i) (eq' i)) refl comm - refl≡comm = isOfHLevel→isOfHLevelDep 1 (v , w) snd (F d ) ((F f ) w) v) refl comm λ i (eq' i , eq i) + refl≡comm : PathP i (F f ) (eq i) (eq' i)) refl comm + refl≡comm = isOfHLevel→isOfHLevelDep 1 (v , w) snd (F d ) ((F f ) w) v) refl comm λ i (eq' i , eq i) - X'≡subst : PathP i fst (P c , eq i )) X' (subst _ eq X') - X'≡subst = transport-filler i fst (P c , eq i )) X' + X'≡subst : PathP i fst (P c , eq i )) X' (subst _ eq X') + X'≡subst = transport-filler i fst (P c , eq i )) X' -- bottom left of the commuting diagram -- "remove" the subst from the outside - left : PathP i fst (P d , eq' i )) ((P f , refl ) X') (subst v fst (P d , v )) eq' ((P f , refl ) X')) - left = transport-filler i fst (P d , eq' i )) ((P f , refl ) X') + left : PathP i fst (P d , eq' i )) ((P f , refl ) X') (subst v fst (P d , v )) eq' ((P f , refl ) X')) + left = transport-filler i fst (P d , eq' i )) ((P f , refl ) X') εTrans .N-hom {P} {Q} α = makeNatTransPath (funExt λ cx funExt λ xX' ε-homFunExt cx xX') where - KLP = K L P + KLP = K L P -- naturality of the above construction applies a similar argument as in `γ-homFunExt` - ε-homFunExt : (cx@(c , x) : (∫ᴾ F) .ob) (xX'@((x' , X') , eq) : fst (KLP cx )) - subst v fst (Q c , v )) (snd ((K L α cx ) xX')) ((α c , x' ) X') + ε-homFunExt : (cx@(c , x) : (∫ᴾ F) .ob) (xX'@((x' , X') , eq) : fst (KLP cx )) + subst v fst (Q c , v )) (snd ((K L α cx ) xX')) ((α c , x' ) X') (α c , x ) (subst _ eq X') ε-homFunExt cx@(c , x) xX'@((x' , X') , eq) i - = comp j fst (Q c , eq j )) j λ { (i = i0) left j + = comp j fst (Q c , eq j )) j λ { (i = i0) left j ; (i = i1) right j }) ((α c , x' ) X') where eq' : x' x - eq' = snd ((K L α cx ) xX') + eq' = snd ((K L α cx ) xX') - right : PathP i fst (Q c , eq i )) ((α c , x' ) X') ((α c , x ) (subst _ eq X')) + right : PathP i fst (Q c , eq i )) ((α c , x' ) X') ((α c , x ) (subst _ eq X')) right i = (α c , eq i ) (X'≡subst i) where -- this is exactly the same as the one from before, can refactor? - X'≡subst : PathP i fst (P c , eq i )) X' (subst _ eq X') + X'≡subst : PathP i fst (P c , eq i )) X' (subst _ eq X') X'≡subst = transport-filler _ _ -- extracted out type since need to use in in 'left' body as well leftTy : (x' x) Type _ - leftTy eq* = PathP i fst (Q c , eq* i )) ((α c , x' ) X') (subst v fst (Q c , v )) eq' ((α c , x' ) X')) + leftTy eq* = PathP i fst (Q c , eq* i )) ((α c , x' ) X') (subst v fst (Q c , v )) eq' ((α c , x' ) X')) left : leftTy eq left = subst @@ -370,7 +370,7 @@ (transport-filler _ _) where eq'≡eq : eq' eq - eq'≡eq = snd (F c ) _ _ eq' eq + eq'≡eq = snd (F c ) _ _ eq' eq εIso : (P : PresheafCategory (∫ᴾ F) ℓS .ob) isIsoC (PresheafCategory (∫ᴾ F) ℓS) (εTrans P ) @@ -378,7 +378,7 @@ where isIsoC' : (cx : (∫ᴾ F) .ob) isIsoC (SET _) ((εTrans P ) cx ) - isIsoC' cx@(c , _) = Morphism.CatIso→isIso (Iso→CatIso (invIso (typeFiberIso {isSetA = snd (F c )} _))) + isIsoC' cx@(c , _) = Morphism.CatIso→isIso (Iso→CatIso (invIso (typeFiberIso {isSetA = snd (F c )} _))) -- putting it all together @@ -397,5 +397,5 @@ -- Isomorphism between presheaves of different levels PshIso : (C : Category ℓ') (P : Presheaf C ℓS) (Q : Presheaf C ℓS') Type _ PshIso {ℓS = ℓS}{ℓS' = ℓS'} C P Q = - NatIso (LiftF { = ℓS}{ℓ' = ℓS'} ∘F P) (LiftF { = ℓS'}{ℓ' = ℓS} ∘F Q) + NatIso (LiftF { = ℓS}{ℓ' = ℓS'} ∘F P) (LiftF { = ℓS'}{ℓ' = ℓS} ∘F Q) \ No newline at end of file diff --git a/Cubical.Categories.Presheaf.Representable.html b/Cubical.Categories.Presheaf.Representable.html index 7f4405e473..39099d6732 100644 --- a/Cubical.Categories.Presheaf.Representable.html +++ b/Cubical.Categories.Presheaf.Representable.html @@ -72,7 +72,7 @@ hasTerminalElement : Type (ℓ-max (ℓ-max ℓo ℓh) ℓp) hasTerminalElement = TerminalElement ∥₁ - isUniversal : (vertex : C .ob) (element : (P vertex ) .fst) + isUniversal : (vertex : C .ob) (element : (P vertex ) .fst) Type (ℓ-max (ℓ-max ℓo ℓh) ℓp) isUniversal vertex element = A isEquiv λ (f : C [ A , vertex ]) element ∘ᴾ⟨ C , P f @@ -83,7 +83,7 @@ record UniversalElement : Type (ℓ-max (ℓ-max ℓo ℓh) ℓp) where field vertex : C .ob - element : (P vertex ) .fst + element : (P vertex ) .fst universal : isUniversal vertex element unquoteDecl UniversalElementIsoΣ = @@ -115,7 +115,7 @@ .Iso.leftInv (repr .snd .trans) (~ i) A ) (lift f) .lower) - anIso : Iso (C [ A , repr .fst ]) (fst (Functor.F-ob P A)) + anIso : Iso (C [ A , repr .fst ]) (fst (Functor.F-ob P A)) anIso .Iso.fun f = (repr .snd .trans A ) (lift f) .lower anIso .Iso.inv p = repr .snd .nIso A .inv (lift p) .lower anIso .Iso.rightInv b = @@ -139,7 +139,7 @@ Representation≅UniversalElement .Iso.inv = universalElementToRepresentation Representation≅UniversalElement .Iso.rightInv η = isoFunInjective UniversalElementIsoΣ _ _ - (ΣPathP (refl , (Σ≡Prop _ isPropIsUniversal _ _) + (ΣPathP (refl , (Σ≡Prop _ isPropIsUniversal _ _) (yonedaᴾ* {C = C} P (η .vertex) .Iso.rightInv (η .element))))) Representation≅UniversalElement .Iso.leftInv repr = ΣPathP (refl , @@ -153,11 +153,11 @@ isTerminalToIsUniversal {η} term A .equiv-proof ϕ .fst .snd = term (_ , ϕ) .fst .snd isTerminalToIsUniversal {η} term A .equiv-proof ϕ .snd (f , commutes) = - Σ≡Prop _ (P A ) .snd _ _) + Σ≡Prop _ (P A ) .snd _ _) (cong fst (term (A , ϕ) .snd (f , commutes))) isUniversalToIsTerminal : - (vertex : C .ob) (element : (P vertex ) .fst) + (vertex : C .ob) (element : (P vertex ) .fst) isUniversal vertex element isTerminal Elements (vertex , element) isUniversalToIsTerminal vertex element universal ϕ .fst .fst = @@ -165,8 +165,8 @@ isUniversalToIsTerminal vertex element universal ϕ .fst .snd = universal _ .equiv-proof (ϕ .snd) .fst .snd isUniversalToIsTerminal vertex element universal ϕ .snd (f , commutes) = - Σ≡Prop - _ (P _ ) .snd _ _) + Σ≡Prop + _ (P _ ) .snd _ _) (cong fst (universal _ .equiv-proof (ϕ .snd) .snd (f , commutes))) terminalElementToUniversalElement : TerminalElement UniversalElement @@ -186,9 +186,9 @@ TerminalElement≅UniversalElement .Iso.inv = universalElementToTerminalElement TerminalElement≅UniversalElement .Iso.rightInv η = isoFunInjective UniversalElementIsoΣ _ _ - (ΣPathP (refl , (Σ≡Prop _ isPropIsUniversal _ _) refl))) + (ΣPathP (refl , (Σ≡Prop _ isPropIsUniversal _ _) refl))) TerminalElement≅UniversalElement .Iso.leftInv η = - Σ≡Prop (isPropIsTerminal Elements) refl + Σ≡Prop (isPropIsTerminal Elements) refl Representation≅TerminalElement : Iso Representation TerminalElement Representation≅TerminalElement = diff --git a/Cubical.Categories.Profunctor.Base.html b/Cubical.Categories.Profunctor.Base.html index 410fd671d0..0fd33a948b 100644 --- a/Cubical.Categories.Profunctor.Base.html +++ b/Cubical.Categories.Profunctor.Base.html @@ -83,23 +83,23 @@ _⋆D_ = D._⋆_ Het[_,_] : C.ob D.ob Type ℓ' - Het[ c , d ] = asFunc c , d + Het[ c , d ] = asFunc c , d _⋆L⟨_⟩⋆R_ : {c c' d' d} (f : C.Hom[ c , c' ])(r : Het[ c' , d' ])(g : D.Hom[ d' , d ]) Het[ c , d ] - f ⋆L⟨ r ⟩⋆R g = Functor.F-hom R (f , g) r + f ⋆L⟨ r ⟩⋆R g = Functor.F-hom R (f , g) r ⋆L⟨⟩⋆RAssoc : {c c' c'' d'' d' d} (f : C.Hom[ c , c' ]) (f' : C.Hom[ c' , c'' ]) (r : Het[ c'' , d'' ]) (g' : D.Hom[ d'' , d' ]) (g : D.Hom[ d' , d ]) (f ⋆C f') ⋆L⟨ r ⟩⋆R (g' ⋆D g) f ⋆L⟨ f' ⋆L⟨ r ⟩⋆R g' ⟩⋆R g - ⋆L⟨⟩⋆RAssoc f f' r g' g i = Functor.F-seq R (f' , g') (f , g) i r + ⋆L⟨⟩⋆RAssoc f f' r g' g i = Functor.F-seq R (f' , g') (f , g) i r ⋆L⟨⟩⋆RId : {c d} (r : Het[ c , d ]) C.id ⋆L⟨ r ⟩⋆R D.id r - ⋆L⟨⟩⋆RId r i = Functor.F-id R i r + ⋆L⟨⟩⋆RId r i = Functor.F-id R i r _⋆L_ : {c c' : C.ob} {d : D.ob} @@ -191,29 +191,29 @@ swap : {C D : Cat} C D (D ^op) (C ^op) swap R = fromFunc - record { F-ob = λ (d , c) R.F-ob (c , d) - ; F-hom = λ (f , g) R.F-hom (g , f) - ; F-id = R.F-id - ; F-seq = λ (fl , fr) (gl , gr) R.F-seq (fr , fl) (gr , gl) + record { F-ob = λ (d , c) R.F-ob (c , d) + ; F-hom = λ (f , g) R.F-hom (g , f) + ; F-id = R.F-id + ; F-seq = λ (fl , fr) (gl , gr) R.F-seq (fr , fl) (gr , gl) } - where module R = Functor (Profunctor⊶.asFunc R) + where module R = Functor (Profunctor⊶.asFunc R) HomProf : (C : Cat) C C HomProf C = fromFunc (HomFunctor C) _profF⊶[_,_] : {B C D E : Cat} (R : D E) - (F : Functor B D) - (G : Functor C E) + (F : Functor B D) + (G : Functor C E) B C - R profF⊶[ F , G ] = fromFunc ((Profunctor⊶.asFunc R) ∘F ((F ^opF) ×F G)) + R profF⊶[ F , G ] = fromFunc ((Profunctor⊶.asFunc R) ∘F ((F ^opF) ×F G)) - _Represents_ : {C D : Cat} (F : Functor C D) (R : C D) Type _ + _Represents_ : {C D : Cat} (F : Functor C D) (R : C D) Type _ _Represents_ {C}{D} F R = - NatIso (Profunctor⊶.asFunc (HomProf D profF⊶[ F , Id {C = D} ])) (Profunctor⊶.asFunc R) + NatIso (Profunctor⊶.asFunc (HomProf D profF⊶[ F , Id {C = D} ])) (Profunctor⊶.asFunc R) Representable : {C D : Cat} C D Type _ - Representable {C}{D} R = Σ[ F Functor C D ] (F Represents R) + Representable {C}{D} R = Σ[ F Functor C D ] (F Represents R) record Representable' {C D : Cat} (R : C D) : Type (ℓ-max (ℓ-suc ℓ')) where module R = Profunctor⊶ R @@ -245,14 +245,14 @@ induction (r ⋆R k) - F : Functor C D + F : Functor C D F = record - { F-ob = F₀ - ; F-hom = λ f induction ( f ⋆L unit) - ; F-id = induction (C.id ⋆L unit) ≡⟨ i induction (⋆LId unit i)) + { F-ob = F₀ + ; F-hom = λ f induction ( f ⋆L unit) + ; F-id = induction (C.id ⋆L unit) ≡⟨ i induction (⋆LId unit i)) induction unit ≡⟨ sym weak-extensionality D.id - ; F-seq = λ f g + ; F-seq = λ f g induction ((f ⋆C g) ⋆L unit) ≡⟨ i induction (⋆LAssoc f g unit i)) induction (f ⋆L (g ⋆L unit)) ≡⟨ i induction (f ⋆L sym (computation (g ⋆L unit)) i)) induction (f ⋆L (unit ⋆R (induction (g ⋆L unit)))) ≡⟨ i induction (sym (⋆L⋆RAssoc f unit (induction (g ⋆L unit))) i)) @@ -260,17 +260,17 @@ induction (f ⋆L unit) ⋆D induction (g ⋆L unit) } - module F = Functor F + module F = Functor F unduction : {c : C.ob} {d : D.ob} D.Hom[ F₀ c , d ] Het[ c , d ] unduction f = unit ⋆R f - induction⁻¹ : homomorphism (HomProf D profF⊶[ F , Id ]) R + induction⁻¹ : homomorphism (HomProf D profF⊶[ F , Id ]) R induction⁻¹ = natTrans x r unduction r) λ f⋆g i r unduction-is-natural (fst f⋆g) (snd f⋆g) r i where unduction-is-natural : {c c' d' d} (f : C.Hom[ c , c' ])(g : D.Hom[ d' , d ])(IP : D.Hom[ F₀ c' , d' ]) - unduction ((F f ⋆D IP) ⋆D g) f ⋆L⟨ unduction IP ⟩⋆R g + unduction ((F f ⋆D IP) ⋆D g) f ⋆L⟨ unduction IP ⟩⋆R g unduction-is-natural f g IP = unit ⋆R ((induction (f ⋆L unit) ⋆D IP) ⋆D g) ≡⟨ i unit ⋆R D.⋆Assoc (induction (f ⋆L unit)) IP g i) unit ⋆R (induction (f ⋆L unit) ⋆D (IP ⋆D g)) ≡⟨ ⋆RAssoc unit _ (IP ⋆D g) @@ -304,7 +304,7 @@ Repr⇒Repr' : {C D} (R : C D) Representable R Representable' R Repr⇒Repr' {C}{D} R (F , F-repr-R) = record - { F₀ = F.F-ob + { F₀ = F.F-ob ; unit = unduction D.id ; induction = induction ; computation = computation @@ -313,35 +313,35 @@ where module R = Profunctor⊶ R open R - module F = Functor F + module F = Functor F module F-repr-R = NatIso F-repr-R - induction : {c d} Het[ c , d ] D.Hom[ F.F-ob c , d ] + induction : {c d} Het[ c , d ] D.Hom[ F.F-ob c , d ] induction r = isIso.inv (NatIso.nIso F-repr-R (_ , _)) r - unduction-homo : Homomorphism (HomProf D profF⊶[ F , Id ]) R + unduction-homo : Homomorphism (HomProf D profF⊶[ F , Id ]) R unduction-homo = record { asNatTrans = F-repr-R.trans } module unduction-homo = Homomorphism unduction-homo - unduction : {c d} D.Hom[ F.F-ob c , d ] Het[ c , d ] + unduction : {c d} D.Hom[ F.F-ob c , d ] Het[ c , d ] unduction = Homomorphism.app unduction-homo computation : {c d} (r : Het[ c , d ]) unduction D.id ⋆R induction r r computation r = (C.id ⋆L⟨ unduction D.id ⟩⋆R induction r) ≡⟨ sym (unduction-homo.homomorphism C.id D.id (induction r)) - unduction ((F.F-hom C.id ⋆D D.id) ⋆D induction r) ≡⟨ i unduction (D.⋆IdR (F.F-hom C.id) i ⋆D induction r)) - unduction (F.F-hom C.id ⋆D induction r) ≡⟨ i unduction (F.F-id i ⋆D induction r)) + unduction ((F.F-hom C.id ⋆D D.id) ⋆D induction r) ≡⟨ i unduction (D.⋆IdR (F.F-hom C.id) i ⋆D induction r)) + unduction (F.F-hom C.id ⋆D induction r) ≡⟨ i unduction (F.F-id i ⋆D induction r)) unduction (D.id ⋆D (induction r)) ≡⟨ i unduction (D.⋆IdL (induction r) i)) unduction (induction r) ≡⟨ i isIso.sec (NatIso.nIso F-repr-R _) i r) r - extensionality : {c d} (f : D.Hom[ F.F-ob c , d ]) f induction (unduction D.id ⋆R f) + extensionality : {c d} (f : D.Hom[ F.F-ob c , d ]) f induction (unduction D.id ⋆R f) extensionality f = f ≡⟨ sym i isIso.ret (NatIso.nIso F-repr-R _) i f) induction (unduction f) ≡⟨ i induction (unduction (sym (D.⋆IdL f) i))) induction (unduction (D.id ⋆D f)) ≡⟨ i induction (unduction (sym (D.⋆IdL D.id) i ⋆D f))) - induction (unduction ((D.id ⋆D D.id) ⋆D f)) ≡⟨ i induction (unduction ((sym F.F-id i ⋆D D.id) ⋆D f))) - induction (unduction ((F.F-hom C.id ⋆D D.id) ⋆D f)) ≡⟨ i induction (unduction-homo.homomorphism C.id D.id f i)) + induction (unduction ((D.id ⋆D D.id) ⋆D f)) ≡⟨ i induction (unduction ((sym F.F-id i ⋆D D.id) ⋆D f))) + induction (unduction ((F.F-hom C.id ⋆D D.id) ⋆D f)) ≡⟨ i induction (unduction-homo.homomorphism C.id D.id f i)) induction (C.id ⋆L⟨ unduction D.id ⟩⋆R f) diff --git a/Cubical.Categories.RezkCompletion.Base.html b/Cubical.Categories.RezkCompletion.Base.html index f4512b0788..1b47358773 100644 --- a/Cubical.Categories.RezkCompletion.Base.html +++ b/Cubical.Categories.RezkCompletion.Base.html @@ -30,7 +30,7 @@ -- because the universal property is naturally universal polymorphic, -- and so the predicate is not inside any universe of finite level. -isRezkCompletion : (F : Functor C D) Typeω +isRezkCompletion : (F : Functor C D) Typeω isRezkCompletion {D = D} F = isUnivalent D ×ω ({ ℓ' : Level}{E : Category ℓ'} isUnivalent E isEquivalence (precomposeF E F)) @@ -39,7 +39,7 @@ open _×ω_ -makeIsRezkCompletion : {F : Functor C D} isUnivalent D isWeakEquivalence F isRezkCompletion F +makeIsRezkCompletion : {F : Functor C D} isUnivalent D isWeakEquivalence F isRezkCompletion F makeIsRezkCompletion univ w-equiv .fst = univ makeIsRezkCompletion univ w-equiv .snd univE = isWeakEquiv→isEquivPrecomp univE _ w-equiv \ No newline at end of file diff --git a/Cubical.Categories.RezkCompletion.Construction.html b/Cubical.Categories.RezkCompletion.Construction.html index 28f62e738f..0599d0ae9d 100644 --- a/Cubical.Categories.RezkCompletion.Construction.html +++ b/Cubical.Categories.RezkCompletion.Construction.html @@ -48,7 +48,7 @@ isUnivalentYonedaImage : isUnivalent YonedaImage isUnivalentYonedaImage = isUnivalentEssentialImage _ isUnivalentPresheafCategory - ToYonedaImage : Functor C YonedaImage + ToYonedaImage : Functor C YonedaImage ToYonedaImage = ToEssentialImage _ isWeakEquivalenceToYonedaImage : isWeakEquivalence ToYonedaImage diff --git a/Cubical.Categories.TypesOfCategories.TypeCategory.html b/Cubical.Categories.TypesOfCategories.TypeCategory.html index e1899e3f13..2e76fe6df3 100644 --- a/Cubical.Categories.TypesOfCategories.TypeCategory.html +++ b/Cubical.Categories.TypesOfCategories.TypeCategory.html @@ -60,7 +60,7 @@ module _ { ℓ' ℓ'' : Level} (C : Category ℓ') where open isTypeCategory open Category - open Functor + open Functor open NatTrans private @@ -71,7 +71,7 @@ PSTy[_] : PresheafCategory C ℓ'' .ob Type _ PSTy[ Γ ] = Σ[ ΓA PresheafCategory C ℓ'' .ob ] Σ[ π ΓA Γ ] - (∀ (c : C .ob) isSurjSET {A = ΓA c } {Γ c } (π c )) + (∀ (c : C .ob) isSurjSET {A = ΓA c } {Γ c } (π c )) -- just directly use types from above as context extensions PSCext : (Γ : _) PSTy[ Γ ] Σ[ ΓA PresheafCategory C ℓ'' .ob ] ΓA Γ @@ -82,36 +82,36 @@ module _ {Δ Γ : PresheafCategory C ℓ'' .ob} (γ : Δ Γ) (A'@(ΓA , π , isSurjπ) : PSTy[ Γ ]) where ΔA : PresheafCategory C ℓ'' .ob - ΔA .F-ob c = ΔATy , isSetΔA + ΔA .F-ob c = ΔATy , isSetΔA where - ΔATy = (Σ[ x fst (Δ c ) ] fiber (π c ) ((γ c ) x)) + ΔATy = (Σ[ x fst (Δ c ) ] fiber (π c ) ((γ c ) x)) isSetΔA : isSet ΔATy - isSetΔA = isOfHLevelΣ 2 (snd (Δ c )) λ Γc isOfHLevelΣ 2 (snd (ΓA c )) λ ΓAc isProp→isSet (snd (Γ c ) _ _) + isSetΔA = isOfHLevelΣ 2 (snd (Δ c )) λ Γc isOfHLevelΣ 2 (snd (ΓA c )) λ ΓAc isProp→isSet (snd (Γ c ) _ _) -- for morphisms, we apply Δ ⟪ f ⟫ to the first component -- and ΓA ⟪ f ⟫ to the second -- the fiber rule - ΔA .F-hom {c} {d} f (δax , γax , eq) - = ((Δ f ) δax) - , (((ΓA f ) γax) - , ((π d ) ((ΓA f ) γax) + ΔA .F-hom {c} {d} f (δax , γax , eq) + = ((Δ f ) δax) + , (((ΓA f ) γax) + , ((π d ) ((ΓA f ) γax) ≡[ i ]⟨ π .N-hom f i γax - (Γ f ) ((π c ) γax) - ≡[ i ]⟨ (Γ f ) (eq i) - (Γ f ) ((γ c ) δax) + (Γ f ) ((π c ) γax) + ≡[ i ]⟨ (Γ f ) (eq i) + (Γ f ) ((γ c ) δax) ≡[ i ]⟨ γ .N-hom f (~ i) δax - (γ d ) ((Δ f ) δax) + (γ d ) ((Δ f ) δax) )) - ΔA .F-id {x = c} + ΔA .F-id {x = c} = funExt λ (δax , γax , eq) - ΣPathP ((λ i Δ .F-id i δax) - , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ - i ΓA .F-id i γax)) - ΔA .F-seq {a} {b} {c} f g + ΣPathP ((λ i Δ .F-id i δax) + , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ + i ΓA .F-id i γax)) + ΔA .F-seq {a} {b} {c} f g = funExt λ (δax , γax , eq) - ΣPathP ((λ i Δ .F-seq f g i δax) - , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ - λ i ΓA .F-seq f g i γax) + ΣPathP ((λ i Δ .F-seq f g i δax) + , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ + λ i ΓA .F-seq f g i γax) π' : ΔA Δ π' .N-ob c (x , snd) = x π' .N-hom f = refl @@ -119,7 +119,7 @@ PSReindex = ΔA , (π' , isSurj) where - isSurj : (c : C .ob) isSurjSET {A = ΔA c } {B = Δ c } (π' c ) + isSurj : (c : C .ob) isSurjSET {A = ΔA c } {B = Δ c } (π' c ) isSurj c δx = (δx , isSurjπ c ((γ c ) δx)) , refl PSq : ΔA ΓA @@ -144,11 +144,11 @@ , i (sq (~ i) c ) t)) α .N-hom {d} {c} f = funExt αHomExt where - αHomExt : (t : fst (Θ d )) - ((p₁ c ) ((Θ f ) t) , (p₂ c ) ((Θ f ) t), _) - ((Δ f ) ((p₁ d ) t) , (ΓA f ) ((p₂ d ) t) , _) + αHomExt : (t : fst (Θ d )) + ((p₁ c ) ((Θ f ) t) , (p₂ c ) ((Θ f ) t), _) + ((Δ f ) ((p₁ d ) t) , (ΓA f ) ((p₂ d ) t) , _) αHomExt t = ΣPathP ((λ i p₁ .N-hom f i t) - , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ + , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ i p₂ .N-hom f i t)) eq : _ @@ -165,10 +165,10 @@ eqβ1 = eqβ .fst eqβ2 = eqβ .snd eqExt : (c : C .ob) - (t : fst (Θ c )) + (t : fst (Θ c )) (α c ) t (β c ) t eqExt c t = ΣPathP ((λ i (eqβ1 i c ) t) - , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ + , fibersEqIfRepsEq {isSetB = snd (Γ c )} _ i (eqβ2 i c ) t)) eq≡eqβ : PathP i (p₁ (α≡β i) ●ᵛ π') @@ -177,10 +177,10 @@ , isPropNatP2 (eq .snd) (eqβ .snd) α≡β) where isPropNatP1 : isOfHLevelDep 1 γ p₁ γ ●ᵛ π') - isPropNatP1 = isOfHLevel→isOfHLevelDep 1 _ isSetNatTrans _ _) + isPropNatP1 = isOfHLevel→isOfHLevelDep 1 _ isSetNatTrans _ _) isPropNatP2 : isOfHLevelDep 1 γ p₂ γ ●ᵛ PSq) - isPropNatP2 = isOfHLevel→isOfHLevelDep 1 _ isSetNatTrans _ _) + isPropNatP2 = isOfHLevel→isOfHLevelDep 1 _ isSetNatTrans _ _) -- putting everything together isTypeCategoryPresheaf : isTypeCategory (PresheafCategory C ℓ'') diff --git a/Cubical.Categories.UnderlyingGraph.html b/Cubical.Categories.UnderlyingGraph.html index 88dfd64587..a1e578d3d6 100644 --- a/Cubical.Categories.UnderlyingGraph.html +++ b/Cubical.Categories.UnderlyingGraph.html @@ -21,7 +21,7 @@ open Category open isIso -open Functor +open Functor open NatIso hiding (sqRL; sqLL) open NatTrans @@ -31,9 +31,9 @@ Cat→Graph 𝓒 .Edge = 𝓒 .Hom[_,_] Functor→GraphHom : {ℓc ℓc' ℓd ℓd'} {𝓒 : Category ℓc ℓc'} {𝓓 : Category ℓd ℓd'} - (F : Functor 𝓒 𝓓) GraphHom (Cat→Graph 𝓒) (Cat→Graph 𝓓) -Functor→GraphHom F ._$g_ = Functor.F-ob F -Functor→GraphHom F ._<$g>_ = Functor.F-hom F + (F : Functor 𝓒 𝓓) GraphHom (Cat→Graph 𝓒) (Cat→Graph 𝓓) +Functor→GraphHom F ._$g_ = Functor.F-ob F +Functor→GraphHom F ._<$g>_ = Functor.F-hom F module _ (G : Graph ℓg ℓg') (𝓒 : Category ℓc ℓc') where -- Interpretation of a graph in a category @@ -43,15 +43,15 @@ {𝓒 : Category ℓc ℓc'} {𝓓 : Category ℓd ℓd'} (ı : Interp G 𝓒) - (F : Functor 𝓒 𝓓) + (F : Functor 𝓒 𝓓) Interp G 𝓓 -(ı ⋆Interp F) ._$g_ x = Functor.F-ob F (ı $g x) -(ı ⋆Interp F) ._<$g>_ e = Functor.F-hom F (ı <$g> e) +(ı ⋆Interp F) ._$g_ x = Functor.F-ob F (ı $g x) +(ı ⋆Interp F) ._<$g>_ e = Functor.F-hom F (ı <$g> e) _∘Interp_ : {G : Graph ℓg ℓg'} {𝓒 : Category ℓc ℓc'} {𝓓 : Category ℓd ℓd'} - (F : Functor 𝓒 𝓓) + (F : Functor 𝓒 𝓓) (ı : Interp G 𝓒) Interp G 𝓓 F ∘Interp ı = ı ⋆Interp F diff --git a/Cubical.Categories.Yoneda.html b/Cubical.Categories.Yoneda.html index 8891fca50e..f588094321 100644 --- a/Cubical.Categories.Yoneda.html +++ b/Cubical.Categories.Yoneda.html @@ -26,20 +26,20 @@ -- THE YONEDA LEMMA open NatTrans -open NatTransP -open Functor +open NatTransP +open Functor open Iso module _ {C : Category ℓ'} where open Category - yoneda : (F : Functor C (SET ℓ')) + yoneda : (F : Functor C (SET ℓ')) (c : C .ob) - Iso ((FUNCTOR C (SET ℓ')) [ C [ c ,-] , F ]) (fst (F c )) + Iso ((FUNCTOR C (SET ℓ')) [ C [ c ,-] , F ]) (fst (F c )) yoneda F c = theIso where natType = (FUNCTOR C (SET ℓ')) [ C [ c ,-] , F ] - setType = fst (F c ) + setType = fst (F c ) -- takes a natural transformation to what it does on id ϕ : natType setType @@ -48,19 +48,19 @@ -- takes an element x of F c and sends it to the (only) natural -- transformation which takes the identity to x Ψ : setType natType - Ψ x .N-ob c = λ f (F f ) x + Ψ x .N-ob c = λ f (F f ) x Ψ x .N-hom g - = funExt f (F f ⋆⟨ C g ) x - ≡[ i ]⟨ (F .F-seq f g) i x - (F g ) ((F f ) x) + = funExt f (F f ⋆⟨ C g ) x + ≡[ i ]⟨ (F .F-seq f g) i x + (F g ) ((F f ) x) ) theIso : Iso natType setType theIso .fun = ϕ theIso .inv = Ψ - theIso .rightInv x i = F .F-id i x + theIso .rightInv x i = F .F-id i x theIso .leftInv α@(natTrans αo αh) = - NatTrans-≡-intro (sym αo≡βo) (symP αh≡βh) + NatTrans-≡-intro (sym αo≡βo) (symP αh≡βh) where β = Ψ (ϕ α) βo = β .N-ob @@ -75,7 +75,7 @@ ≡[ i ]⟨ αo x (C .⋆IdL f (~ i)) αo x (C .id ⋆⟨ C f) ≡[ i ]⟨ αh f i (C .id) -- apply naturality - (F f ) ((αo _) (C .id)) + (F f ) ((αo _) (C .id)) -- type aliases for natural transformation @@ -89,7 +89,7 @@ isProp-hom : (ϕ : NOType) isProp (NHType ϕ) isProp-hom γ = isPropImplicitΠ2 λ x y isPropΠ λ f isSetHom (SET _) - {x = (C [ c , x ]) , C .isSetHom } {F y } _ _ + {x = (C [ c , x ]) , C .isSetHom } {F y } _ _ isPropHomP : isOfHLevelDep 1 ηo NHType ηo) isPropHomP = isOfHLevel→isOfHLevelDep 1 λ a isProp-hom a @@ -100,7 +100,7 @@ -- it's equivalent to apply ϕ to α then do β ⟦ c ⟧ -- or apply ϕ the the composite nat trans α ◍ β -- where ϕ takes a natural transformation to its representing element - yonedaIsNaturalInFunctor : {F G : Functor C (SET ℓ')} (c : C .ob) + yonedaIsNaturalInFunctor : {F G : Functor C (SET ℓ')} (c : C .ob) (β : F G) (fun (yoneda G c) compTrans β) (β c fun (yoneda F c)) @@ -109,10 +109,10 @@ -- in the object -- it's equivalent to apply ϕ and then F ⟪ f ⟫ -- or to apply ϕ to the natural transformation obtained by precomposing with f - yonedaIsNaturalInOb : {F : Functor C (SET ℓ')} + yonedaIsNaturalInOb : {F : Functor C (SET ℓ')} (c c' : C .ob) (f : C [ c , c' ]) - yoneda F c' .fun preComp f F f yoneda F c .fun + yoneda F c' .fun preComp f F f yoneda F c .fun yonedaIsNaturalInOb {F = F} c c' f = funExt α (yoneda F c' .fun preComp f) α ≡⟨ refl @@ -122,9 +122,9 @@ ≡[ i ]⟨ (α c' ) (C .⋆IdL f (~ i)) (α c' ) (C .id ⋆⟨ C f) ≡[ i ]⟨ (α .N-hom f i) (C .id) - (F f ) ((α c ) (C .id)) + (F f ) ((α c ) (C .id)) ≡⟨ refl - ((F f ) yoneda F c .fun) α + ((F f ) yoneda F c .fun) α ) -- Yoneda for contravariant functors @@ -132,13 +132,13 @@ open Category import Cubical.Categories.NaturalTransformation open NatTrans - yonedaᴾ : (F : Functor (C ^op) (SET ℓ')) + yonedaᴾ : (F : Functor (C ^op) (SET ℓ')) (c : C .ob) - Iso ((FUNCTOR (C ^op) (SET ℓ')) [ C [-, c ] , F ]) (fst (F c )) + Iso ((FUNCTOR (C ^op) (SET ℓ')) [ C [-, c ] , F ]) (fst (F c )) yonedaᴾ F c = ((FUNCTOR (C ^op) (SET ℓ')) [ C [-, c ] , F ]) Iso⟨ the-iso FUNCTOR (C ^op) (SET ℓ') [ (C ^op) [ c ,-] , F ] Iso⟨ yoneda F c - (fst (F c )) ∎Iso where + (fst (F c )) ∎Iso where to : FUNCTOR (C ^op) (SET ℓ') [ C [-, c ] , F ] FUNCTOR (C ^op) (SET ℓ') [ (C ^op) [ c ,-] , F ] @@ -153,29 +153,29 @@ the-iso = iso to fro b refl) λ a refl -- A more universe-polymorphic Yoneda lemma -yoneda* : {C : Category ℓ'}(F : Functor C (SET ℓ'')) +yoneda* : {C : Category ℓ'}(F : Functor C (SET ℓ'')) (c : Category.ob C) - Iso ((FUNCTOR C (SET (ℓ-max ℓ' ℓ''))) [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F F ]) - (fst (F c )) + Iso ((FUNCTOR C (SET (ℓ-max ℓ' ℓ''))) [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) + , LiftF {ℓ''}{ℓ'} ∘F F ]) + (fst (F c )) yoneda* {}{ℓ'}{ℓ''}{C} F c = - ((FUNCTOR C (SET (ℓ-max ℓ' ℓ''))) [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F F ]) + ((FUNCTOR C (SET (ℓ-max ℓ' ℓ''))) [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) + , LiftF {ℓ''}{ℓ'} ∘F F ]) Iso⟨ the-iso ((FUNCTOR (LiftHoms C ℓ'') (SET (ℓ-max ℓ' ℓ''))) [ (LiftHoms C ℓ'' [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'') ]) - Iso⟨ yoneda (LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'')) c - Lift {ℓ''}{ℓ'} (fst (F c )) + , LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'') ]) + Iso⟨ yoneda (LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'')) c + Lift {ℓ''}{ℓ'} (fst (F c )) Iso⟨ invIso LiftIso - (fst (F c )) ∎Iso where + (fst (F c )) ∎Iso where the-iso : Iso ((FUNCTOR C (SET (ℓ-max ℓ' ℓ''))) - [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F F ]) + [ LiftF {ℓ'}{ℓ''} ∘F (C [ c ,-]) + , LiftF {ℓ''}{ℓ'} ∘F F ]) ((FUNCTOR (LiftHoms C ℓ'') (SET (ℓ-max ℓ' ℓ''))) [ (LiftHoms C ℓ'' [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'') ]) + , LiftF {ℓ''}{ℓ'} ∘F (F ∘F lowerHoms C ℓ'') ]) the-iso .fun α .N-ob d f = α .N-ob d f the-iso .fun α .N-hom g = α .N-hom (g .lower) the-iso .inv β .N-ob d f = β .N-ob d f @@ -183,25 +183,25 @@ the-iso .rightInv β = refl the-iso .leftInv α = refl -yonedaᴾ* : {C : Category ℓ'}(F : Functor (C ^op) (SET ℓ'')) +yonedaᴾ* : {C : Category ℓ'}(F : Functor (C ^op) (SET ℓ'')) (c : Category.ob C) Iso (FUNCTOR (C ^op) (SET (ℓ-max ℓ' ℓ'')) - [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) - , LiftF {ℓ''}{ℓ'} ∘F F ]) - (fst (F c )) + [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) + , LiftF {ℓ''}{ℓ'} ∘F F ]) + (fst (F c )) yonedaᴾ* {}{ℓ'}{ℓ''}{C} F c = (FUNCTOR (C ^op) (SET (ℓ-max ℓ' ℓ'')) - [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) , LiftF {ℓ''}{ℓ'} ∘F F ]) Iso⟨ the-iso + [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) , LiftF {ℓ''}{ℓ'} ∘F F ]) Iso⟨ the-iso (FUNCTOR (C ^op) (SET (ℓ-max ℓ' ℓ'')) - [ LiftF {ℓ'}{ℓ''} ∘F ((C ^op) [ c ,-]) - , LiftF {ℓ''}{ℓ'} ∘F F ]) Iso⟨ yoneda* F c - fst (F c ) ∎Iso where + [ LiftF {ℓ'}{ℓ''} ∘F ((C ^op) [ c ,-]) + , LiftF {ℓ''}{ℓ'} ∘F F ]) Iso⟨ yoneda* F c + fst (F c ) ∎Iso where the-iso : Iso (FUNCTOR (C ^op) (SET (ℓ-max ℓ' ℓ'')) - [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) , LiftF {ℓ''}{ℓ'} ∘F F ]) + [ LiftF {ℓ'}{ℓ''} ∘F (C [-, c ]) , LiftF {ℓ''}{ℓ'} ∘F F ]) (FUNCTOR (C ^op) (SET (ℓ-max ℓ' ℓ'')) - [ LiftF {ℓ'}{ℓ''} ∘F ((C ^op) [ c ,-]) , LiftF {ℓ''}{ℓ'} ∘F F ]) + [ LiftF {ℓ'}{ℓ''} ∘F ((C ^op) [ c ,-]) , LiftF {ℓ''}{ℓ'} ∘F F ]) the-iso .fun α .N-ob = α .N-ob the-iso .fun α .N-hom = α .N-hom the-iso .inv β .N-ob = β .N-ob @@ -212,58 +212,58 @@ -- Yoneda embedding -- TODO: probably want to rename/refactor module _ {C : Category ℓ'} where - open Functor + open Functor open NatTrans open Category C - yo : ob Functor (C ^op) (SET ℓ') + yo : ob Functor (C ^op) (SET ℓ') yo x = C [-, x ] - YO : Functor C (PresheafCategory C ℓ') - YO .F-ob = yo - YO .F-hom f .N-ob z g = g ⋆⟨ C f - YO .F-hom f .N-hom g i h = ⋆Assoc g h f i - YO .F-id = makeNatTransPath λ i _ λ f ⋆IdR f i - YO .F-seq f g = makeNatTransPath λ i _ λ h ⋆Assoc h f g (~ i) + YO : Functor C (PresheafCategory C ℓ') + YO .F-ob = yo + YO .F-hom f .N-ob z g = g ⋆⟨ C f + YO .F-hom f .N-hom g i h = ⋆Assoc g h f i + YO .F-id = makeNatTransPath λ i _ λ f ⋆IdR f i + YO .F-seq f g = makeNatTransPath λ i _ λ h ⋆Assoc h f g (~ i) - module _ {x} (F : Functor (C ^op) (SET ℓ')) where - yo-yo-yo : NatTrans (yo x) F F .F-ob x .fst + module _ {x} (F : Functor (C ^op) (SET ℓ')) where + yo-yo-yo : NatTrans (yo x) F F .F-ob x .fst yo-yo-yo α = α .N-ob _ id - no-no-no : F .F-ob x .fst NatTrans (yo x) F - no-no-no a .N-ob y f = F .F-hom f a - no-no-no a .N-hom f = funExt λ g i F .F-seq g f i a + no-no-no : F .F-ob x .fst NatTrans (yo x) F + no-no-no a .N-ob y f = F .F-hom f a + no-no-no a .N-hom f = funExt λ g i F .F-seq g f i a - yoIso : Iso (NatTrans (yo x) F) (F .F-ob x .fst) + yoIso : Iso (NatTrans (yo x) F) (F .F-ob x .fst) yoIso .Iso.fun = yo-yo-yo yoIso .Iso.inv = no-no-no - yoIso .Iso.rightInv b i = F .F-id i b + yoIso .Iso.rightInv b i = F .F-id i b yoIso .Iso.leftInv a = makeNatTransPath (funExt λ _ funExt rem) where - rem : {z} (x₁ : C [ z , x ]) F .F-hom x₁ (yo-yo-yo a) (a .N-ob z) x₁ + rem : {z} (x₁ : C [ z , x ]) F .F-hom x₁ (yo-yo-yo a) (a .N-ob z) x₁ rem g = - F .F-hom g (yo-yo-yo a) + F .F-hom g (yo-yo-yo a) ≡[ i ]⟨ a .N-hom g (~ i) id a .N-hom g i0 id ≡[ i ]⟨ a .N-ob _ (⋆IdR g i) (a .N-ob _) g - yoEquiv : NatTrans (yo x) F F .F-ob x .fst + yoEquiv : NatTrans (yo x) F F .F-ob x .fst yoEquiv = isoToEquiv yoIso - isFullYO : isFull YO + isFullYO : isFull YO isFullYO x y F[f] = yo-yo-yo _ F[f] , yoIso {x} (yo y) .Iso.leftInv F[f] ∣₁ - isFaithfulYO : isFaithful YO + isFaithfulYO : isFaithful YO isFaithfulYO x y f g p i = hcomp j λ{ (i = i0) ⋆IdL f j; (i = i1) ⋆IdL g j}) (yo-yo-yo _ (p i)) - isFullyFaithfulYO : isFullyFaithful YO + isFullyFaithfulYO : isFullyFaithful YO isFullyFaithfulYO = isFull+Faithful→isFullyFaithful {F = YO} isFullYO isFaithfulYO \ No newline at end of file diff --git a/Cubical.Codata.M.AsLimit.M.Base.html b/Cubical.Codata.M.AsLimit.M.Base.html index 78fa471feb..dd62c805f6 100644 --- a/Cubical.Codata.M.AsLimit.M.Base.html +++ b/Cubical.Codata.M.AsLimit.M.Base.html @@ -88,7 +88,7 @@ shift-iso : {} (S : Container ) -> Iso (P₀ S (M S)) (M S) shift-iso S@(A , B) = P₀ S (M S) - Iso⟨ Σ-cong-iso-snd + Iso⟨ Σ-cong-iso-snd x iso f n z f z .fst n) , λ n i a f a .snd n i) (u , q) z n u n z) , λ n i q n i z) _ refl) @@ -148,8 +148,8 @@ (u n))) (Σ[ a A ] (Σ[ u ((n : ) B a X (sequence S) n) ] ((n : ) π (sequence S) (u (suc n)) u n))) α-iso-step-5-Iso = - Σ-cong-iso (lemma11-Iso {S = S} _ A) _ x x)) a,p - Σ-cong-iso (pathToIso (cong k (n : ) k n) (funExt λ n cong k B k Wₙ S n) (α-iso-step-5-Iso-helper0 (a,p .fst) (a,p .snd) n)))) λ u + Σ-cong-iso (lemma11-Iso {S = S} _ A) _ x x)) a,p + Σ-cong-iso (pathToIso (cong k (n : ) k n) (funExt λ n cong k B k Wₙ S n) (α-iso-step-5-Iso-helper0 (a,p .fst) (a,p .snd) n)))) λ u pathToIso (cong k (n : ) k n) (funExt λ n α-iso-step-5-Iso-helper1-Iso (a,p .fst) (a,p .snd) u n))) α-iso-step-1-4-Iso-lem-12 : diff --git a/Cubical.Cohomology.Base.html b/Cubical.Cohomology.Base.html index 716f52d229..8d3ebe61ea 100644 --- a/Cubical.Cohomology.Base.html +++ b/Cubical.Cohomology.Base.html @@ -114,7 +114,7 @@ Cohom = CohomType k , subst AbGroupStr shiftΩTwicePath (snd (abGroupStr.π₂AbGroup k)) CohomPath : Cohom' Cohom - CohomPath = ΣPathTransport→PathΣ Cohom' Cohom (shiftΩTwicePath , refl) + CohomPath = ΣPathTransport→PathΣ Cohom' Cohom (shiftΩTwicePath , refl) CohomEquiv : AbGroupEquiv Cohom' Cohom CohomEquiv = fst (invEquiv (AbGroupPath Cohom' Cohom)) CohomPath diff --git a/Cubical.Cohomology.EilenbergMacLane.EilenbergSteenrod.html b/Cubical.Cohomology.EilenbergMacLane.EilenbergSteenrod.html index d7d3adf36b..3384cdeeb0 100644 --- a/Cubical.Cohomology.EilenbergMacLane.EilenbergSteenrod.html +++ b/Cubical.Cohomology.EilenbergMacLane.EilenbergSteenrod.html @@ -163,7 +163,7 @@ (sym (merid (pt A))) (~ i) j)) leftInv (fst (suspMapIso (negsuc zero) {A = A})) = ST.elim _ isSetPathImplicit) - λ f cong ∣_∣₂ (Σ≡Prop _ hLevelEM G 0 _ _) + λ f cong ∣_∣₂ (Σ≡Prop _ hLevelEM G 0 _ _) (funExt (suspToPropElim (pt A) _ hLevelEM G 0 _ _) (sym (snd f))))) @@ -180,7 +180,7 @@ ; south refl ; (merid a i) refl}))) snd (Suspension (satisfies-ES G)) f (negsuc zero) = - funExt λ {tt* cong ∣_∣₂ (Σ≡Prop _ hLevelEM G 0 _ _) refl)} + funExt λ {tt* cong ∣_∣₂ (Σ≡Prop _ hLevelEM G 0 _ _) refl)} snd (Suspension (satisfies-ES G)) f (negsuc (suc n)) = refl Exactness (satisfies-ES G) {A = A} {B = B} f (pos n) = isoToPath help where @@ -216,8 +216,8 @@ (Im (coHomHom∙ n (cfcod (fst f) , refl))) fun help (x , p) = x , To x p inv help (x , p) = x , From x p - rightInv help (x , p) = Σ≡Prop _ isPropIsInIm _ _) refl - leftInv help (x , p) = Σ≡Prop _ isPropIsInKer _ _) refl + rightInv help (x , p) = Σ≡Prop _ isPropIsInIm _ _) refl + leftInv help (x , p) = Σ≡Prop _ isPropIsInKer _ _) refl Exactness (satisfies-ES {} {ℓ'} G) {A = A} {B = B} f (negsuc n) = isoToPath help where @@ -226,8 +226,8 @@ (cfcod (fst f) , refl))) fun help (tt* , p) = tt* , tt* , refl ∣₁ inv help (tt* , p) = tt* , refl - rightInv help (tt* , p) = Σ≡Prop _ isPropIsInIm _ _) refl - leftInv help (tt* , p) = Σ≡Prop _ isPropIsInKer _ _) refl + rightInv help (tt* , p) = Σ≡Prop _ isPropIsInIm _ _) refl + leftInv help (tt* , p) = Σ≡Prop _ isPropIsInKer _ _) refl Dimension (satisfies-ES G) (pos zero) p = ⊥.rec (p refl) fst (Dimension (satisfies-ES G) (pos (suc n)) _) = 0ₕ∙ (suc n) snd (Dimension (satisfies-ES G) (pos (suc n)) _) = diff --git a/Cubical.Cohomology.EilenbergMacLane.Groups.Sn.html b/Cubical.Cohomology.EilenbergMacLane.Groups.Sn.html index 6fda7bb24e..43a0ceab73 100644 --- a/Cubical.Cohomology.EilenbergMacLane.Groups.Sn.html +++ b/Cubical.Cohomology.EilenbergMacLane.Groups.Sn.html @@ -312,7 +312,7 @@ (iso f fst f false) g {true _ ; false g}) , refl) g refl) - λ g Σ≡Prop _ AbGroupStr.is-set (snd G) _ _) + λ g Σ≡Prop _ AbGroupStr.is-set (snd G) _ _) (funExt λ { false refl ; true sym (snd g)})) HⁿSⁿ-raw≃G G (suc n) = compEquiv diff --git a/Cubical.Cohomology.EilenbergMacLane.Gysin.html b/Cubical.Cohomology.EilenbergMacLane.Gysin.html index 0ada774816..89fedbf3ca 100644 --- a/Cubical.Cohomology.EilenbergMacLane.Gysin.html +++ b/Cubical.Cohomology.EilenbergMacLane.Gysin.html @@ -947,7 +947,7 @@ ⌣≡alt : (i : ) (t : suc n i) ⌣-hom i t alt-hom i t - ⌣≡alt i t = Σ≡Prop _ isPropIsGroupHom _ _) + ⌣≡alt i t = Σ≡Prop _ isPropIsGroupHom _ _) (funExt (ST.elim _ isSetPathImplicit) λ _ refl)) diff --git a/Cubical.Cohomology.EilenbergMacLane.RingStructure.html b/Cubical.Cohomology.EilenbergMacLane.RingStructure.html index 69ed6beca2..7c56eb00b8 100644 --- a/Cubical.Cohomology.EilenbergMacLane.RingStructure.html +++ b/Cubical.Cohomology.EilenbergMacLane.RingStructure.html @@ -54,11 +54,11 @@ _⌣_ {k} {l} 0ₕ-⌣ k l) {k} {l} ⌣-0ₕ k l) - _ _ _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-assoc _ _ _) , flipTransport (assoc⌣ _ _ _ _ _ _)))) - {n} a sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) + _ _ _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-assoc _ _ _) , flipTransport (assoc⌣ _ _ _ _ _ _)))) + {n} a sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (⌣-1ₕ _ _ cong p subst p coHom p R-ab A) p a) (isSetℕ _ _ _ _))))) - _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ 1ₕ-⌣ _ _)) + _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ 1ₕ-⌣ _ _)) _ _ _ distrL⌣ _ _ _ _ _) λ _ _ _ distrR⌣ _ _ _ _ _ diff --git a/Cubical.Data.Cardinality.Properties.html b/Cubical.Data.Cardinality.Properties.html index b954f14f8a..e9e088c88a 100644 --- a/Cubical.Data.Cardinality.Properties.html +++ b/Cubical.Data.Cardinality.Properties.html @@ -38,53 +38,53 @@ private +Assoc : (A B C : Card {}) A + (B + C) (A + B) + C +Assoc = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (sym (isoToPath ⊎-assoc-Iso))) ·Assoc : (A B C : Card {}) A · (B · C) (A · B) · C ·Assoc = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (sym (isoToPath Σ-assoc-Iso))) +IdR𝟘 : (A : Card {}) A + 𝟘 A +IdR𝟘 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath ⊎-IdR-⊥*-Iso)) +IdL𝟘 : (A : Card {}) 𝟘 + A A +IdL𝟘 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath ⊎-IdL-⊥*-Iso)) ·IdR𝟙 : (A : Card {}) A · 𝟙 A ·IdR𝟙 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath rUnit*×Iso)) ·IdL𝟙 : (A : Card {}) 𝟙 · A A ·IdL𝟙 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath lUnit*×Iso)) +Comm : (A B : Card {}) (A + B) (B + A) +Comm = ∥₂.elim2 _ _ isProp→isSet (isSetCard _ _)) - λ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath ⊎-swap-Iso)) ·Comm : (A B : Card {}) (A · B) (B · A) ·Comm = ∥₂.elim2 _ _ isProp→isSet (isSetCard _ _)) - λ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath Σ-swap-Iso)) ·LDist+ : (A B C : Card {}) A · (B + C) (A · B) + (A · C) ·LDist+ = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath ×DistL⊎Iso)) AnnihilL : (A : Card {}) 𝟘 · A 𝟘 AnnihilL = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) - (isoToPath (ΣEmpty*Iso λ _ _))) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + (isoToPath (ΣEmpty*Iso λ _ _))) isCardCommSemiring : IsCommSemiring {ℓ-suc } 𝟘 𝟙 _+_ _·_ isCardCommSemiring = makeIsCommSemiring isSetCard +Assoc +IdR𝟘 +Comm ·Assoc ·IdR𝟙 ·LDist+ AnnihilL ·Comm @@ -93,7 +93,7 @@ ^AnnihilR𝟘 : (A : Card {}) A ^ 𝟘 𝟙 ^AnnihilR𝟘 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath (iso⊥ _))) where iso⊥ : A Iso (⊥* A) Unit* Iso.fun (iso⊥ A) _ = tt* @@ -103,7 +103,7 @@ ^IdR𝟙 : (A : Card {}) A ^ 𝟙 A ^IdR𝟙 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath (iso⊤ _))) where iso⊤ : A Iso (Unit* A) A Iso.fun (iso⊤ _) f = f tt* @@ -113,7 +113,7 @@ ^AnnihilL𝟙 : (A : Card {}) 𝟙 ^ A 𝟙 ^AnnihilL𝟙 = ∥₂.elim _ isProp→isSet (isSetCard _ _)) - λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath (iso⊤ _))) where iso⊤ : A Iso (A Unit*) Unit* Iso.fun (iso⊤ _) _ = tt* @@ -123,21 +123,21 @@ ^LDist+ : (A B C : Card {}) A ^ (B + C) (A ^ B) · (A ^ C) ^LDist+ = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath Π⊎Iso)) ^Assoc· : (A B C : Card {}) A ^ (B · C) (A ^ B) ^ C ^Assoc· = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath (is _ _ _))) where is : A B C Iso (B × C A) (C B A) is A B C = (B × C A) Iso⟨ domIso Σ-swap-Iso - (C × B A) Iso⟨ curryIso + (C × B A) Iso⟨ curryIso (C B A) ∎Iso ^RDist· : (A B C : Card {}) (A · B) ^ C (A ^ C) · (B ^ C) ^RDist· = ∥₂.elim3 _ _ _ isProp→isSet (isSetCard _ _)) - λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) + λ _ _ _ cong ∣_∣₂ (Σ≡Prop _ isPropIsSet) (isoToPath Σ-Π-Iso)) diff --git a/Cubical.Data.Fin.Arithmetic.html b/Cubical.Data.Fin.Arithmetic.html index c0db2ce207..865f1da4c2 100644 --- a/Cubical.Data.Fin.Arithmetic.html +++ b/Cubical.Data.Fin.Arithmetic.html @@ -45,7 +45,7 @@ +ₘ-assoc : {n : } (x y z : Fin (suc n)) (x +ₘ y) +ₘ z (x +ₘ (y +ₘ z)) +ₘ-assoc {n = n} x y z = - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) ((mod-rCancel (suc n) ((fst x + fst y) mod (suc n)) (fst z)) ∙∙ sym (mod+mod≡mod (suc n) (fst x + fst y) (fst z)) ∙∙ cong (_mod suc n) (sym (+-assoc (fst x) (fst y) (fst z))) @@ -54,12 +54,12 @@ +ₘ-comm : {n : } (x y : Fin (suc n)) (x +ₘ y) (y +ₘ x) +ₘ-comm {n = n} x y = - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (cong (_mod suc n) (+-comm (fst x) (fst y))) +ₘ-lUnit : {n : } (x : Fin (suc n)) 0 +ₘ x x +ₘ-lUnit {n = n} (x , p) = - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (+inductionBase n _ _ _ x p) +ₘ-rUnit : {n : } (x : Fin (suc n)) x +ₘ 0 x @@ -67,7 +67,7 @@ +ₘ-rCancel : {n : } (x : Fin (suc n)) x -ₘ x 0 +ₘ-rCancel {n = n} x = - Σ≡Prop _ isProp≤) + Σ≡Prop _ isProp≤) (cong z (fst x + z) mod (suc n)) (+inductionBase n _ _ _ (fst x) (snd x)) ∙∙ sym (mod-rCancel (suc n) (fst x) ((suc n) (fst x))) diff --git a/Cubical.Data.Fin.Base.html b/Cubical.Data.Fin.Base.html index f9abcde959..5bc21214b2 100644 --- a/Cubical.Data.Fin.Base.html +++ b/Cubical.Data.Fin.Base.html @@ -51,7 +51,7 @@ -- ... and injective. toℕ-injective : ∀{fj fk : Fin k} toℕ fj toℕ fk fj fk -toℕ-injective {fj = fj} {fk} = Σ≡Prop _ isProp≤) +toℕ-injective {fj = fj} {fk} = Σ≡Prop _ isProp≤) -- Conversion from ℕ with a recursive definition of ≤ @@ -109,5 +109,5 @@ FinPathℕ : {n : } (x : Fin n) (y : ) fst x y Σ[ p _ ] (x (y , p)) FinPathℕ {n = n} x y p = ((fst (snd x)) , (cong y fst (snd x) + y) (cong suc (sym p)) snd (snd x))) - , (Σ≡Prop _ isProp≤) p) + , (Σ≡Prop _ isProp≤) p) \ No newline at end of file diff --git a/Cubical.Data.Fin.LehmerCode.html b/Cubical.Data.Fin.LehmerCode.html index 9850931fad..cf5b599356 100644 --- a/Cubical.Data.Fin.LehmerCode.html +++ b/Cubical.Data.Fin.LehmerCode.html @@ -47,7 +47,7 @@ toFinExc = fst toFinExc-injective : {i : Fin n} {j k : FinExcept i} toFinExc j toFinExc k j k -toFinExc-injective = Σ≡Prop _ isPropΠ λ _ ⊥.isProp⊥) +toFinExc-injective = Σ≡Prop _ isPropΠ λ _ ⊥.isProp⊥) toℕExc : {i : Fin n} FinExcept i toℕExc = toℕ toFinExc @@ -134,17 +134,17 @@ lehmerEquiv {suc n} = (Fin (suc n) Fin (suc n)) ≃⟨ isoToEquiv i - (Σ[ k Fin (suc n) ] (FinExcept fzero FinExcept k)) ≃⟨ Σ-cong-equiv-snd ii - (Fin (suc n) × (Fin n Fin n)) ≃⟨ Σ-cong-equiv-snd _ lehmerEquiv) + (Σ[ k Fin (suc n) ] (FinExcept fzero FinExcept k)) ≃⟨ Σ-cong-equiv-snd ii + (Fin (suc n) × (Fin n Fin n)) ≃⟨ Σ-cong-equiv-snd _ lehmerEquiv) (Fin (suc n) × LehmerCode n) ≃⟨ lehmerSucEquiv LehmerCode (suc n) where equivIn : (f : Fin (suc n) Fin (suc n)) FinExcept fzero FinExcept (equivFun f fzero) equivIn f = FinExcept fzero - ≃⟨ Σ-cong-equiv-snd _ preCompEquiv (invEquiv (congEquiv f))) + ≃⟨ Σ-cong-equiv-snd _ preCompEquiv (invEquiv (congEquiv f))) (Σ[ x Fin (suc n) ] ¬ ffun fzero ffun x) - ≃⟨ Σ-cong-equiv-fst f + ≃⟨ Σ-cong-equiv-fst f FinExcept (ffun fzero) where ffun = equivFun f @@ -199,7 +199,7 @@ lehmerFinEquiv : LehmerCode n Fin (factorial n) lehmerFinEquiv {zero} = isContr→Equiv isContrLehmerZero isContrFin1 lehmerFinEquiv {suc n} = _ ≃⟨ invEquiv lehmerSucEquiv - _ ≃⟨ ≃-× (idEquiv _) lehmerFinEquiv + _ ≃⟨ ≃-× (idEquiv _) lehmerFinEquiv _ ≃⟨ factorEquiv _ diff --git a/Cubical.Data.Fin.Properties.html b/Cubical.Data.Fin.Properties.html index abcc607426..a53ed38daa 100644 --- a/Cubical.Data.Fin.Properties.html +++ b/Cubical.Data.Fin.Properties.html @@ -66,14 +66,14 @@ discreteFin : {n} Discrete (Fin n) discreteFin {n} (x , hx) (y , hy) with discreteℕ x y -... | yes prf = yes (Σ≡Prop _ isProp≤) prf) +... | yes prf = yes (Σ≡Prop _ isProp≤) prf) ... | no prf = no λ h prf (cong fst h) inject<-ne : {n} (i : Fin n) ¬ inject< ≤-refl i (n , ≤-refl) inject<-ne {n} (k , k<n) p = <→≢ k<n (cong fst p) Fin-fst-≡ : {n} {i j : Fin n} fst i fst j i j -Fin-fst-≡ = Σ≡Prop _ isProp≤) +Fin-fst-≡ = Σ≡Prop _ isProp≤) private subst-app : (B : A Type b) (f : (x : A) B x) {x y : A} (x≡y : x y) @@ -172,14 +172,14 @@ Residue+k k n (Residue-k k n R) R Residue+k-k k n (((r , r<k) , zero) , p) = Empty.rec (<-asym r<k (lemma₀ p refl)) Residue+k-k k n ((f , suc o) , p) - = Σ≡Prop tup isSetℕ (expand× tup) (k + n)) refl + = Σ≡Prop tup isSetℕ (expand× tup) (k + n)) refl Residue-k+k : (k n : ) (R : Residue k n) Residue-k k n (Residue+k k n R) R Residue-k+k k n ((f , o) , p) - = Σ≡Prop tup isSetℕ (expand× tup) n) refl + = Σ≡Prop tup isSetℕ (expand× tup) n) refl private Residue≃ : k n Residue k n Residue k (k + n) @@ -385,7 +385,7 @@ g : Fin (suc n′) Fin n′ g k = fst (f′ k) , <-trans (snd (f′ k)) m<n′ i , j , ¬q , r = pigeonhole-special g - in transport transport-prf (i , j , ¬q , Σ≡Prop _ isProp≤) (cong fst r)) + in transport transport-prf (i , j , ¬q , Σ≡Prop _ isProp≤) (cong fst r)) where n′ : n′ = k + suc m @@ -578,11 +578,11 @@ where sec-f-g : _ sec-f-g (inl (k , k<m)) with k ≤? m - sec-f-g (inl (k , k<m)) | inl _ = cong inl (Σ≡Prop _ isProp≤) refl) + sec-f-g (inl (k , k<m)) | inl _ = cong inl (Σ≡Prop _ isProp≤) refl) sec-f-g (inl (k , k<m)) | inr m≤k = Empty.rec (¬-<-and-≥ k<m m≤k) sec-f-g (inr (k , k<n)) with (m + k) ≤? m sec-f-g (inr (k , k<n)) | inl p = Empty.rec (¬m+n<m {m} {k} p) - sec-f-g (inr (k , k<n)) | inr k≥m = cong inr (Σ≡Prop _ isProp≤) rem) + sec-f-g (inr (k , k<n)) | inr k≥m = cong inr (Σ≡Prop _ isProp≤) rem) where rem : (m + k) m k rem = subst - - m k) (+-comm k m) (m+n∸n=m m k) @@ -590,8 +590,8 @@ where ret-f-g : _ ret-f-g (k , k<m+n) with k ≤? m - ret-f-g (k , k<m+n) | inl _ = Σ≡Prop _ isProp≤) refl - ret-f-g (k , k<m+n) | inr m≥k = Σ≡Prop _ isProp≤) (∸-lemma m≥k) + ret-f-g (k , k<m+n) | inl _ = Σ≡Prop _ isProp≤) refl + ret-f-g (k , k<m+n) | inr m≥k = Σ≡Prop _ isProp≤) (∸-lemma m≥k) Fin+≡Fin⊎Fin : (m n : ) Fin (m + n) Fin m Fin n Fin+≡Fin⊎Fin m n = isoToPath (Fin+≅Fin⊎Fin m n) diff --git a/Cubical.Data.FinSet.Base.html b/Cubical.Data.FinSet.Base.html index 282939835d..37e7e74a46 100644 --- a/Cubical.Data.FinSet.Base.html +++ b/Cubical.Data.FinSet.Base.html @@ -49,7 +49,7 @@ -- isFinSet is proposition isPropIsFinSet : isProp (isFinSet A) -isPropIsFinSet p q = Σ≡PropEquiv _ isPropPropTrunc) .fst ( +isPropIsFinSet p q = Σ≡PropEquiv _ isPropPropTrunc) .fst ( Prop.elim2 _ _ isSetℕ _ _) p q Fin-inj _ _ (ua (invEquiv (SumFin≃Fin _) (invEquiv p) q SumFin≃Fin _))) @@ -91,10 +91,10 @@ -- equality between finite sets/propositions FinSet≡ : (X Y : FinSet ) (X .fst Y .fst) (X Y) -FinSet≡ _ _ = Σ≡PropEquiv _ isPropIsFinSet) +FinSet≡ _ _ = Σ≡PropEquiv _ isPropIsFinSet) FinProp≡ : (X Y : FinProp ) (X .fst .fst Y .fst .fst) (X Y) -FinProp≡ X Y = compEquiv (FinSet≡ (X .fst) (Y .fst)) (Σ≡PropEquiv _ isPropIsProp)) +FinProp≡ X Y = compEquiv (FinSet≡ (X .fst) (Y .fst)) (Σ≡PropEquiv _ isPropIsProp)) -- hlevels of FinSet and FinProp diff --git a/Cubical.Data.FinSet.Binary.Large.html b/Cubical.Data.FinSet.Binary.Large.html index bd0a4d2fe6..8f372ca738 100644 --- a/Cubical.Data.FinSet.Binary.Large.html +++ b/Cubical.Data.FinSet.Binary.Large.html @@ -109,7 +109,7 @@ first = compEquiv (invEquiv P) Q Loopᴾ² : (P Q R : Bool B) Square (Loopᴾ P Q) (Loopᴾ P R) refl (Loopᴾ Q R) - Loopᴾ² P Q R i = Σ≡Prop _ squash₁) (S i) + Loopᴾ² P Q R i = Σ≡Prop _ squash₁) (S i) where PQ : B B PQ = compEquiv (invEquiv P) Q diff --git a/Cubical.Data.FinSet.Cardinality.html b/Cubical.Data.FinSet.Cardinality.html index 41d587d736..66cd607964 100644 --- a/Cubical.Data.FinSet.Cardinality.html +++ b/Cubical.Data.FinSet.Cardinality.html @@ -203,7 +203,7 @@ sum𝟘 : sum 𝟘 f 0 sum𝟘 = isEmpty→card≡0 (_ , isFinSetΣ 𝟘 x Fin (f x) , isFinSetFin)) - ((invEquiv (Σ-cong-equiv-fst (invEquiv 𝟘≃Empty)) ΣEmpty _) .fst) + ((invEquiv (Σ-cong-equiv-fst (invEquiv 𝟘≃Empty)) ΣEmpty _) .fst) prod𝟘 : prod 𝟘 f 1 prod𝟘 = @@ -216,7 +216,7 @@ sum𝟙 : sum 𝟙 f f tt* sum𝟙 = cardEquiv (_ , isFinSetΣ 𝟙 x Fin (f x) , isFinSetFin)) - (Fin (f tt*) , isFinSetFin) Σ-contractFst isContrUnit* ∣₁ + (Fin (f tt*) , isFinSetFin) Σ-contractFst isContrUnit* ∣₁ prod𝟙 : prod 𝟙 f f tt* prod𝟙 = @@ -361,7 +361,7 @@ cardΣ : card (_ , isFinSetΣ X Y) sum X x card (Y x)) cardΣ = cardEquiv (_ , isFinSetΣ X Y) (_ , isFinSetΣ X x Fin (card (Y x)) , isFinSetFin)) - (Prop.map Σ-cong-equiv-snd + (Prop.map Σ-cong-equiv-snd (choice X x Y x .fst Fin (card (Y x))) x ∣≃card∣ (Y x)))) cardΠ : card (_ , isFinSetΠ X Y) prod X x card (Y x)) diff --git a/Cubical.Data.FinSet.Constructors.html b/Cubical.Data.FinSet.Constructors.html index d76b161446..1c93c3a73e 100644 --- a/Cubical.Data.FinSet.Constructors.html +++ b/Cubical.Data.FinSet.Constructors.html @@ -55,7 +55,7 @@ isFinOrd⊎ = _ , ⊎-equiv (p .snd) (q .snd) SumFin⊎≃ _ _ isFinOrd× : isFinOrd (X × Y) - isFinOrd× = _ , Σ-cong-equiv (p .snd) _ q .snd) SumFin×≃ _ _ + isFinOrd× = _ , Σ-cong-equiv (p .snd) _ q .snd) SumFin×≃ _ _ module _ (X : Type )(p : isFinOrd X) @@ -69,8 +69,8 @@ isFinOrdΣ : isFinOrd (Σ X Y) isFinOrdΣ = _ , - Σ-cong-equiv {B' = λ x Y (invEq e x)} e (transpFamily p) - Σ-cong-equiv-snd x q (invEq e x) .snd) + Σ-cong-equiv {B' = λ x Y (invEq e x)} e (transpFamily p) + Σ-cong-equiv-snd x q (invEq e x) .snd) SumFinΣ≃ _ _ isFinOrdΠ : isFinOrd ((x : X) Y x) diff --git a/Cubical.Data.FinSet.DecidablePredicate.html b/Cubical.Data.FinSet.DecidablePredicate.html index 7323c3b8e0..2a804e8b74 100644 --- a/Cubical.Data.FinSet.DecidablePredicate.html +++ b/Cubical.Data.FinSet.DecidablePredicate.html @@ -54,15 +54,15 @@ isFinOrdSub : isFinOrd (Σ X P) isFinOrdSub = _ , - Σ-cong-equiv {B' = λ x P (invEq e x)} e (transpFamily p) - Σ-cong-equiv-snd x dec (invEq e x) .snd) + Σ-cong-equiv {B' = λ x P (invEq e x)} e (transpFamily p) + Σ-cong-equiv-snd x dec (invEq e x) .snd) SumFinSub≃ _ (fst dec invEq e) isDecProp∃' : isDecProp Σ X P ∥₁ isDecProp∃' = _ , Prop.propTrunc≃ ( - Σ-cong-equiv {B' = λ x P (invEq e x)} e (transpFamily p) - Σ-cong-equiv-snd x dec (invEq e x) .snd)) + Σ-cong-equiv {B' = λ x P (invEq e x)} e (transpFamily p) + Σ-cong-equiv-snd x dec (invEq e x) .snd)) SumFin∃≃ _ (fst dec invEq e) isDecProp∀' : isDecProp ((x : X) P x) @@ -129,7 +129,7 @@ isDecProp× : isDecProp (P .fst × Q .fst) isDecProp× .fst = P .snd .fst and Q .snd .fst - isDecProp× .snd = Σ-cong-equiv (P .snd .snd) _ Q .snd .snd) Bool→Type×≃ _ _ + isDecProp× .snd = Σ-cong-equiv (P .snd .snd) _ Q .snd .snd) Bool→Type×≃ _ _ module _ (X : FinSet ) where diff --git a/Cubical.Data.FinSet.FiniteChoice.html b/Cubical.Data.FinSet.FiniteChoice.html index 80bba73d10..90cd5daa02 100644 --- a/Cubical.Data.FinSet.FiniteChoice.html +++ b/Cubical.Data.FinSet.FiniteChoice.html @@ -38,9 +38,9 @@ propTrunc≃ (invEquiv (isContr→≃Unit* (isContrΠ⊥ {A = Y}))) choice≃Fin {n = suc n} Y = Π⊎≃ - Σ-cong-equiv-fst (ΠUnit x Y (inl x) ∥₁)) - Σ-cong-equiv-snd _ choice≃Fin {n = n} x Y (inr x))) - Σ-cong-equiv-fst (propTrunc≃ (invEquiv (ΠUnit x Y (inl x))))) + Σ-cong-equiv-fst (ΠUnit x Y (inl x) ∥₁)) + Σ-cong-equiv-snd _ choice≃Fin {n = n} x Y (inr x))) + Σ-cong-equiv-fst (propTrunc≃ (invEquiv (ΠUnit x Y (inl x))))) ∥∥-×-≃ propTrunc≃ (invEquiv (Π⊎≃ {E = Y})) diff --git a/Cubical.Data.FinSet.Quotients.html b/Cubical.Data.FinSet.Quotients.html index 07ce6c1dc6..12e7b7a3a8 100644 --- a/Cubical.Data.FinSet.Quotients.html +++ b/Cubical.Data.FinSet.Quotients.html @@ -128,7 +128,7 @@ _∥Eff_ = Σ[ f ℙEff (X .fst) ] isEqClassEff f ∥Eff≃∥Dec : _∥Eff_ _∥Dec_ (X .fst) R x x' isDecProp→Dec (dec x x')) - ∥Eff≃∥Dec = Σ-cong-equiv (ℙEff≃ℙDec (X .fst)) isEqClassEff→isEqClass + ∥Eff≃∥Dec = Σ-cong-equiv (ℙEff≃ℙDec (X .fst)) isEqClassEff→isEqClass isFinSet∥Eff : isFinSet _∥Eff_ isFinSet∥Eff = isFinSetSub (_ , isFinSetℙEff X) _ _ , isDecPropIsEqClassEff) diff --git a/Cubical.Data.FinType.FiniteStructure.html b/Cubical.Data.FinType.FiniteStructure.html index 1e39fef6e2..5380bd873d 100644 --- a/Cubical.Data.FinType.FiniteStructure.html +++ b/Cubical.Data.FinType.FiniteStructure.html @@ -50,7 +50,7 @@ FinSetWithStrOfCard { = } S n = Σ[ X FinSetOfCard n ] S (X .fst) .fst FinSetOfCard≡ : (X Y : FinSetOfCard n) (X .fst Y .fst) (X Y) -FinSetOfCard≡ _ _ = Σ≡PropEquiv _ isSetℕ _ _) +FinSetOfCard≡ _ _ = Σ≡PropEquiv _ isSetℕ _ _) open Iso diff --git a/Cubical.Data.FinType.Sigma.html b/Cubical.Data.FinType.Sigma.html index f0ed9bead3..dce657fe9d 100644 --- a/Cubical.Data.FinType.Sigma.html +++ b/Cubical.Data.FinType.Sigma.html @@ -67,7 +67,7 @@ isFinType0Σ : isFinType 0 (Σ (X .fst) x Y x .fst)) isFinType0Σ = isFinType0Total (Σ (X .fst) x Y x .fst)) (X .fst) (X .snd) fst - x EquivPresIsFinType 0 (fiberProjEquiv _ _ x) (Y x .snd)) + x EquivPresIsFinType 0 (fiberProjEquiv _ _ x) (Y x .snd)) -- the main result @@ -80,6 +80,6 @@ isFinType0Σ (_ , isFinTypeSuc→isFinType1 {n = suc n} (X .snd)) x _ , isFinType→isFinType0 {n = suc n} (Y x .snd)) isFinTypeΣ {n = suc n} X Y .snd a b = - EquivPresIsFinType n (ΣPathTransport≃PathΣ a b) + EquivPresIsFinType n (ΣPathTransport≃PathΣ a b) (isFinTypeΣ {n = n} (_ , X .snd .snd _ _) _ _ , Y _ .snd .snd _ _)) \ No newline at end of file diff --git a/Cubical.Data.Int.Divisibility.html b/Cubical.Data.Int.Divisibility.html index 2676e594d8..bf146d6d58 100644 --- a/Cubical.Data.Int.Divisibility.html +++ b/Cubical.Data.Int.Divisibility.html @@ -77,9 +77,9 @@ isProp∣' : isProp (m ∣' n) isProp∣' {m = pos 0} {n = n} = isSetℤ 0 n isProp∣' {m = pos (suc m)} {n = n} p q = - Σ≡Prop _ isSetℤ _ _) (·rCancel (pos (suc m)) _ _ (p .snd sym (q .snd)) r snotz (injPos r))) + Σ≡Prop _ isSetℤ _ _) (·rCancel (pos (suc m)) _ _ (p .snd sym (q .snd)) r snotz (injPos r))) isProp∣' {m = negsuc m} {n = n} p q = - Σ≡Prop _ isSetℤ _ _) (·rCancel (negsuc m) _ _ (p .snd sym (q .snd)) (negsucNotpos _ 0)) + Σ≡Prop _ isSetℤ _ _) (·rCancel (negsuc m) _ _ (p .snd sym (q .snd)) (negsucNotpos _ 0)) ∣→∣' : (m n : ) m n m ∣' n ∣→∣' (pos 0) n c , p ∣₁ = ·Comm 0 c p diff --git a/Cubical.Data.Int.Order.html b/Cubical.Data.Int.Order.html index 0f60898297..4b86422ca9 100644 --- a/Cubical.Data.Int.Order.html +++ b/Cubical.Data.Int.Order.html @@ -45,7 +45,7 @@ isProp≤ : isProp (m n) isProp≤ {m} {n} (k , p) (l , q) - = Σ≡Prop witness-prop lemma + = Σ≡Prop witness-prop lemma where lemma : k l lemma = injPos (inj-z+ (p sym q)) diff --git a/Cubical.Data.Nat.Divisibility.html b/Cubical.Data.Nat.Divisibility.html index 2813bed035..496b747cf0 100644 --- a/Cubical.Data.Nat.Divisibility.html +++ b/Cubical.Data.Nat.Divisibility.html @@ -42,7 +42,7 @@ isProp∣' : isProp (m ∣' n) isProp∣' {zero} {n} = isSetℕ _ _ isProp∣' {suc m} {n} (c₁ , p₁) (c₂ , p₂) = - Σ≡Prop _ isSetℕ _ _) (inj-·sm {c₁} {m} {c₂} (p₁ sym p₂)) + Σ≡Prop _ isSetℕ _ _) (inj-·sm {c₁} {m} {c₂} (p₁ sym p₂)) ∣≃∣' : (m n) (m ∣' n) ∣≃∣' {zero} = propBiimpl→Equiv isProp∣ isProp∣' diff --git a/Cubical.Data.Nat.GCD.html b/Cubical.Data.Nat.GCD.html index 4cc048d72e..f6a2d15caa 100644 --- a/Cubical.Data.Nat.GCD.html +++ b/Cubical.Data.Nat.GCD.html @@ -51,7 +51,7 @@ isPropGCD : isProp (GCD m n) isPropGCD (d , dCD , gr) (d' , d'CD , gr') = - Σ≡Prop _ isPropIsGCD) (antisym∣ (gr' d dCD) (gr d' d'CD)) + Σ≡Prop _ isPropIsGCD) (antisym∣ (gr' d dCD) (gr d' d'CD)) symGCD : isGCD m n d isGCD n m d diff --git a/Cubical.Data.Nat.Order.html b/Cubical.Data.Nat.Order.html index 24ded90c23..ea393bd683 100644 --- a/Cubical.Data.Nat.Order.html +++ b/Cubical.Data.Nat.Order.html @@ -51,7 +51,7 @@ isProp≤ : isProp (m n) isProp≤ {m} {n} (k , p) (l , q) - = Σ≡Prop witness-prop lemma + = Σ≡Prop witness-prop lemma where lemma : k l lemma = inj-+m (p (sym q)) @@ -373,7 +373,7 @@ = case dichotomy b n return d d inr (m , p)) of λ { (inl n<b) ⊥.rec (<-asym n<b (m , +-comm m b sym p)) ; (inr (m' , q)) - cong inr (Σ≡Prop x isSetℕ n (b + x)) (inj-m+ {m = b} (sym q p))) + cong inr (Σ≡Prop x isSetℕ n (b + x)) (inj-m+ {m = b} (sym q p))) } b = suc b₀ diff --git a/Cubical.Data.Prod.Properties.html b/Cubical.Data.Prod.Properties.html index 5ad77f0840..4c67e5d7d8 100644 --- a/Cubical.Data.Prod.Properties.html +++ b/Cubical.Data.Prod.Properties.html @@ -5,7 +5,7 @@ open import Cubical.Core.Everything open import Cubical.Data.Prod.Base -open import Cubical.Data.Sigma renaming (_×_ to _×Σ_) hiding (prodIso ; toProdIso ; curryIso) +open import Cubical.Data.Sigma renaming (_×_ to _×Σ_) hiding (prodIso ; toProdIso ; curryIso) open import Cubical.Foundations.Prelude open import Cubical.Foundations.Equiv diff --git a/Cubical.Data.Rationals.MoreRationals.SigmaQ.Base.html b/Cubical.Data.Rationals.MoreRationals.SigmaQ.Base.html index d07c52b748..5bc30b3daa 100644 --- a/Cubical.Data.Rationals.MoreRationals.SigmaQ.Base.html +++ b/Cubical.Data.Rationals.MoreRationals.SigmaQ.Base.html @@ -33,9 +33,9 @@ []-cancelʳ : ((a , b) : × ℕ₊₁) k [ a · pos (ℕ₊₁→ℕ k) , b ·₊₁ k ] [ a , b ] []-cancelʳ (signed s zero , b) k = - Σ≡Prop _ isPropIsGCD) i signed-zero spos s i , 1) + Σ≡Prop _ isPropIsGCD) i signed-zero spos s i , 1) []-cancelʳ (signed s (suc a) , b) k = - Σ≡Prop _ isPropIsGCD) i signedPair (·S-comm s spos i) + Σ≡Prop _ isPropIsGCD) i signedPair (·S-comm s spos i) (toCoprime-cancelʳ (suc a , b) k i)) []-cancelʳ (posneg i , b) k j = isSet→isSet' isSetℚ ([]-cancelʳ (pos zero , b) k) ([]-cancelʳ (neg zero , b) k) diff --git a/Cubical.Data.Rationals.MoreRationals.SigmaQ.Properties.html b/Cubical.Data.Rationals.MoreRationals.SigmaQ.Properties.html index aee353fc27..2364783e64 100644 --- a/Cubical.Data.Rationals.MoreRationals.SigmaQ.Properties.html +++ b/Cubical.Data.Rationals.MoreRationals.SigmaQ.Properties.html @@ -58,11 +58,11 @@ reduce-[] : x reduce Quo.[ x .fst ] x -- equivalent to: Sigma.[ s .fst ] ≡ x reduce-[] ((signed s a , b) , cp) = - Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ s (a , b) cp) + Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ s (a , b) cp) reduce-[] ((posneg i , b) , cp) j = isSet→isSet' Sigma.isSetℚ - (Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ spos (0 , b) cp)) - (Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ sneg (0 , b) cp)) + (Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ spos (0 , b) cp)) + (Σ≡Prop _ isPropIsGCD) (toCoprime-eq₂ sneg (0 , b) cp)) i Sigma.[ posneg i , b ]) i (posneg i , b) , cp) i j diff --git a/Cubical.Data.Rationals.Order.html b/Cubical.Data.Rationals.Order.html index 92177a823b..a0b99b385f 100644 --- a/Cubical.Data.Rationals.Order.html +++ b/Cubical.Data.Rationals.Order.html @@ -69,7 +69,7 @@ toPath : a/b c/d (x : a/b c/d) (y : ) fun₀ a/b y fun₀ c/d y toPath (a , b) (c , d) ad≡cb = elimProp _ isSetHProp _ _) λ (e , f) - Σ≡Prop _ isPropIsProp) (ua (propBiimpl→Equiv ℤ.isProp≤ ℤ.isProp≤ + Σ≡Prop _ isPropIsProp) (ua (propBiimpl→Equiv ℤ.isProp≤ ℤ.isProp≤ (ℤ.≤-·o-cancel {k = -1+ b} subst2 ℤ._≤_ (·CommR a (ℕ₊₁→ℤ f) (ℕ₊₁→ℤ d) cong (ℤ._· ℕ₊₁→ℤ f) ad≡cb @@ -125,7 +125,7 @@ toPath : a/b c/d (x : a/b c/d) (y : ) fun₀ a/b y fun₀ c/d y toPath (a , b) (c , d) ad≡cb = elimProp _ isSetHProp _ _) λ (e , f) - Σ≡Prop _ isPropIsProp) (ua (propBiimpl→Equiv ℤ.isProp< ℤ.isProp< + Σ≡Prop _ isPropIsProp) (ua (propBiimpl→Equiv ℤ.isProp< ℤ.isProp< (ℤ.<-·o-cancel {k = -1+ b} subst2 ℤ._<_ (·CommR a (ℕ₊₁→ℤ f) (ℕ₊₁→ℤ d) cong (ℤ._· ℕ₊₁→ℤ f) ad≡cb diff --git a/Cubical.Data.Sigma.Properties.html b/Cubical.Data.Sigma.Properties.html index afdef3c9f1..1ace07eff3 100644 --- a/Cubical.Data.Sigma.Properties.html +++ b/Cubical.Data.Sigma.Properties.html @@ -181,299 +181,308 @@ unquoteDecl Σ-Π-≃ = declStrictIsoToEquiv Σ-Π-≃ Σ-Π-Iso -Σ-cong-iso-fst : (isom : Iso A A') Iso (Σ A (B fun isom)) (Σ A' B) -fun (Σ-cong-iso-fst isom) x = fun isom (x .fst) , x .snd -inv (Σ-cong-iso-fst {B = B} isom) x = inv isom (x .fst) , subst B (sym (ε (x .fst))) (x .snd) - where - ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) -rightInv (Σ-cong-iso-fst {B = B} isom) (x , y) = ΣPathP (ε x , toPathP goal) - where - ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) - goal : subst B (ε x) (subst B (sym (ε x)) y) y - goal = sym (substComposite B (sym (ε x)) (ε x) y) - ∙∙ cong x subst B x y) (lCancel (ε x)) - ∙∙ substRefl {B = B} y -leftInv (Σ-cong-iso-fst {A = A} {B = B} isom) (x , y) = ΣPathP (leftInv isom x , toPathP goal) - where - ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) - γ = isHAEquiv.com (snd (iso→HAEquiv isom)) - - lem : (x : A) sym (ε (fun isom x)) cong (fun isom) (leftInv isom x) refl - lem x = cong a sym (ε (fun isom x)) a) (γ x) lCancel (ε (fun isom x)) - - goal : subst B (cong (fun isom) (leftInv isom x)) (subst B (sym (ε (fun isom x))) y) y - goal = sym (substComposite B (sym (ε (fun isom x))) (cong (fun isom) (leftInv isom x)) y) - ∙∙ cong a subst B a y) (lem x) - ∙∙ substRefl {B = B} y - -Σ-cong-equiv-fst : (e : A A') Σ A (B equivFun e) Σ A' B --- we could just do this: --- Σ-cong-equiv-fst e = isoToEquiv (Σ-cong-iso-fst (equivToIso e)) --- but the following reduces slightly better -Σ-cong-equiv-fst {A = A} {A' = A'} {B = B} e = intro , isEqIntro - where - intro : Σ A (B equivFun e) Σ A' B - intro (a , b) = equivFun e a , b - isEqIntro : isEquiv intro - isEqIntro .equiv-proof x = ctr , isCtr where - PB : {x y} x y B x B y Type _ - PB p = PathP i B (p i)) - - open Σ x renaming (fst to a'; snd to b) - open Σ (equivCtr e a') renaming (fst to ctrA; snd to α) - ctrB : B (equivFun e ctrA) - ctrB = subst B (sym α) b - ctrP : PB α ctrB b - ctrP = symP (transport-filler i B (sym α i)) b) - ctr : fiber intro x - ctr = (ctrA , ctrB) , ΣPathP (α , ctrP) - - isCtr : y ctr y - isCtr ((r , s) , p) = λ i (a≡r i , b!≡s i) , ΣPathP (α≡ρ i , coh i) where - open PathPΣ p renaming (fst to ρ; snd to σ) - open PathPΣ (equivCtrPath e a' (r , ρ)) renaming (fst to a≡r; snd to α≡ρ) - - b!≡s : PB (cong (equivFun e) a≡r) ctrB s - b!≡s i = comp k B (α≡ρ i (~ k))) k - { (i = i0) ctrP (~ k) - ; (i = i1) σ (~ k) - })) b - - coh : PathP i PB (α≡ρ i) (b!≡s i) b) ctrP σ - coh i j = fill k B (α≡ρ i (~ k))) k - { (i = i0) ctrP (~ k) - ; (i = i1) σ (~ k) - })) (inS b) (~ j) - -Σ-cong-fst : (p : A A') Σ A (B transport p) Σ A' B -Σ-cong-fst {B = B} p i = Σ (p i) (B transp j p (i j)) i) - -Σ-cong-iso-snd : ((x : A) Iso (B x) (B' x)) Iso (Σ A B) (Σ A B') -fun (Σ-cong-iso-snd isom) (x , y) = x , fun (isom x) y -inv (Σ-cong-iso-snd isom) (x , y') = x , inv (isom x) y' -rightInv (Σ-cong-iso-snd isom) (x , y) = ΣPathP (refl , rightInv (isom x) y) -leftInv (Σ-cong-iso-snd isom) (x , y') = ΣPathP (refl , leftInv (isom x) y') - -Σ-cong-equiv-snd : (∀ a B a B' a) Σ A B Σ A B' -Σ-cong-equiv-snd h = isoToEquiv (Σ-cong-iso-snd (equivToIso h)) - -Σ-cong-snd : ((x : A) B x B' x) Σ A B Σ A B' -Σ-cong-snd {A = A} p i = Σ[ x A ] (p x i) - -Σ-cong-iso : (isom : Iso A A') - ((x : A) Iso (B x) (B' (fun isom x))) - Iso (Σ A B) (Σ A' B') -Σ-cong-iso isom isom' = compIso (Σ-cong-iso-snd isom') (Σ-cong-iso-fst isom) - -Σ-cong-equiv : (e : A A') - ((x : A) B x B' (equivFun e x)) - Σ A B Σ A' B' -Σ-cong-equiv e e' = isoToEquiv (Σ-cong-iso (equivToIso e) (equivToIso e')) - -Σ-cong' : (p : A A') PathP i p i Type ℓ') B B' Σ A B Σ A' B' -Σ-cong' p p' = cong₂ (A : Type _) (B : A Type _) Σ A B) p p' - -Σ-cong-equiv-prop : - (e : A A') - ((x : A ) isProp (B x)) - ((x : A') isProp (B' x)) - ((x : A) B x B' (equivFun e x)) - ((x : A) B' (equivFun e x) B x) - Σ A B Σ A' B' -Σ-cong-equiv-prop e prop prop' prop→ prop← = - Σ-cong-equiv e x propBiimpl→Equiv (prop x) (prop' (equivFun e x)) (prop→ x) (prop← x)) - --- Alternative version for path in Σ-types, as in the HoTT book - -ΣPathTransport : (a b : Σ A B) Type _ -ΣPathTransport {B = B} a b = Σ[ p (fst a fst b) ] transport i B (p i)) (snd a) snd b - -IsoΣPathTransportPathΣ : (a b : Σ A B) Iso (ΣPathTransport a b) (a b) -IsoΣPathTransportPathΣ {B = B} a b = - compIso (Σ-cong-iso-snd p invIso (PathPIsoPath i B (p i)) _ _))) - ΣPathIsoPathΣ - -ΣPathTransport≃PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) -ΣPathTransport≃PathΣ {B = B} a b = isoToEquiv (IsoΣPathTransportPathΣ a b) - -ΣPathTransport→PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) -ΣPathTransport→PathΣ a b = Iso.fun (IsoΣPathTransportPathΣ a b) - -PathΣ→ΣPathTransport : (a b : Σ A B) (a b) ΣPathTransport a b -PathΣ→ΣPathTransport a b = Iso.inv (IsoΣPathTransportPathΣ a b) - -ΣPathTransport≡PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) -ΣPathTransport≡PathΣ a b = ua (ΣPathTransport≃PathΣ a b) - -Σ-contractFstIso : (c : isContr A) Iso (Σ A B) (B (c .fst)) -fun (Σ-contractFstIso {B = B} c) p = subst B (sym (c .snd (fst p))) (snd p) -inv (Σ-contractFstIso {B = B} c) b = _ , b -rightInv (Σ-contractFstIso {B = B} c) b = - cong p subst B p b) (isProp→isSet (isContr→isProp c) _ _ _ _) transportRefl _ -fst (leftInv (Σ-contractFstIso {B = B} c) p j) = c .snd (fst p) j -snd (leftInv (Σ-contractFstIso {B = B} c) p j) = - transp i B (c .snd (fst p) (~ i j))) j (snd p) - -Σ-contractFst : (c : isContr A) Σ A B B (c .fst) -Σ-contractFst {B = B} c = isoToEquiv (Σ-contractFstIso c) - --- a special case of the above -module _ (A : Unit Type ) where - ΣUnit : Σ Unit A A tt - unquoteDef ΣUnit = defStrictEquiv ΣUnit snd { x (tt , x) }) - -Σ-contractSnd : ((a : A) isContr (B a)) Σ A B A -Σ-contractSnd c = isoToEquiv isom - where - isom : Iso _ _ - isom .fun = fst - isom .inv a = a , c a .fst - isom .rightInv _ = refl - isom .leftInv (a , b) = cong (a ,_) (c a .snd b) - -isEmbeddingFstΣProp : ((x : A) isProp (B x)) - {u v : Σ A B} - isEquiv (p : u v) cong fst p) -isEmbeddingFstΣProp {B = B} pB {u = u} {v = v} .equiv-proof x = ctr , isCtr - where - ctrP : u v - ctrP = ΣPathP (x , isProp→PathP _ pB _) _ _) - ctr : fiber (p : u v) cong fst p) x - ctr = ctrP , refl - - isCtr : z ctr z - isCtr (z , p) = ΣPathP (ctrP≡ , cong (sym snd) fzsingl) where - fzsingl : Path (singl x) (x , refl) (cong fst z , sym p) - fzsingl = isContrSingl x .snd (cong fst z , sym p) - ctrSnd : SquareP i j B (fzsingl i .fst j)) (cong snd ctrP) (cong snd z) _ _ - ctrSnd = isProp→SquareP _ _ pB _) _ _ _ _ - ctrP≡ : ctrP z - ctrP≡ i = ΣPathP (fzsingl i .fst , ctrSnd i) - -Σ≡PropEquiv : ((x : A) isProp (B x)) {u v : Σ A B} - (u .fst v .fst) (u v) -Σ≡PropEquiv pB = invEquiv (_ , isEmbeddingFstΣProp pB) - -Σ≡Prop : ((x : A) isProp (B x)) {u v : Σ A B} - (p : u .fst v .fst) u v -Σ≡Prop pB p = equivFun (Σ≡PropEquiv pB) p - --- dependent version -ΣPathPProp : { ℓ'} {A : I Type } {B : (i : I) A i Type ℓ'} - {u : Σ (A i0) (B i0)} {v : Σ (A i1) (B i1)} - ((a : A (i1)) isProp (B i1 a)) - PathP i A i) (fst u) (fst v) - PathP i Σ (A i) (B i)) u v -fst (ΣPathPProp {u = u} {v = v} pB p i) = p i -snd (ΣPathPProp {B = B} {u = u} {v = v} pB p i) = lem i - where - lem : PathP i B i (p i)) (snd u) (snd v) - lem = toPathP (pB _ _ _) - -≃-× : {ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} A C B D A × B C × D -≃-× eq1 eq2 = - map-× (fst eq1) (fst eq2) - , record - { equiv-proof - = λ {(c , d) ((eq1⁻ c .fst .fst - , eq2⁻ d .fst .fst) - , ≡-× (eq1⁻ c .fst .snd) - (eq2⁻ d .fst .snd)) - , λ {((a , b) , p) ΣPathP (≡-× (cong fst (eq1⁻ c .snd (a , cong fst p))) - (cong fst (eq2⁻ d .snd (b , cong snd p))) - , λ i ≡-× (snd ((eq1⁻ c .snd (a , cong fst p)) i)) - (snd ((eq2⁻ d .snd (b , cong snd p)) i)))}}} - where - eq1⁻ = equiv-proof (eq1 .snd) - eq2⁻ = equiv-proof (eq2 .snd) - -{- Some simple ismorphisms -} - -prodIso : { ℓ' ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} - Iso A C - Iso B D - Iso (A × B) (C × D) -Iso.fun (prodIso iAC iBD) (a , b) = (Iso.fun iAC a) , Iso.fun iBD b -Iso.inv (prodIso iAC iBD) (c , d) = (Iso.inv iAC c) , Iso.inv iBD d -Iso.rightInv (prodIso iAC iBD) (c , d) = ΣPathP ((Iso.rightInv iAC c) , (Iso.rightInv iBD d)) -Iso.leftInv (prodIso iAC iBD) (a , b) = ΣPathP ((Iso.leftInv iAC a) , (Iso.leftInv iBD b)) - -prodEquivToIso : {ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} - (e : A C)(e' : B D) - prodIso (equivToIso e) (equivToIso e') equivToIso (≃-× e e') -Iso.fun (prodEquivToIso e e' i) = Iso.fun (equivToIso (≃-× e e')) -Iso.inv (prodEquivToIso e e' i) = Iso.inv (equivToIso (≃-× e e')) -Iso.rightInv (prodEquivToIso e e' i) = Iso.rightInv (equivToIso (≃-× e e')) -Iso.leftInv (prodEquivToIso e e' i) = Iso.leftInv (equivToIso (≃-× e e')) - -toProdIso : {B C : A Type } - Iso ((a : A) B a × C a) (((a : A) B a) × ((a : A) C a)) -Iso.fun toProdIso = λ f a fst (f a)) , a snd (f a)) -Iso.inv toProdIso (f , g) = λ a (f a) , (g a) -Iso.rightInv toProdIso (f , g) = refl -Iso.leftInv toProdIso b = refl - -module _ {A : Type } {B : A Type ℓ'} {C : a B a Type ℓ''} where - curryIso : Iso (((a , b) : Σ A B) C a b) ((a : A) (b : B a) C a b) - Iso.fun curryIso f a b = f (a , b) - Iso.inv curryIso f a = f (fst a) (snd a) - Iso.rightInv curryIso a = refl - Iso.leftInv curryIso f = refl - - unquoteDecl curryEquiv = declStrictIsoToEquiv curryEquiv curryIso - --- Sigma type with empty base - -module _ (A : Type ) where - - open Iso - - ΣEmptyIso : Iso (Σ A) - fun ΣEmptyIso (* , _) = * - - ΣEmpty : Σ A - ΣEmpty = isoToEquiv ΣEmptyIso - -module _ { : Level} (A : ⊥* {} Type ) where - - open Iso - - ΣEmpty*Iso : Iso (Σ ⊥* A) ⊥* - fun ΣEmpty*Iso (* , _) = * - --- fiber of projection map - -module _ - (A : Type ) - (B : A Type ℓ') where - - private - proj : Σ A B A - proj (a , b) = a - - module _ - (a : A) where - - open Iso - - fiberProjIso : Iso (B a) (fiber proj a) - fiberProjIso .fun b = (a , b) , refl - fiberProjIso .inv ((a' , b') , p) = subst B p b' - fiberProjIso .leftInv b i = substRefl {B = B} b i - fiberProjIso .rightInv (_ , p) i .fst .fst = p (~ i) - fiberProjIso .rightInv ((_ , b') , p) i .fst .snd = subst-filler B p b' (~ i) - fiberProjIso .rightInv (_ , p) i .snd j = p (~ i j) - - fiberProjEquiv : B a fiber proj a - fiberProjEquiv = isoToEquiv fiberProjIso - -separatedΣ : Separated A ((a : A) Separated (B a)) Separated (Σ A B) -separatedΣ {B = B} sepA sepB (a , b) (a' , b') p = ΣPathTransport→PathΣ _ _ (pA , pB) - where - pA : a a' - pA = sepA a a' q p r q (cong fst r))) - - pB : subst B pA b b' - pB = sepB _ _ _ q p r q (cong r' subst B r' b) - (Separated→isSet sepA _ _ pA (cong fst r)) snd (PathΣ→ΣPathTransport _ _ r)))) +module _ {A : Type } {B : A Type ℓ'} {B' : a Type ℓ''} where + Σ-assoc-swap-Iso : Iso (Σ[ a Σ A B ] B' (fst a)) (Σ[ a Σ A B' ] B (fst a)) + fun Σ-assoc-swap-Iso ((x , y) , z) = ((x , z) , y) + inv Σ-assoc-swap-Iso ((x , z) , y) = ((x , y) , z) + rightInv Σ-assoc-swap-Iso _ = refl + leftInv Σ-assoc-swap-Iso _ = refl + + unquoteDecl Σ-assoc-swap-≃ = declStrictIsoToEquiv Σ-assoc-swap-≃ Σ-assoc-swap-Iso + +Σ-cong-iso-fst : (isom : Iso A A') Iso (Σ A (B fun isom)) (Σ A' B) +fun (Σ-cong-iso-fst isom) x = fun isom (x .fst) , x .snd +inv (Σ-cong-iso-fst {B = B} isom) x = inv isom (x .fst) , subst B (sym (ε (x .fst))) (x .snd) + where + ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) +rightInv (Σ-cong-iso-fst {B = B} isom) (x , y) = ΣPathP (ε x , toPathP goal) + where + ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) + goal : subst B (ε x) (subst B (sym (ε x)) y) y + goal = sym (substComposite B (sym (ε x)) (ε x) y) + ∙∙ cong x subst B x y) (lCancel (ε x)) + ∙∙ substRefl {B = B} y +leftInv (Σ-cong-iso-fst {A = A} {B = B} isom) (x , y) = ΣPathP (leftInv isom x , toPathP goal) + where + ε = isHAEquiv.rinv (snd (iso→HAEquiv isom)) + γ = isHAEquiv.com (snd (iso→HAEquiv isom)) + + lem : (x : A) sym (ε (fun isom x)) cong (fun isom) (leftInv isom x) refl + lem x = cong a sym (ε (fun isom x)) a) (γ x) lCancel (ε (fun isom x)) + + goal : subst B (cong (fun isom) (leftInv isom x)) (subst B (sym (ε (fun isom x))) y) y + goal = sym (substComposite B (sym (ε (fun isom x))) (cong (fun isom) (leftInv isom x)) y) + ∙∙ cong a subst B a y) (lem x) + ∙∙ substRefl {B = B} y + +Σ-cong-equiv-fst : (e : A A') Σ A (B equivFun e) Σ A' B +-- we could just do this: +-- Σ-cong-equiv-fst e = isoToEquiv (Σ-cong-iso-fst (equivToIso e)) +-- but the following reduces slightly better +Σ-cong-equiv-fst {A = A} {A' = A'} {B = B} e = intro , isEqIntro + where + intro : Σ A (B equivFun e) Σ A' B + intro (a , b) = equivFun e a , b + isEqIntro : isEquiv intro + isEqIntro .equiv-proof x = ctr , isCtr where + PB : {x y} x y B x B y Type _ + PB p = PathP i B (p i)) + + open Σ x renaming (fst to a'; snd to b) + open Σ (equivCtr e a') renaming (fst to ctrA; snd to α) + ctrB : B (equivFun e ctrA) + ctrB = subst B (sym α) b + ctrP : PB α ctrB b + ctrP = symP (transport-filler i B (sym α i)) b) + ctr : fiber intro x + ctr = (ctrA , ctrB) , ΣPathP (α , ctrP) + + isCtr : y ctr y + isCtr ((r , s) , p) = λ i (a≡r i , b!≡s i) , ΣPathP (α≡ρ i , coh i) where + open PathPΣ p renaming (fst to ρ; snd to σ) + open PathPΣ (equivCtrPath e a' (r , ρ)) renaming (fst to a≡r; snd to α≡ρ) + + b!≡s : PB (cong (equivFun e) a≡r) ctrB s + b!≡s i = comp k B (α≡ρ i (~ k))) k + { (i = i0) ctrP (~ k) + ; (i = i1) σ (~ k) + })) b + + coh : PathP i PB (α≡ρ i) (b!≡s i) b) ctrP σ + coh i j = fill k B (α≡ρ i (~ k))) k + { (i = i0) ctrP (~ k) + ; (i = i1) σ (~ k) + })) (inS b) (~ j) + +Σ-cong-fst : (p : A A') Σ A (B transport p) Σ A' B +Σ-cong-fst {B = B} p i = Σ (p i) (B transp j p (i j)) i) + +Σ-cong-iso-snd : ((x : A) Iso (B x) (B' x)) Iso (Σ A B) (Σ A B') +fun (Σ-cong-iso-snd isom) (x , y) = x , fun (isom x) y +inv (Σ-cong-iso-snd isom) (x , y') = x , inv (isom x) y' +rightInv (Σ-cong-iso-snd isom) (x , y) = ΣPathP (refl , rightInv (isom x) y) +leftInv (Σ-cong-iso-snd isom) (x , y') = ΣPathP (refl , leftInv (isom x) y') + +Σ-cong-equiv-snd : (∀ a B a B' a) Σ A B Σ A B' +Σ-cong-equiv-snd h = isoToEquiv (Σ-cong-iso-snd (equivToIso h)) + +Σ-cong-snd : ((x : A) B x B' x) Σ A B Σ A B' +Σ-cong-snd {A = A} p i = Σ[ x A ] (p x i) + +Σ-cong-iso : (isom : Iso A A') + ((x : A) Iso (B x) (B' (fun isom x))) + Iso (Σ A B) (Σ A' B') +Σ-cong-iso isom isom' = compIso (Σ-cong-iso-snd isom') (Σ-cong-iso-fst isom) + +Σ-cong-equiv : (e : A A') + ((x : A) B x B' (equivFun e x)) + Σ A B Σ A' B' +Σ-cong-equiv e e' = isoToEquiv (Σ-cong-iso (equivToIso e) (equivToIso e')) + +Σ-cong' : (p : A A') PathP i p i Type ℓ') B B' Σ A B Σ A' B' +Σ-cong' p p' = cong₂ (A : Type _) (B : A Type _) Σ A B) p p' + +Σ-cong-equiv-prop : + (e : A A') + ((x : A ) isProp (B x)) + ((x : A') isProp (B' x)) + ((x : A) B x B' (equivFun e x)) + ((x : A) B' (equivFun e x) B x) + Σ A B Σ A' B' +Σ-cong-equiv-prop e prop prop' prop→ prop← = + Σ-cong-equiv e x propBiimpl→Equiv (prop x) (prop' (equivFun e x)) (prop→ x) (prop← x)) + +-- Alternative version for path in Σ-types, as in the HoTT book + +ΣPathTransport : (a b : Σ A B) Type _ +ΣPathTransport {B = B} a b = Σ[ p (fst a fst b) ] transport i B (p i)) (snd a) snd b + +IsoΣPathTransportPathΣ : (a b : Σ A B) Iso (ΣPathTransport a b) (a b) +IsoΣPathTransportPathΣ {B = B} a b = + compIso (Σ-cong-iso-snd p invIso (PathPIsoPath i B (p i)) _ _))) + ΣPathIsoPathΣ + +ΣPathTransport≃PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) +ΣPathTransport≃PathΣ {B = B} a b = isoToEquiv (IsoΣPathTransportPathΣ a b) + +ΣPathTransport→PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) +ΣPathTransport→PathΣ a b = Iso.fun (IsoΣPathTransportPathΣ a b) + +PathΣ→ΣPathTransport : (a b : Σ A B) (a b) ΣPathTransport a b +PathΣ→ΣPathTransport a b = Iso.inv (IsoΣPathTransportPathΣ a b) + +ΣPathTransport≡PathΣ : (a b : Σ A B) ΣPathTransport a b (a b) +ΣPathTransport≡PathΣ a b = ua (ΣPathTransport≃PathΣ a b) + +Σ-contractFstIso : (c : isContr A) Iso (Σ A B) (B (c .fst)) +fun (Σ-contractFstIso {B = B} c) p = subst B (sym (c .snd (fst p))) (snd p) +inv (Σ-contractFstIso {B = B} c) b = _ , b +rightInv (Σ-contractFstIso {B = B} c) b = + cong p subst B p b) (isProp→isSet (isContr→isProp c) _ _ _ _) transportRefl _ +fst (leftInv (Σ-contractFstIso {B = B} c) p j) = c .snd (fst p) j +snd (leftInv (Σ-contractFstIso {B = B} c) p j) = + transp i B (c .snd (fst p) (~ i j))) j (snd p) + +Σ-contractFst : (c : isContr A) Σ A B B (c .fst) +Σ-contractFst {B = B} c = isoToEquiv (Σ-contractFstIso c) + +-- a special case of the above +module _ (A : Unit Type ) where + ΣUnit : Σ Unit A A tt + unquoteDef ΣUnit = defStrictEquiv ΣUnit snd { x (tt , x) }) + +Σ-contractSnd : ((a : A) isContr (B a)) Σ A B A +Σ-contractSnd c = isoToEquiv isom + where + isom : Iso _ _ + isom .fun = fst + isom .inv a = a , c a .fst + isom .rightInv _ = refl + isom .leftInv (a , b) = cong (a ,_) (c a .snd b) + +isEmbeddingFstΣProp : ((x : A) isProp (B x)) + {u v : Σ A B} + isEquiv (p : u v) cong fst p) +isEmbeddingFstΣProp {B = B} pB {u = u} {v = v} .equiv-proof x = ctr , isCtr + where + ctrP : u v + ctrP = ΣPathP (x , isProp→PathP _ pB _) _ _) + ctr : fiber (p : u v) cong fst p) x + ctr = ctrP , refl + + isCtr : z ctr z + isCtr (z , p) = ΣPathP (ctrP≡ , cong (sym snd) fzsingl) where + fzsingl : Path (singl x) (x , refl) (cong fst z , sym p) + fzsingl = isContrSingl x .snd (cong fst z , sym p) + ctrSnd : SquareP i j B (fzsingl i .fst j)) (cong snd ctrP) (cong snd z) _ _ + ctrSnd = isProp→SquareP _ _ pB _) _ _ _ _ + ctrP≡ : ctrP z + ctrP≡ i = ΣPathP (fzsingl i .fst , ctrSnd i) + +Σ≡PropEquiv : ((x : A) isProp (B x)) {u v : Σ A B} + (u .fst v .fst) (u v) +Σ≡PropEquiv pB = invEquiv (_ , isEmbeddingFstΣProp pB) + +Σ≡Prop : ((x : A) isProp (B x)) {u v : Σ A B} + (p : u .fst v .fst) u v +Σ≡Prop pB p = equivFun (Σ≡PropEquiv pB) p + +-- dependent version +ΣPathPProp : { ℓ'} {A : I Type } {B : (i : I) A i Type ℓ'} + {u : Σ (A i0) (B i0)} {v : Σ (A i1) (B i1)} + ((a : A (i1)) isProp (B i1 a)) + PathP i A i) (fst u) (fst v) + PathP i Σ (A i) (B i)) u v +fst (ΣPathPProp {u = u} {v = v} pB p i) = p i +snd (ΣPathPProp {B = B} {u = u} {v = v} pB p i) = lem i + where + lem : PathP i B i (p i)) (snd u) (snd v) + lem = toPathP (pB _ _ _) + +≃-× : {ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} A C B D A × B C × D +≃-× eq1 eq2 = + map-× (fst eq1) (fst eq2) + , record + { equiv-proof + = λ {(c , d) ((eq1⁻ c .fst .fst + , eq2⁻ d .fst .fst) + , ≡-× (eq1⁻ c .fst .snd) + (eq2⁻ d .fst .snd)) + , λ {((a , b) , p) ΣPathP (≡-× (cong fst (eq1⁻ c .snd (a , cong fst p))) + (cong fst (eq2⁻ d .snd (b , cong snd p))) + , λ i ≡-× (snd ((eq1⁻ c .snd (a , cong fst p)) i)) + (snd ((eq2⁻ d .snd (b , cong snd p)) i)))}}} + where + eq1⁻ = equiv-proof (eq1 .snd) + eq2⁻ = equiv-proof (eq2 .snd) + +{- Some simple ismorphisms -} + +prodIso : { ℓ' ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} + Iso A C + Iso B D + Iso (A × B) (C × D) +Iso.fun (prodIso iAC iBD) (a , b) = (Iso.fun iAC a) , Iso.fun iBD b +Iso.inv (prodIso iAC iBD) (c , d) = (Iso.inv iAC c) , Iso.inv iBD d +Iso.rightInv (prodIso iAC iBD) (c , d) = ΣPathP ((Iso.rightInv iAC c) , (Iso.rightInv iBD d)) +Iso.leftInv (prodIso iAC iBD) (a , b) = ΣPathP ((Iso.leftInv iAC a) , (Iso.leftInv iBD b)) + +prodEquivToIso : {ℓ'' ℓ'''} {A : Type } {B : Type ℓ'} {C : Type ℓ''} {D : Type ℓ'''} + (e : A C)(e' : B D) + prodIso (equivToIso e) (equivToIso e') equivToIso (≃-× e e') +Iso.fun (prodEquivToIso e e' i) = Iso.fun (equivToIso (≃-× e e')) +Iso.inv (prodEquivToIso e e' i) = Iso.inv (equivToIso (≃-× e e')) +Iso.rightInv (prodEquivToIso e e' i) = Iso.rightInv (equivToIso (≃-× e e')) +Iso.leftInv (prodEquivToIso e e' i) = Iso.leftInv (equivToIso (≃-× e e')) + +toProdIso : {B C : A Type } + Iso ((a : A) B a × C a) (((a : A) B a) × ((a : A) C a)) +Iso.fun toProdIso = λ f a fst (f a)) , a snd (f a)) +Iso.inv toProdIso (f , g) = λ a (f a) , (g a) +Iso.rightInv toProdIso (f , g) = refl +Iso.leftInv toProdIso b = refl + +module _ {A : Type } {B : A Type ℓ'} {C : a B a Type ℓ''} where + curryIso : Iso (((a , b) : Σ A B) C a b) ((a : A) (b : B a) C a b) + Iso.fun curryIso f a b = f (a , b) + Iso.inv curryIso f a = f (fst a) (snd a) + Iso.rightInv curryIso a = refl + Iso.leftInv curryIso f = refl + + unquoteDecl curryEquiv = declStrictIsoToEquiv curryEquiv curryIso + +-- Sigma type with empty base + +module _ (A : Type ) where + + open Iso + + ΣEmptyIso : Iso (Σ A) + fun ΣEmptyIso (* , _) = * + + ΣEmpty : Σ A + ΣEmpty = isoToEquiv ΣEmptyIso + +module _ { : Level} (A : ⊥* {} Type ) where + + open Iso + + ΣEmpty*Iso : Iso (Σ ⊥* A) ⊥* + fun ΣEmpty*Iso (* , _) = * + +-- fiber of projection map + +module _ + (A : Type ) + (B : A Type ℓ') where + + private + proj : Σ A B A + proj (a , b) = a + + module _ + (a : A) where + + open Iso + + fiberProjIso : Iso (B a) (fiber proj a) + fiberProjIso .fun b = (a , b) , refl + fiberProjIso .inv ((a' , b') , p) = subst B p b' + fiberProjIso .leftInv b i = substRefl {B = B} b i + fiberProjIso .rightInv (_ , p) i .fst .fst = p (~ i) + fiberProjIso .rightInv ((_ , b') , p) i .fst .snd = subst-filler B p b' (~ i) + fiberProjIso .rightInv (_ , p) i .snd j = p (~ i j) + + fiberProjEquiv : B a fiber proj a + fiberProjEquiv = isoToEquiv fiberProjIso + +separatedΣ : Separated A ((a : A) Separated (B a)) Separated (Σ A B) +separatedΣ {B = B} sepA sepB (a , b) (a' , b') p = ΣPathTransport→PathΣ _ _ (pA , pB) + where + pA : a a' + pA = sepA a a' q p r q (cong fst r))) + + pB : subst B pA b b' + pB = sepB _ _ _ q p r q (cong r' subst B r' b) + (Separated→isSet sepA _ _ pA (cong fst r)) snd (PathΣ→ΣPathTransport _ _ r)))) \ No newline at end of file diff --git a/Cubical.Data.SumFin.Properties.html b/Cubical.Data.SumFin.Properties.html index b0064920e2..f9b2d6dd37 100644 --- a/Cubical.Data.SumFin.Properties.html +++ b/Cubical.Data.SumFin.Properties.html @@ -73,10 +73,10 @@ SumFin⊎≃ (suc m) n = ⊎-assoc-≃ ⊎-equiv (idEquiv ) (SumFin⊎≃ m n) SumFinΣ≃ : (n : )(f : Fin n ) (Σ (Fin n) x Fin (f x))) (Fin (totalSum f)) -SumFinΣ≃ 0 f = ΣEmpty _ +SumFinΣ≃ 0 f = ΣEmpty _ SumFinΣ≃ (suc n) f = Σ⊎≃ - ⊎-equiv (ΣUnit tt Fin (f (inl tt)))) (SumFinΣ≃ n x f (inr x))) + ⊎-equiv (ΣUnit tt Fin (f (inl tt)))) (SumFinΣ≃ n x f (inr x))) SumFin⊎≃ (f (inl tt)) (totalSum x f (inr x))) SumFin×≃ : (m n : ) (Fin m × Fin n) (Fin (m · n)) @@ -86,7 +86,7 @@ SumFinΠ≃ 0 _ = isContr→≃Unit (isContrΠ⊥) invEquiv (⊎-IdR-⊥-≃) SumFinΠ≃ (suc n) f = Π⊎≃ - Σ-cong-equiv (ΠUnit tt Fin (f (inl tt)))) _ SumFinΠ≃ n x f (inr x))) + Σ-cong-equiv (ΠUnit tt Fin (f (inl tt)))) _ SumFinΠ≃ n x f (inr x))) SumFin×≃ (f (inl tt)) (totalProd x f (inr x))) isNotZero : @@ -132,7 +132,7 @@ SumFinℙ≃ 0 = isContr→≃Unit (isContrΠ⊥) invEquiv (⊎-IdR-⊥-≃) SumFinℙ≃ (suc n) = Π⊎≃ - Σ-cong-equiv (UnitToType≃ Bool invEquiv SumFin2≃Bool) _ SumFinℙ≃ n) + Σ-cong-equiv (UnitToType≃ Bool invEquiv SumFin2≃Bool) _ SumFinℙ≃ n) SumFin×≃ 2 (2 ^ n) -- decidable subsets of SumFin @@ -150,10 +150,10 @@ SumFinDec⊎≃ _ false = ⊎-swap-≃ ⊎-IdR-⊥-≃ SumFinSub≃ : (n : )(f : Fin n Bool) Σ _ (Bool→Type f) Fin (trueCount f) -SumFinSub≃ 0 _ = ΣEmpty _ +SumFinSub≃ 0 _ = ΣEmpty _ SumFinSub≃ (suc n) f = Σ⊎≃ - ⊎-equiv (ΣUnit (Bool→Type f inl)) (SumFinSub≃ n (f inr)) + ⊎-equiv (ΣUnit (Bool→Type f inl)) (SumFinSub≃ n (f inr)) SumFinDec⊎≃ _ (f (inl tt)) -- decidable quantifier @@ -167,17 +167,17 @@ trueForAll (suc n) f = f (inl tt) and trueForAll n (f inr) SumFin∃→ : (n : )(f : Fin n Bool) Σ _ (Bool→Type f) Bool→Type (trueForSome n f) -SumFin∃→ 0 _ = ΣEmpty _ .fst +SumFin∃→ 0 _ = ΣEmpty _ .fst SumFin∃→ (suc n) f = Bool→Type⊎' _ _ - ⊎.map (ΣUnit (Bool→Type f inl) .fst) (SumFin∃→ n (f  inr)) + ⊎.map (ΣUnit (Bool→Type f inl) .fst) (SumFin∃→ n (f  inr)) Σ⊎≃ .fst SumFin∃← : (n : )(f : Fin n Bool) Bool→Type (trueForSome n f) Σ _ (Bool→Type f) SumFin∃← 0 _ = ⊥.rec SumFin∃← (suc n) f = invEq Σ⊎≃ - ⊎.map (invEq (ΣUnit (Bool→Type f inl))) (SumFin∃← n (f inr)) + ⊎.map (invEq (ΣUnit (Bool→Type f inl))) (SumFin∃← n (f inr)) Bool→Type⊎ _ _ SumFin∃≃ : (n : )(f : Fin n Bool) Σ (Fin n) (Bool→Type f) ∥₁ Bool→Type (trueForSome n f) @@ -190,7 +190,7 @@ SumFin∀≃ 0 _ = isContr→≃Unit (isContrΠ⊥) SumFin∀≃ (suc n) f = Π⊎≃ - Σ-cong-equiv (ΠUnit (Bool→Type f inl)) _ SumFin∀≃ n (f inr)) + Σ-cong-equiv (ΠUnit (Bool→Type f inl)) _ SumFin∀≃ n (f inr)) Bool→Type×≃ _ _ -- internal equality diff --git a/Cubical.Displayed.Base.html b/Cubical.Displayed.Base.html index 3c1517647b..403e9ba08f 100644 --- a/Cubical.Displayed.Base.html +++ b/Cubical.Displayed.Base.html @@ -83,7 +83,7 @@ UARel._≅_ (a , b) (a' , b') = Σ[ p a a' ] (b ≅ᴰ⟨ p b') UARel.ua (a , b) (a' , b') = compEquiv - (Σ-cong-equiv (ua a a') p uaᴰ b p b')) + (Σ-cong-equiv (ua a a') p uaᴰ b p b')) ΣPath≃PathΣ \ No newline at end of file diff --git a/Cubical.Displayed.Prop.html b/Cubical.Displayed.Prop.html index e289c729f0..4240431bd6 100644 --- a/Cubical.Displayed.Prop.html +++ b/Cubical.Displayed.Prop.html @@ -37,7 +37,7 @@ UARel (Σ A P) ℓ≅A 𝒮-subtype 𝒮-A propP .UARel._≅_ (a , _) (a' , _) = 𝒮-A .UARel._≅_ a a' 𝒮-subtype 𝒮-A propP .UARel.ua (a , _) (a' , _) = - compEquiv (𝒮-A .UARel.ua a a') (Σ≡PropEquiv propP) + compEquiv (𝒮-A .UARel.ua a a') (Σ≡PropEquiv propP) 𝒮ᴰ-subtype : {A : Type ℓA} {𝒮-A : UARel A ℓ≅A} {B : A Type ℓB} (𝒮ᴰ-B : DUARel 𝒮-A B ℓ≅B) @@ -49,6 +49,6 @@ compEquiv (𝒮ᴰ-B .DUARel.uaᴰ b p b') (compEquiv - (invEquiv (Σ-contractSnd λ _ isOfHLevelPathP' 0 (propP _ b') _ _)) + (invEquiv (Σ-contractSnd λ _ isOfHLevelPathP' 0 (propP _ b') _ _)) ΣPath≃PathΣ) \ No newline at end of file diff --git a/Cubical.Displayed.Properties.html b/Cubical.Displayed.Properties.html index 2d39c4de31..e1059bf65f 100644 --- a/Cubical.Displayed.Properties.html +++ b/Cubical.Displayed.Properties.html @@ -139,5 +139,5 @@ -- DUARelFiberIsoOver→TotalIso produces an isomorphism of total spaces -- from a relational isomorphism between B a and (F * B) a 𝒮ᴰ-fiberIsoOver→totalIso : Iso (Σ A B) (Σ A' B') - 𝒮ᴰ-fiberIsoOver→totalIso = Σ-cong-iso F fiberIsoOver + 𝒮ᴰ-fiberIsoOver→totalIso = Σ-cong-iso F fiberIsoOver \ No newline at end of file diff --git a/Cubical.Displayed.Sigma.html b/Cubical.Displayed.Sigma.html index 4d6392ba7d..285a5208a5 100644 --- a/Cubical.Displayed.Sigma.html +++ b/Cubical.Displayed.Sigma.html @@ -69,7 +69,7 @@ Σ[ q b B.≅ᴰ⟨ p b' ] (c C.≅ᴰ⟨ p , q c') DUARel.uaᴰ 𝒮ᴰ-Σ (b , c) p (b' , c') = compEquiv - (Σ-cong-equiv (B.uaᴰ b p b') q C.uaᴰ c (p , q) c')) + (Σ-cong-equiv (B.uaᴰ b p b') q C.uaᴰ c (p , q) c')) ΣPath≃PathΣ -- DUARel on a non-dependent Σ-type @@ -96,7 +96,7 @@ module C = SubstRel 𝒮ˢ-C 𝒮ˢ-Σ : SubstRel 𝒮-A a Σ[ b B a ] C (a , b)) - 𝒮ˢ-Σ .act p = Σ-cong-equiv (B.act p) b C.act (p , refl)) + 𝒮ˢ-Σ .act p = Σ-cong-equiv (B.act p) b C.act (p , refl)) 𝒮ˢ-Σ .uaˢ p _ = fromPathP (DUARel.uaᴰ (𝒮ᴰ-Σ (Subst→DUA 𝒮ˢ-B) (Subst→DUA 𝒮ˢ-C)) _ p _ .fst (refl , refl)) @@ -115,6 +115,6 @@ module C = SubstRel 𝒮ˢ-C _×𝒮ˢ_ : SubstRel 𝒮-A a B a × C a) - _×𝒮ˢ_ .act p = ≃-× (B.act p) (C.act p) + _×𝒮ˢ_ .act p = ≃-× (B.act p) (C.act p) _×𝒮ˢ_ .uaˢ p (b , c) = ΣPathP (B.uaˢ p b , C.uaˢ p c) \ No newline at end of file diff --git a/Cubical.Experiments.EscardoSIP.html b/Cubical.Experiments.EscardoSIP.html index 2fbc1d68e9..74905fe721 100644 --- a/Cubical.Experiments.EscardoSIP.html +++ b/Cubical.Experiments.EscardoSIP.html @@ -32,7 +32,7 @@ Σ-≡-≃ : {X : Type } {A : X Type ℓ'} (σ τ : Σ X A) ((σ τ) (Σ[ p (σ .fst) (τ .fst) ] (subst A p (σ .snd) (τ .snd)))) -Σ-≡-≃ {A = A} σ τ = invEquiv (ΣPathTransport≃PathΣ σ τ) +Σ-≡-≃ {A = A} σ τ = invEquiv (ΣPathTransport≃PathΣ σ τ) @@ -99,11 +99,11 @@ φψ : (z : (Σ Y A)) φ (ψ z) z φψ (y , a) = - ΣPathTransport→PathΣ _ _ (η y , transportTransport⁻ i A (η y i)) a) + ΣPathTransport→PathΣ _ _ (η y , transportTransport⁻ i A (η y i)) a) -- last term proves transp (λ i → A (η y i)) i0 (transp (λ i → A (η y (~ i))) i0 a) ≡ a ψφ : (z : (Σ X (A f))) ψ (φ z) z - ψφ (x , a) = ΣPathTransport→PathΣ _ _ (ε x , q) + ψφ (x , a) = ΣPathTransport→PathΣ _ _ (ε x , q) where b : A (f (g (f x))) b = (transp i A (η (f x) (~ i))) i0 a) diff --git a/Cubical.Experiments.Poset.html b/Cubical.Experiments.Poset.html index ab35c947ae..d95a079db9 100644 --- a/Cubical.Experiments.Poset.html +++ b/Cubical.Experiments.Poset.html @@ -94,9 +94,9 @@ NTS : (fib : fiber f p) ((to , from) , eq) fib NTS ((φ , ψ) , eq) = - Σ≡Prop + Σ≡Prop i′ isOfHLevelSuc 2 (isSetOrder ℓ₁ X) _⊑₀_ _⊑₁_ (f i′) p) - (Σ≡Prop + (Σ≡Prop _ isPropIsOrderPreserving (X , _⊑₁_) (X , _⊑₀_) (idfun _)) (isPropIsOrderPreserving (X , _⊑₀_) (X , _⊑₁_) (idfun _) to φ)) @@ -205,7 +205,7 @@ f g (f , f-mono) (g , g-mono) forget-mono P Q (f , f-mono) (g , g-mono) = - Σ≡Prop f isPropΠ3 λ x y x⊑y snd (f x ⊑[ Q ] f y)) + Σ≡Prop f isPropΠ3 λ x y x⊑y snd (f x ⊑[ Q ] f y)) module PosetReasoning (P : Poset ℓ₀ ℓ₁) where @@ -268,7 +268,7 @@ isPosetIso-prop : (P Q : Poset ℓ₀ ℓ₁) (f : P ─m→ Q) isProp (isPosetIso P Q f) isPosetIso-prop P Q (f , f-mono) (g₀ , sec₀ , ret₀) (g₁ , sec₁ , ret₁) = - Σ≡Prop NTS g₀=g₁ + Σ≡Prop NTS g₀=g₁ where NTS : ((g , _) : Q ─m→ P) isProp (section f g × retract f g) NTS (g , g-mono) = isPropΣ @@ -314,10 +314,10 @@ is = iso f g sec ret sec : section to from - sec (f , _) = Σ≡Prop (isPosetIso-prop P Q) refl + sec (f , _) = Σ≡Prop (isPosetIso-prop P Q) refl ret : retract to from - ret (e , _) = Σ≡Prop (isPropIsAMonotonicEqv P Q) (Σ≡Prop isPropIsEquiv refl) + ret (e , _) = Σ≡Prop (isPropIsAMonotonicEqv P Q) (Σ≡Prop isPropIsEquiv refl) -- Once we have this equivalence, the main result is then: the type of poset -- isomorphisms between `P` and `Q` is equivalent to the type of identity proofs diff --git a/Cubical.Experiments.ZCohomologyOld.KcompPrelims.html b/Cubical.Experiments.ZCohomologyOld.KcompPrelims.html index 7855cb4d92..02ede811d6 100644 --- a/Cubical.Experiments.ZCohomologyOld.KcompPrelims.html +++ b/Cubical.Experiments.ZCohomologyOld.KcompPrelims.html @@ -182,7 +182,7 @@ sphereConnectedSpecCase = sphereConnected 3 d-mapComp : Iso (fiber d-map base) (Path (S₊ 3) north north) -d-mapComp = compIso (IsoΣPathTransportPathΣ {B = HopfSuspS¹} _ _) +d-mapComp = compIso (IsoΣPathTransportPathΣ {B = HopfSuspS¹} _ _) (congIso (invIso IsoS³TotalHopf)) is1Connected-dmap : isConnectedFun 3 d-map diff --git a/Cubical.Foundations.Cubes.HLevels.html b/Cubical.Foundations.Cubes.HLevels.html index d6f3aa91c3..b985f7d7c7 100644 --- a/Cubical.Foundations.Cubes.HLevels.html +++ b/Cubical.Foundations.Cubes.HLevels.html @@ -50,9 +50,9 @@ isCubeFilledPath≡Suc n A = i (x y : A)( : ∂CubeConst₀₁≡∂CubePath {n = suc n} {a₀ = x} {y} (~ i)) CubeRelConst₀₁≡CubeRelPath (~ i) ) - i (x : A) isoToPath (curryIso {A = A} + i (x : A) isoToPath (curryIso {A = A} {B = λ y ∂CubeConst₀₁ (suc n) A x y} {C = λ _ CubeRelConst₀₁ (suc n) A }) (~ i)) - sym (isoToPath curryIso) + sym (isoToPath curryIso) i ( : ∂CubeConst₀₁≡∂CubeSuc {A = A} i) CubeRelConst₀₁≡CubeRelSuc {n = n} i ) isCubeFilledPath→Suc : (n : ) (A : Type ) diff --git a/Cubical.Foundations.Cubes.Subtypes.html b/Cubical.Foundations.Cubes.Subtypes.html index 66568197aa..c13cfb2966 100644 --- a/Cubical.Foundations.Cubes.Subtypes.html +++ b/Cubical.Foundations.Cubes.Subtypes.html @@ -203,7 +203,7 @@ -- For simplicity, we begin at n=1, and that is all we need. ∂CubeConst₀₁≃∂CubeSuc : {n : } {A : Type } Σ∂CubeConst₀₁ (suc n) A ∂Cube (suc (suc n)) A -∂CubeConst₀₁≃∂CubeSuc = Σ-cong-equiv (_ , isEquivConst) a Σ-cong-equiv-fst (_ , isEquivConst)) +∂CubeConst₀₁≃∂CubeSuc = Σ-cong-equiv (_ , isEquivConst) a Σ-cong-equiv-fst (_ , isEquivConst)) HAEquiv-∂CubeConst₀₁-∂CubeSuc : {n : }{A : Type } HAEquiv (Σ∂CubeConst₀₁ (suc n) A) (∂Cube (suc (suc n)) A) HAEquiv-∂CubeConst₀₁-∂CubeSuc = equiv→HAEquiv ∂CubeConst₀₁≃∂CubeSuc diff --git a/Cubical.Foundations.Equiv.Properties.html b/Cubical.Foundations.Equiv.Properties.html index c03a336418..8225c966fa 100644 --- a/Cubical.Foundations.Equiv.Properties.html +++ b/Cubical.Foundations.Equiv.Properties.html @@ -194,13 +194,13 @@ _ refl) λ _ refl) Σ _ rCoh1 -- secondly, convert the path into a dependent path for later convenience - ≃⟨ Σ-cong-equiv-snd s Σ-cong-equiv-snd + ≃⟨ Σ-cong-equiv-snd s Σ-cong-equiv-snd λ η equivΠCod λ x compEquiv (flipSquareEquiv {a₀₀ = f x}) (invEquiv slideSquareEquiv)) Σ _ rCoh2 - ≃⟨ Σ-cong-equiv-snd s invEquiv Σ-Π-≃) + ≃⟨ Σ-cong-equiv-snd s invEquiv Σ-Π-≃) Σ _ rCoh3 - ≃⟨ Σ-cong-equiv-snd s equivΠCod λ x ΣPath≃PathΣ) + ≃⟨ Σ-cong-equiv-snd s equivΠCod λ x ΣPath≃PathΣ) Σ _ rCoh4 where open isHAEquiv diff --git a/Cubical.Foundations.HLevels.html b/Cubical.Foundations.HLevels.html index ae857ccd32..411eb21537 100644 --- a/Cubical.Foundations.HLevels.html +++ b/Cubical.Foundations.HLevels.html @@ -135,7 +135,7 @@ isPropIs2Groupoid = isPropIsOfHLevel 4 TypeOfHLevel≡ : (n : HLevel) {X Y : TypeOfHLevel n} X Y X Y -TypeOfHLevel≡ n = Σ≡Prop _ isPropIsOfHLevel n) +TypeOfHLevel≡ n = Σ≡Prop _ isPropIsOfHLevel n) -- hlevels are preserved by retracts (and consequently equivalences) @@ -314,20 +314,20 @@ section-Σ≡Prop : (pB : (x : A) isProp (B x)) {u v : Σ A B} - section (Σ≡Prop pB {u} {v}) (cong fst) + section (Σ≡Prop pB {u} {v}) (cong fst) section-Σ≡Prop {A = A} pB {u} {v} p j i = (p i .fst) , isProp→PathP i isOfHLevelPath 1 (pB (fst (p i))) - (Σ≡Prop pB {u} {v} (cong fst p) i .snd) + (Σ≡Prop pB {u} {v} (cong fst p) i .snd) (p i .snd) ) refl refl i j isEquiv-Σ≡Prop : (pB : (x : A) isProp (B x)) {u v : Σ A B} - isEquiv (Σ≡Prop pB {u} {v}) -isEquiv-Σ≡Prop {A = A} pB {u} {v} = isoToIsEquiv (iso (Σ≡Prop pB) (cong fst) (section-Σ≡Prop pB) _ refl)) + isEquiv (Σ≡Prop pB {u} {v}) +isEquiv-Σ≡Prop {A = A} pB {u} {v} = isoToIsEquiv (iso (Σ≡Prop pB) (cong fst) (section-Σ≡Prop pB) _ refl)) isPropΣ : isProp A ((x : A) isProp (B x)) isProp (Σ A B) -isPropΣ pA pB t u = Σ≡Prop pB (pA (t .fst) (u .fst)) +isPropΣ pA pB t u = Σ≡Prop pB (pA (t .fst) (u .fst)) isOfHLevelΣ : n isOfHLevel n A ((x : A) isOfHLevel n (B x)) isOfHLevel n (Σ A B) @@ -335,7 +335,7 @@ isOfHLevelΣ 1 = isPropΣ isOfHLevelΣ {B = B} (suc (suc n)) h1 h2 x y = isOfHLevelRetractFromIso (suc n) - (invIso (IsoΣPathTransportPathΣ _ _)) + (invIso (IsoΣPathTransportPathΣ _ _)) (isOfHLevelΣ (suc n) (h1 (fst x) (fst y)) λ x h2 _ _ _) isSetΣ : isSet A ((x : A) isSet (B x)) isSet (Σ A B) @@ -507,7 +507,7 @@ isOfHLevel≃ zero {A = A} {B = B} hA hB = isContr→Equiv hA hB , contr where contr : (y : A B) isContr→Equiv hA hB y - contr y = Σ≡Prop isPropIsEquiv (funExt a snd hB (fst y a))) + contr y = Σ≡Prop isPropIsEquiv (funExt a snd hB (fst y a))) isOfHLevel≃ (suc n) {A = A} {B = B} hA hB = isOfHLevelΣ (suc n) (isOfHLevelΠ _ λ _ hB) @@ -556,12 +556,12 @@ -- h-level of TypeOfHLevel isPropHContr : isProp (TypeOfHLevel 0) -isPropHContr x y = Σ≡Prop _ isPropIsContr) (isOfHLevel≡ 0 (x .snd) (y .snd) .fst) +isPropHContr x y = Σ≡Prop _ isPropIsContr) (isOfHLevel≡ 0 (x .snd) (y .snd) .fst) isOfHLevelTypeOfHLevel : n isOfHLevel (suc n) (TypeOfHLevel n) isOfHLevelTypeOfHLevel zero = isPropHContr isOfHLevelTypeOfHLevel (suc n) (X , a) (Y , b) = - isOfHLevelRetract (suc n) (cong fst) (Σ≡Prop λ _ isPropIsOfHLevel (suc n)) + isOfHLevelRetract (suc n) (cong fst) (Σ≡Prop λ _ isPropIsOfHLevel (suc n)) (section-Σ≡Prop λ _ isPropIsOfHLevel (suc n)) (isOfHLevel≡ (suc n) a b) diff --git a/Cubical.Foundations.Pointed.Homotopy.html b/Cubical.Foundations.Pointed.Homotopy.html index 292de6d206..5fd82f5835 100644 --- a/Cubical.Foundations.Pointed.Homotopy.html +++ b/Cubical.Foundations.Pointed.Homotopy.html @@ -95,7 +95,7 @@ -- Proof that ∙∼ and ∙∼P are equivalent using the fiberwise equivalence φ ∙∼≃∙∼P : (f g : Π∙ A B ptB) (f ∙∼ g) (f ∙∼P g) - ∙∼≃∙∼P f g = Σ-cong-equiv-snd H pathToEquiv (P≡Q f g H)) + ∙∼≃∙∼P f g = Σ-cong-equiv-snd H pathToEquiv (P≡Q f g H)) -- inverse of ∙∼→∙∼P extracted from the equivalence ∙∼P→∙∼ : {f g : Π∙ A B ptB} f ∙∼P g f ∙∼ g diff --git a/Cubical.Foundations.SIP.html b/Cubical.Foundations.SIP.html index bd019a2a4b..8b2d24a1e7 100644 --- a/Cubical.Foundations.SIP.html +++ b/Cubical.Foundations.SIP.html @@ -119,7 +119,7 @@ SIP : A ≃[ ι ] B (A B) SIP = - sip , isoToIsEquiv (compIso (Σ-cong-iso (invIso univalenceIso) (equivToIso θ)) ΣPathIsoPathΣ) + sip , isoToIsEquiv (compIso (Σ-cong-iso (invIso univalenceIso) (equivToIso θ)) ΣPathIsoPathΣ) sip⁻ : A B A ≃[ ι ] B sip⁻ = invEq SIP diff --git a/Cubical.Functions.Embedding.html b/Cubical.Functions.Embedding.html index 0b1480d869..e82e0042ea 100644 --- a/Cubical.Functions.Embedding.html +++ b/Cubical.Functions.Embedding.html @@ -160,7 +160,7 @@ injective→hasPropFibers : hasPropFibers f injective→hasPropFibers y (x , fx≡y) (x' , fx'≡y) = - Σ≡Prop + Σ≡Prop _ isSetB _ _) (inj (fx≡y sym (fx'≡y))) @@ -243,14 +243,14 @@ D = Σ[ x X ] x A Ψ : isEmbedding fst - Ψ w x = isEmbeddingFstΣProp (∈-isProp A) + Ψ w x = isEmbeddingFstΣProp (∈-isProp A) Subset→Embedding→Subset : {X : Type } section (Embedding→Subset {} {X}) (Subset→Embedding {} {X}) -Subset→Embedding→Subset _ = funExt λ x Σ≡Prop _ isPropIsProp) (ua (FiberIso.fiberEquiv _ x)) +Subset→Embedding→Subset _ = funExt λ x Σ≡Prop _ isPropIsProp) (ua (FiberIso.fiberEquiv _ x)) Embedding→Subset→Embedding : {X : Type } retract (Embedding→Subset {} {X}) (Subset→Embedding {} {X}) Embedding→Subset→Embedding { = } {X = X} (A , f , ψ) = - cong (equivFun Σ-assoc-≃) (Σ≡Prop _ isPropIsEmbedding) (retEq (fibrationEquiv X ) (A , f))) + cong (equivFun Σ-assoc-≃) (Σ≡Prop _ isPropIsEmbedding) (retEq (fibrationEquiv X ) (A , f))) Subset≃Embedding : {X : Type } X (Σ[ A Type ] (A X)) Subset≃Embedding = isoToEquiv (iso Subset→Embedding Embedding→Subset @@ -282,7 +282,7 @@ Cod′ : u v Type _ Cod′ u v = Σ[ p f (fst u) f (fst v) ] PathP i p i z) (snd u) (snd v) ΣeqCf : Dom′ u v Cod′ u v - ΣeqCf = Σ-cong-equiv-fst (_ , isE _ _) + ΣeqCf = Σ-cong-equiv-fst (_ , isE _ _) dom→ : u v Dom′ u v dom→ p = cong fst p , cong snd p @@ -321,7 +321,7 @@ (B A) ≃⟨ invEquiv univalence (B A) fiberSingl : X fiber F (F X) singl X - fiberSingl X = Σ-cong-equiv-snd _ lemma _ _) + fiberSingl X = Σ-cong-equiv-snd _ lemma _ _) propFibersF : hasPropFibersOfImage F propFibersF X = Embedding-into-isProp→isProp (Equiv→Embedding (fiberSingl X)) isPropSingl @@ -368,11 +368,11 @@ (Σ[ (E , eq) fiber L A ] fiber (_∘ lower) (transport⁻ i eq i B) f)) fiberChar = fiber liftFibration (A , f) - ≃⟨ Σ-cong-equiv-snd _ invEquiv ΣPath≃PathΣ) + ≃⟨ Σ-cong-equiv-snd _ invEquiv ΣPath≃PathΣ) (Σ[ (E , g) Fibration B ℓ' ] Σ[ eq (L E A) ] PathP i eq i B) (g lower) f) ≃⟨ boringSwap (Σ[ (E , eq) fiber L A ] Σ[ g (E B) ] PathP i eq i B) (g lower) f) - ≃⟨ Σ-cong-equiv-snd _ Σ-cong-equiv-snd λ _ pathToEquiv (PathP≡Path⁻ _ _ _)) + ≃⟨ Σ-cong-equiv-snd _ Σ-cong-equiv-snd λ _ pathToEquiv (PathP≡Path⁻ _ _ _)) (Σ[ (E , eq) fiber L A ] fiber (_∘ lower) (transport⁻ i eq i B) f)) where unquoteDecl boringSwap = @@ -391,8 +391,8 @@ FibrationIP : f≃g (f g) FibrationIP = - f≃g ≃⟨ equivΠCod b equivComp (Σ-cong-equiv-fst LiftEquiv) - (Σ-cong-equiv-fst LiftEquiv)) + f≃g ≃⟨ equivΠCod b equivComp (Σ-cong-equiv-fst LiftEquiv) + (Σ-cong-equiv-fst LiftEquiv)) f≃g′ ≃⟨ Fibration′IP (liftFibration f liftFibration g) ≃⟨ invEquiv (_ , isEmbeddingLiftFibration _ _) (f g) @@ -421,12 +421,12 @@ isEmbeddingToFibr w x = fullEquiv .snd where -- carefully managed such that (cong toFibr) is the equivalence fullEquiv : (w x) (toFibr w toFibr x) - fullEquiv = compEquiv (congEquiv (invEquiv Σ-assoc-≃)) (invEquiv (Σ≡PropEquiv _ isPropIsEmbedding))) + fullEquiv = compEquiv (congEquiv (invEquiv Σ-assoc-≃)) (invEquiv (Σ≡PropEquiv _ isPropIsEmbedding))) EmbeddingIP : f≃g (f g) EmbeddingIP = f≃g - ≃⟨ strictIsoToEquiv (invIso toProdIso) + ≃⟨ strictIsoToEquiv (invIso toProdIso) (∀ b (fiber ffun b fiber gfun b) × (fiber gfun b fiber ffun b)) ≃⟨ equivΠCod _ isEquivPropBiimpl→Equiv (isEmbedding→hasPropFibers isEmbF _) (isEmbedding→hasPropFibers isEmbG _)) @@ -466,7 +466,7 @@ equiv : x y isEquiv (apmap x y) equiv x y = ((invEquiv ΣPathP≃PathPΣ) - ∙ₑ (≃-× ((cong f) , (embf (fst x) (fst y))) + ∙ₑ (≃-× ((cong f) , (embf (fst x) (fst y))) ((cong g) , (embg (snd x) (snd y)))) ∙ₑ ΣPathP≃PathPΣ) .snd @@ -474,5 +474,5 @@ emb x y = equiv x y EmbeddingΣProp : {A : Type } {B : A Type ℓ'} (∀ a isProp (B a)) Σ A B A -EmbeddingΣProp f = fst , _ _ isEmbeddingFstΣProp f) +EmbeddingΣProp f = fst , _ _ isEmbeddingFstΣProp f) \ No newline at end of file diff --git a/Cubical.Functions.Image.html b/Cubical.Functions.Image.html index 76bf67838f..fc3b691e00 100644 --- a/Cubical.Functions.Image.html +++ b/Cubical.Functions.Image.html @@ -36,7 +36,7 @@ λ y isOfHLevelRetractFromIso 1 (ϕ y) isPropPropTrunc where ϕ : (y : B) Iso _ _ - ϕ y = invIso (fiberProjIso B isInImage y) + ϕ y = invIso (fiberProjIso B isInImage y) restrictToImage : A Image restrictToImage x = (f x) , x , refl ∣₁ @@ -45,7 +45,7 @@ isSurjectionImageRestriction (y , y∈im) = PT.rec isPropPropTrunc (x , fx≡y) - x , Σ≡Prop isPropIsInImage fx≡y ∣₁) + x , Σ≡Prop isPropIsInImage fx≡y ∣₁) y∈im imageFactorization : fst imageInclusion restrictToImage f diff --git a/Cubical.HITs.Cost.Base.html b/Cubical.HITs.Cost.Base.html index b08b800b03..a4be4c9bfa 100644 --- a/Cubical.HITs.Cost.Base.html +++ b/Cubical.HITs.Cost.Base.html @@ -18,7 +18,7 @@ -- To compare two elements of Cost A we only need to look at the first parts Cost≡ : (x y : Cost A) x .fst y .fst x y -Cost≡ _ _ = Σ≡Prop λ _ squash₁ +Cost≡ _ _ = Σ≡Prop λ _ squash₁ -- To make it easier to program with Cost A we prove that it forms a -- monad which counts the number of calls to >>=. We could also turn diff --git a/Cubical.HITs.CumulativeHierarchy.Properties.html b/Cubical.HITs.CumulativeHierarchy.Properties.html index 47d7cf4a71..0534453e33 100644 --- a/Cubical.HITs.CumulativeHierarchy.Properties.html +++ b/Cubical.HITs.CumulativeHierarchy.Properties.html @@ -123,7 +123,7 @@ repFiber f b = Σ[ a _ ] f a b repFiber≃fiber : (f : X V ) (b : V ) repFiber f b fiber f b -repFiber≃fiber f b = Σ-cong-equiv (idEquiv _) _ identityPrinciple) +repFiber≃fiber f b = Σ-cong-equiv (idEquiv _) _ identityPrinciple) -- projecting out a representing type together with the embedding MonicPresentation : (a : V ) Type (ℓ-suc ) @@ -198,9 +198,9 @@ V-fixpoint : V MonicDataF (V ) V-fixpoint {} = - V ≃⟨ invEquiv (Σ-contractSnd λ a inhProp→isContr (V-repr a) (isPropMonicPresentation a)) + V ≃⟨ invEquiv (Σ-contractSnd λ a inhProp→isContr (V-repr a) (isPropMonicPresentation a)) (Σ[ a V ] MonicPresentation a) ≃⟨ boringswap - (Σ[ (X , ix , _) MonicDataF (V ) ] singl (sett X ix)) ≃⟨ Σ-contractSnd _ isContrSingl _) + (Σ[ (X , ix , _) MonicDataF (V ) ] singl (sett X ix)) ≃⟨ Σ-contractSnd _ isContrSingl _) MonicDataF (V ) where boringswap : (Σ[ a V ] MonicPresentation a) (Σ[ (X , ix , _) MonicDataF (V ) ] singl (sett X ix)) boringswap = isoToEquiv (iso @@ -274,7 +274,7 @@ from : a Σ[ v V _ ] v ∈ₛ a from ⟪a⟫ = a ⟫↪ ⟪a⟫ , ∈ₛ⟪ a ⟫↪ ⟪a⟫ retr : retract into from - retr s = Σ≡Prop v (v ∈ₛ a) .snd) (equivFun identityPrinciple (s .snd .snd)) + retr s = Σ≡Prop v (v ∈ₛ a) .snd) (equivFun identityPrinciple (s .snd .snd)) -- subset relation, once in level (ℓ-suc ℓ) and once in ℓ _⊆_ : (a b : V ) hProp (ℓ-suc ) @@ -288,7 +288,7 @@ ⊆⇔⊆ₛ : (a b : V ) a b a ⊆ₛ b ⊆⇔⊆ₛ a b = - s invEq curryEquiv s invEq (presentation a)) + s invEq curryEquiv s invEq (presentation a)) , s x xa subst x x ∈ₛ b ) (equivFun identityPrinciple (xa .snd)) (s (xa .fst))) -- the homotopy definition of equality as an hProp, we know this is equivalent to bisimulation diff --git a/Cubical.HITs.FreeGroup.Properties.html b/Cubical.HITs.FreeGroup.Properties.html index 1102262be6..a353eb8a81 100644 --- a/Cubical.HITs.FreeGroup.Properties.html +++ b/Cubical.HITs.FreeGroup.Properties.html @@ -22,182 +22,211 @@ open import Cubical.Foundations.Function open import Cubical.Foundations.Equiv open import Cubical.Foundations.Equiv.BiInvertible - -open import Cubical.Algebra.Group -open import Cubical.Algebra.Group.Morphisms -open import Cubical.Algebra.Group.MorphismProperties -open import Cubical.Algebra.Monoid.Base -open import Cubical.Algebra.Semigroup.Base - -private - variable - ℓ' : Level - A : Type - -freeGroupIsSet : isSet (FreeGroup A) -freeGroupIsSet = trunc - -freeGroupIsSemiGroup : IsSemigroup {A = FreeGroup A} _·_ -freeGroupIsSemiGroup = issemigroup freeGroupIsSet assoc - -freeGroupIsMonoid : IsMonoid {A = FreeGroup A} ε _·_ -freeGroupIsMonoid = ismonoid freeGroupIsSemiGroup x sym (idr x)) x sym (idl x)) - -freeGroupIsGroup : IsGroup {G = FreeGroup A} ε _·_ inv -freeGroupIsGroup = isgroup freeGroupIsMonoid invr invl - -freeGroupGroupStr : GroupStr (FreeGroup A) -freeGroupGroupStr = groupstr ε _·_ inv freeGroupIsGroup - --- FreeGroup is indeed a group -freeGroupGroup : Type Group -freeGroupGroup A = FreeGroup A , freeGroupGroupStr - --- The recursion principle for the FreeGroup -rec : {Group : Group ℓ'} (A Group .fst) GroupHom (freeGroupGroup A) Group -rec {Group = G , groupstr 1g _·g_ invg (isgroup (ismonoid isSemigroupg ·gIdR ·gIdL) ·gInvR ·gInvL)} f = f' , isHom - where - f' : FreeGroup _ G - f' (η a) = f a - f' (g1 · g2) = (f' g1) ·g (f' g2) - f' ε = 1g - f' (inv g) = invg (f' g) - f' (assoc g1 g2 g3 i) = IsSemigroup.·Assoc isSemigroupg (f' g1) (f' g2) (f' g3) i - f' (idr g i) = sym (·gIdR (f' g)) i - f' (idl g i) = sym (·gIdL (f' g)) i - f' (invr g i) = ·gInvR (f' g) i - f' (invl g i) = ·gInvL (f' g) i - f' (trunc g1 g2 p q i i₁) = IsSemigroup.is-set isSemigroupg (f' g1) (f' g2) (cong f' p) (cong f' q) i i₁ - - isHom : IsGroupHom freeGroupGroupStr f' _ - IsGroupHom.pres· isHom = λ g1 g2 refl - IsGroupHom.pres1 isHom = refl - IsGroupHom.presinv isHom = λ g refl - --- The induction principle for the FreeGroup for hProps -elimProp : {B : FreeGroup A Type ℓ'} - ((x : FreeGroup A) isProp (B x)) - ((a : A) B (η a)) - ((g1 g2 : FreeGroup A) B g1 B g2 B (g1 · g2)) - (B ε) - ((g : FreeGroup A) B g B (inv g)) - (x : FreeGroup A) - B x -elimProp {B = B} Bprop η-ind ·-ind ε-ind inv-ind = induction where - induction : g B g - induction (η a) = η-ind a - induction (g1 · g2) = ·-ind g1 g2 (induction g1) (induction g2) - induction ε = ε-ind - induction (inv g) = inv-ind g (induction g) - induction (assoc g1 g2 g3 i) = path i where - p1 : B g1 - p1 = induction g1 - p2 : B g2 - p2 = induction g2 - p3 : B g3 - p3 = induction g3 - path : PathP i B (assoc g1 g2 g3 i)) (·-ind g1 (g2 · g3) p1 (·-ind g2 g3 p2 p3)) - (·-ind (g1 · g2) g3 (·-ind g1 g2 p1 p2) p3) - path = isProp→PathP i Bprop (assoc g1 g2 g3 i)) (·-ind g1 (g2 · g3) p1 (·-ind g2 g3 p2 p3)) - (·-ind (g1 · g2) g3 (·-ind g1 g2 p1 p2) p3) - induction (idr g i) = path i where - p : B g - p = induction g - : B ε - = induction ε - path : PathP i B (idr g i)) p (·-ind g ε p ) - path = isProp→PathP i Bprop (idr g i)) p (·-ind g ε p ) - induction (idl g i) = path i where - p : B g - p = induction g - : B ε - = induction ε - path : PathP i B (idl g i)) p (·-ind ε g p) - path = isProp→PathP i Bprop (idl g i)) p (·-ind ε g p) - induction (invr g i) = path i where - p : B g - p = induction g - pinv : B (inv g) - pinv = inv-ind g p - : B ε - = induction ε - path : PathP i B (invr g i)) (·-ind g (inv g) p pinv) - path = isProp→PathP i Bprop (invr g i)) (·-ind g (inv g) p pinv) - induction (invl g i) = path i where - p : B g - p = induction g - pinv : B (inv g) - pinv = inv-ind g p - : B ε - = induction ε - path : PathP i B (invl g i)) (·-ind (inv g) g pinv p) - path = isProp→PathP i Bprop (invl g i)) (·-ind (inv g) g pinv p) - induction (trunc g1 g2 q1 q2 i i₁) = square i i₁ where - p1 : B g1 - p1 = induction g1 - p2 : B g2 - p2 = induction g2 - dq1 : PathP i B (q1 i)) p1 p2 - dq1 = cong induction q1 - dq2 : PathP i B (q2 i)) p1 p2 - dq2 = cong induction q2 - square : SquareP i i₁ B (trunc g1 g2 q1 q2 i i₁)) - {a₀₀ = p1} {a₀₁ = p2} dq1 - {a₁₀ = p1} {a₁₁ = p2} dq2 - (cong induction (refl {x = g1})) (cong induction (refl {x = g2})) - square = isProp→SquareP i i₁ Bprop (trunc g1 g2 q1 q2 i i₁)) - (cong induction (refl {x = g1})) (cong induction (refl {x = g2})) - dq1 dq2 - --- Two group homomorphisms from FreeGroup to G are the same if they agree on every a : A -freeGroupHom≡ : {Group : Group ℓ'}{f g : GroupHom (freeGroupGroup A) Group} - (∀ a (fst f) (η a) (fst g) (η a)) f g -freeGroupHom≡ {Group = G , (groupstr 1g _·g_ invg isGrp)} {f} {g} eqOnA = GroupHom≡ (funExt pointwise) where - open IsGroup isGrp using (is-set) - B : x Type _ - B x = (fst f) x (fst g) x - Bprop : x isProp (B x) - Bprop x = is-set ((fst f) x) ((fst g) x) - η-ind : a B (η a) - η-ind = eqOnA - ·-ind : g1 g2 B g1 B g2 B (g1 · g2) - ·-ind g1 g2 ind1 ind2 = - (fst f) (g1 · g2) - ≡⟨ IsGroupHom.pres· (f .snd) g1 g2 - ((fst f) g1) ·g ((fst f) g2) - ≡⟨ cong x x ·g ((fst f) g2)) ind1 - ((fst g) g1) ·g ((fst f) g2) - ≡⟨ cong x ((fst g) g1) ·g x) ind2 - ((fst g) g1) ·g ((fst g) g2) - ≡⟨ sym (IsGroupHom.pres· (g .snd) g1 g2) - (fst g) (g1 · g2) - ε-ind : B ε - ε-ind = - (fst f) ε - ≡⟨ IsGroupHom.pres1 (f .snd) - 1g - ≡⟨ sym (IsGroupHom.pres1 (g .snd)) - (fst g) ε - inv-ind : x B x B (inv x) - inv-ind x ind = - (fst f) (inv x) - ≡⟨ IsGroupHom.presinv (f .snd) x - invg ((fst f) x) - ≡⟨ cong invg ind - invg ((fst g) x) - ≡⟨ sym (IsGroupHom.presinv (g .snd) x) - (fst g) (inv x) - pointwise : x (fst f) x (fst g) x - pointwise = elimProp Bprop η-ind ·-ind ε-ind inv-ind - --- The type of Group Homomorphisms from the FreeGroup A into G --- is equivalent to the type of functions from A into G .fst -A→Group≃GroupHom : {Group : Group ℓ'} (A Group .fst) GroupHom (freeGroupGroup A) Group -A→Group≃GroupHom {Group = Group} = biInvEquiv→Equiv-right biInv where - biInv : BiInvEquiv (A Group .fst) (GroupHom (freeGroupGroup A) Group) - BiInvEquiv.fun biInv = rec - BiInvEquiv.invr biInv (hom , _) a = hom (η a) - BiInvEquiv.invr-rightInv biInv hom = freeGroupHom≡ a refl) - BiInvEquiv.invl biInv (hom , _) a = hom (η a) - BiInvEquiv.invl-leftInv biInv f = funExt a refl) +open import Cubical.Foundations.Isomorphism + +open import Cubical.Algebra.Group +open import Cubical.Algebra.Group.Morphisms +open import Cubical.Algebra.Group.MorphismProperties +open import Cubical.Algebra.Monoid.Base +open import Cubical.Algebra.Semigroup.Base + +open import Cubical.Categories.Functor.Base +open import Cubical.Categories.Adjoint +open import Cubical.Categories.Instances.Sets +open import Cubical.Categories.Instances.Groups + +import Cubical.Data.Int as +open import Cubical.Algebra.Group.Instances.Int + +private + variable + ℓ' : Level + A : Type + +freeGroupIsSet : isSet (FreeGroup A) +freeGroupIsSet = trunc + +freeGroupIsSemiGroup : IsSemigroup {A = FreeGroup A} _·_ +freeGroupIsSemiGroup = issemigroup freeGroupIsSet assoc + +freeGroupIsMonoid : IsMonoid {A = FreeGroup A} ε _·_ +freeGroupIsMonoid = ismonoid freeGroupIsSemiGroup x sym (idr x)) x sym (idl x)) + +freeGroupIsGroup : IsGroup {G = FreeGroup A} ε _·_ inv +freeGroupIsGroup = isgroup freeGroupIsMonoid invr invl + +freeGroupGroupStr : GroupStr (FreeGroup A) +freeGroupGroupStr = groupstr ε _·_ inv freeGroupIsGroup + +-- FreeGroup is indeed a group +freeGroupGroup : Type Group +freeGroupGroup A = FreeGroup A , freeGroupGroupStr + +-- The recursion principle for the FreeGroup +rec : {Group : Group ℓ'} (A Group .fst) GroupHom (freeGroupGroup A) Group +rec {Group = G , groupstr 1g _·g_ invg (isgroup (ismonoid isSemigroupg ·gIdR ·gIdL) ·gInvR ·gInvL)} f = f' , isHom + where + f' : FreeGroup _ G + f' (η a) = f a + f' (g1 · g2) = (f' g1) ·g (f' g2) + f' ε = 1g + f' (inv g) = invg (f' g) + f' (assoc g1 g2 g3 i) = IsSemigroup.·Assoc isSemigroupg (f' g1) (f' g2) (f' g3) i + f' (idr g i) = sym (·gIdR (f' g)) i + f' (idl g i) = sym (·gIdL (f' g)) i + f' (invr g i) = ·gInvR (f' g) i + f' (invl g i) = ·gInvL (f' g) i + f' (trunc g1 g2 p q i i₁) = IsSemigroup.is-set isSemigroupg (f' g1) (f' g2) (cong f' p) (cong f' q) i i₁ + + isHom : IsGroupHom freeGroupGroupStr f' _ + IsGroupHom.pres· isHom = λ g1 g2 refl + IsGroupHom.pres1 isHom = refl + IsGroupHom.presinv isHom = λ g refl + +-- The induction principle for the FreeGroup for hProps +elimProp : {B : FreeGroup A Type ℓ'} + ((x : FreeGroup A) isProp (B x)) + ((a : A) B (η a)) + ((g1 g2 : FreeGroup A) B g1 B g2 B (g1 · g2)) + (B ε) + ((g : FreeGroup A) B g B (inv g)) + (x : FreeGroup A) + B x +elimProp {B = B} Bprop η-ind ·-ind ε-ind inv-ind = induction where + induction : g B g + induction (η a) = η-ind a + induction (g1 · g2) = ·-ind g1 g2 (induction g1) (induction g2) + induction ε = ε-ind + induction (inv g) = inv-ind g (induction g) + induction (assoc g1 g2 g3 i) = path i where + p1 : B g1 + p1 = induction g1 + p2 : B g2 + p2 = induction g2 + p3 : B g3 + p3 = induction g3 + path : PathP i B (assoc g1 g2 g3 i)) (·-ind g1 (g2 · g3) p1 (·-ind g2 g3 p2 p3)) + (·-ind (g1 · g2) g3 (·-ind g1 g2 p1 p2) p3) + path = isProp→PathP i Bprop (assoc g1 g2 g3 i)) (·-ind g1 (g2 · g3) p1 (·-ind g2 g3 p2 p3)) + (·-ind (g1 · g2) g3 (·-ind g1 g2 p1 p2) p3) + induction (idr g i) = path i where + p : B g + p = induction g + : B ε + = induction ε + path : PathP i B (idr g i)) p (·-ind g ε p ) + path = isProp→PathP i Bprop (idr g i)) p (·-ind g ε p ) + induction (idl g i) = path i where + p : B g + p = induction g + : B ε + = induction ε + path : PathP i B (idl g i)) p (·-ind ε g p) + path = isProp→PathP i Bprop (idl g i)) p (·-ind ε g p) + induction (invr g i) = path i where + p : B g + p = induction g + pinv : B (inv g) + pinv = inv-ind g p + : B ε + = induction ε + path : PathP i B (invr g i)) (·-ind g (inv g) p pinv) + path = isProp→PathP i Bprop (invr g i)) (·-ind g (inv g) p pinv) + induction (invl g i) = path i where + p : B g + p = induction g + pinv : B (inv g) + pinv = inv-ind g p + : B ε + = induction ε + path : PathP i B (invl g i)) (·-ind (inv g) g pinv p) + path = isProp→PathP i Bprop (invl g i)) (·-ind (inv g) g pinv p) + induction (trunc g1 g2 q1 q2 i i₁) = square i i₁ where + p1 : B g1 + p1 = induction g1 + p2 : B g2 + p2 = induction g2 + dq1 : PathP i B (q1 i)) p1 p2 + dq1 = cong induction q1 + dq2 : PathP i B (q2 i)) p1 p2 + dq2 = cong induction q2 + square : SquareP i i₁ B (trunc g1 g2 q1 q2 i i₁)) + {a₀₀ = p1} {a₀₁ = p2} dq1 + {a₁₀ = p1} {a₁₁ = p2} dq2 + (cong induction (refl {x = g1})) (cong induction (refl {x = g2})) + square = isProp→SquareP i i₁ Bprop (trunc g1 g2 q1 q2 i i₁)) + (cong induction (refl {x = g1})) (cong induction (refl {x = g2})) + dq1 dq2 + +-- Two group homomorphisms from FreeGroup to G are the same if they agree on every a : A +freeGroupHom≡ : {Group : Group ℓ'}{f g : GroupHom (freeGroupGroup A) Group} + (∀ a (fst f) (η a) (fst g) (η a)) f g +freeGroupHom≡ {Group = G , (groupstr 1g _·g_ invg isGrp)} {f} {g} eqOnA = GroupHom≡ (funExt pointwise) where + open IsGroup isGrp using (is-set) + B : x Type _ + B x = (fst f) x (fst g) x + Bprop : x isProp (B x) + Bprop x = is-set ((fst f) x) ((fst g) x) + η-ind : a B (η a) + η-ind = eqOnA + ·-ind : g1 g2 B g1 B g2 B (g1 · g2) + ·-ind g1 g2 ind1 ind2 = + (fst f) (g1 · g2) + ≡⟨ IsGroupHom.pres· (f .snd) g1 g2 + ((fst f) g1) ·g ((fst f) g2) + ≡⟨ cong x x ·g ((fst f) g2)) ind1 + ((fst g) g1) ·g ((fst f) g2) + ≡⟨ cong x ((fst g) g1) ·g x) ind2 + ((fst g) g1) ·g ((fst g) g2) + ≡⟨ sym (IsGroupHom.pres· (g .snd) g1 g2) + (fst g) (g1 · g2) + ε-ind : B ε + ε-ind = + (fst f) ε + ≡⟨ IsGroupHom.pres1 (f .snd) + 1g + ≡⟨ sym (IsGroupHom.pres1 (g .snd)) + (fst g) ε + inv-ind : x B x B (inv x) + inv-ind x ind = + (fst f) (inv x) + ≡⟨ IsGroupHom.presinv (f .snd) x + invg ((fst f) x) + ≡⟨ cong invg ind + invg ((fst g) x) + ≡⟨ sym (IsGroupHom.presinv (g .snd) x) + (fst g) (inv x) + pointwise : x (fst f) x (fst g) x + pointwise = elimProp Bprop η-ind ·-ind ε-ind inv-ind + +-- The type of Group Homomorphisms from the FreeGroup A into G +-- is equivalent to the type of functions from A into G .fst +A→Group≃GroupHom : {Group : Group ℓ'} (A Group .fst) GroupHom (freeGroupGroup A) Group +A→Group≃GroupHom {Group = Group} = biInvEquiv→Equiv-right biInv where + biInv : BiInvEquiv (A Group .fst) (GroupHom (freeGroupGroup A) Group) + BiInvEquiv.fun biInv = rec + BiInvEquiv.invr biInv (hom , _) a = hom (η a) + BiInvEquiv.invr-rightInv biInv hom = freeGroupHom≡ a refl) + BiInvEquiv.invl biInv (hom , _) a = hom (η a) + BiInvEquiv.invl-leftInv biInv f = funExt a refl) + +freeGroupFunctor : Functor (SET ) (GroupCategory {}) +Functor.F-ob freeGroupFunctor (A , _) = freeGroupGroup A +Functor.F-hom freeGroupFunctor f = rec (η f) +Functor.F-id freeGroupFunctor = + freeGroupHom≡ λ _ refl +Functor.F-seq freeGroupFunctor _ _ = + freeGroupHom≡ λ _ refl + +freeGroupFunctor⊣Forget : freeGroupFunctor NaturalBijection.⊣ (Forget {}) +NaturalBijection._⊣_.adjIso freeGroupFunctor⊣Forget = + invIso (equivToIso A→Group≃GroupHom) +NaturalBijection._⊣_.adjNatInD freeGroupFunctor⊣Forget _ _ = refl +NaturalBijection._⊣_.adjNatInC freeGroupFunctor⊣Forget _ _ = freeGroupHom≡ λ _ refl + +windingHom : GroupHom (freeGroupGroup A) ℤGroup +windingHom = rec λ _ ℤ.pos 1 + +winding : FreeGroup A ℤ.ℤ +winding = fst windingHom \ No newline at end of file diff --git a/Cubical.HITs.FreeGroupoid.Properties.html b/Cubical.HITs.FreeGroupoid.Properties.html index 31bff6578f..72e12c1578 100644 --- a/Cubical.HITs.FreeGroupoid.Properties.html +++ b/Cubical.HITs.FreeGroupoid.Properties.html @@ -14,7 +14,7 @@ module Cubical.HITs.FreeGroupoid.Properties where open import Cubical.HITs.FreeGroupoid.Base -open import Cubical.HITs.FreeGroup renaming (elimProp to freeGroupElimProp) +open import Cubical.HITs.FreeGroup renaming (elimProp to freeGroupElimProp) open import Cubical.Foundations.Prelude open import Cubical.Foundations.Equiv @@ -132,13 +132,13 @@ ∥freeGroupoid∥₂Group A = FreeGroupoid A ∥₂ , ∥freeGroupoid∥₂GroupStr -forgetfulHom : GroupHom (freeGroupGroup A) (∥freeGroupoid∥₂Group A) -forgetfulHom = rec a η a ∣₂) +forgetfulHom : GroupHom (freeGroupGroup A) (∥freeGroupoid∥₂Group A) +forgetfulHom = rec a η a ∣₂) -forgetfulHom⁻¹ : GroupHom (∥freeGroupoid∥₂Group A) (freeGroupGroup A) +forgetfulHom⁻¹ : GroupHom (∥freeGroupoid∥₂Group A) (freeGroupGroup A) forgetfulHom⁻¹ = invf , isHom where invf : FreeGroupoid A ∥₂ FreeGroup A - invf = recTrunc freeGroupIsSet aux where + invf = recTrunc freeGroupIsSet aux where aux : FreeGroupoid A FreeGroup A aux (η a) = η a aux (g1 · g2) = (aux g1) · (aux g2) @@ -149,12 +149,12 @@ aux (idl g i) = idl (aux g) i aux (invr g i) = invr (aux g) i aux (invl g i) = invl (aux g) i - isHom : IsGroupHom {A = FreeGroupoid A ∥₂} {B = FreeGroup A} ∥freeGroupoid∥₂GroupStr invf freeGroupGroupStr - IsGroupHom.pres· isHom x y = elim2 x y isProp→isSet (freeGroupIsSet (invf (x ∣·∣₂ y)) ((invf x) · (invf y)))) ind x y where + isHom : IsGroupHom {A = FreeGroupoid A ∥₂} {B = FreeGroup A} ∥freeGroupoid∥₂GroupStr invf freeGroupGroupStr + IsGroupHom.pres· isHom x y = elim2 x y isProp→isSet (freeGroupIsSet (invf (x ∣·∣₂ y)) ((invf x) · (invf y)))) ind x y where ind : g1 g2 invf ( g1 ∣₂ ∣·∣₂ g2 ∣₂) (invf g1 ∣₂) · (invf g2 ∣₂) ind g1 g2 = refl IsGroupHom.pres1 isHom = refl - IsGroupHom.presinv isHom x = elim x isProp→isSet (freeGroupIsSet (invf (∣inv∣₂ x)) (inv (invf x)))) ind x where + IsGroupHom.presinv isHom x = elim x isProp→isSet (freeGroupIsSet (invf (∣inv∣₂ x)) (inv (invf x)))) ind x where ind : g invf (∣inv∣₂ g ∣₂) inv (invf g ∣₂) ind g = refl @@ -202,7 +202,7 @@ leftInv : (g : FreeGroup A) invf (f g) g leftInv g = freeGroupElimProp Bprop η-ind ·-ind ε-ind inv-ind g where Bprop : g isProp (invf (f g) g) - Bprop g = freeGroupIsSet (invf (f g)) g + Bprop g = freeGroupIsSet (invf (f g)) g η-ind : a invf (f (η a)) (η a) η-ind a = refl ·-ind : g1 g2 invf (f g1) g1 invf (f g2) g2 invf (f (g1 · g2)) g1 · g2 diff --git a/Cubical.HITs.James.Inductive.PushoutFormula.html b/Cubical.HITs.James.Inductive.PushoutFormula.html index 1a3c2353b4..a45345f0e5 100644 --- a/Cubical.HITs.James.Inductive.PushoutFormula.html +++ b/Cubical.HITs.James.Inductive.PushoutFormula.html @@ -155,7 +155,7 @@ private left≃ : X × 𝕁ames 1 X × X - left≃ = ≃-× (idEquiv _) 𝕁ames1≃ + left≃ = ≃-× (idEquiv _) 𝕁ames1≃ lComm : (x : 𝕁amesPush 0) left≃ .fst (leftMap x) ⋁↪ (P0→X⋁X x) lComm (inl (x , [])) = refl diff --git a/Cubical.HITs.James.LoopSuspEquiv.html b/Cubical.HITs.James.LoopSuspEquiv.html index 39d4723222..6c5660b87d 100644 --- a/Cubical.HITs.James.LoopSuspEquiv.html +++ b/Cubical.HITs.James.LoopSuspEquiv.html @@ -117,7 +117,7 @@ open FlatteningLemma _ tt) _ tt) tt James) tt James) x _ , isEquiv∷ x) Total≃ : Pushout Σf Σg Total - Total≃ = pushoutEquiv _ _ _ _ (idEquiv _) (ΣUnit _) (ΣUnit _) refl refl + Total≃ = pushoutEquiv _ _ _ _ (idEquiv _) (ΣUnit _) (ΣUnit _) refl refl PushoutSuspCode : (x : PushoutSusp X) E x Code (PushoutSusp→Susp x) PushoutSuspCode (inl tt) = idEquiv _ @@ -125,7 +125,7 @@ PushoutSuspCode (push x i) = idEquiv _ ΣCode≃' : _ Σ _ Code - ΣCode≃' = Σ-cong-equiv PushoutSusp≃Susp PushoutSuspCode + ΣCode≃' = Σ-cong-equiv PushoutSusp≃Susp PushoutSuspCode ΣCode≃ : Total Σ _ Code ΣCode≃ = compEquiv (invEquiv Total≃) (compEquiv (invEquiv flatten) ΣCode≃') diff --git a/Cubical.HITs.PropositionalTruncation.Properties.html b/Cubical.HITs.PropositionalTruncation.Properties.html index 1c1d301103..f10c3bf48b 100644 --- a/Cubical.HITs.PropositionalTruncation.Properties.html +++ b/Cubical.HITs.PropositionalTruncation.Properties.html @@ -216,7 +216,7 @@ eqv : (g : Σ (A B) 2-Constant) fi fib g fi eqv g (f , p) = - Σ≡Prop f isOfHLevelΣ 2 Fset Kset _ _) + Σ≡Prop f isOfHLevelΣ 2 Fset Kset _ _) (cong (uncurry rec→Set) (sym p) setRecLemma f) trunc→Set≃ : ( A ∥₁ B) (Σ (A B) 2-Constant) diff --git a/Cubical.HITs.Pushout.KrausVonRaumer.html b/Cubical.HITs.Pushout.KrausVonRaumer.html index 659bdbbf66..8777d63538 100644 --- a/Cubical.HITs.Pushout.KrausVonRaumer.html +++ b/Cubical.HITs.Pushout.KrausVonRaumer.html @@ -149,7 +149,7 @@ subst (P (f a) p ≃_) (cong w fiber (cong ⊔.inr) (p w)) (lUnit (push a) ⁻¹)) - (Σ-contractFst (inhProp→isContr (a , refl) (isEmbedding→hasPropFibers fEmb (f a))))) + (Σ-contractFst (inhProp→isContr (a , refl) (isEmbedding→hasPropFibers fEmb (f a))))) bwd : c (t : ⊔.inr c₀ ⊔.inr c) fiber (cong ⊔.inr) t bwd = Bwd.elimR diff --git a/Cubical.HITs.RPn.Base.html b/Cubical.HITs.RPn.Base.html index 0a2d4d89cf..1ec9b74e4b 100644 --- a/Cubical.HITs.RPn.Base.html +++ b/Cubical.HITs.RPn.Base.html @@ -70,8 +70,8 @@ isContrBoolPointedEquiv : x isContr ((Bool , false) ≃[ PointedEquivStr ] (Bool , x)) fst (isContrBoolPointedEquiv x) = ((λ y x y) , isEquiv-⊕ x) , ⊕-comm x false snd (isContrBoolPointedEquiv x) (e , p) - = Σ≡Prop e isSetBool (equivFun e false) x) - (Σ≡Prop isPropIsEquiv (funExt λ { false ⊕-comm x false sym p + = Σ≡Prop e isSetBool (equivFun e false) x) + (Σ≡Prop isPropIsEquiv (funExt λ { false ⊕-comm x false sym p ; true ⊕-comm x true sym q })) where q : e .fst true not x q with dichotomyBool (invEq e (not x)) @@ -235,7 +235,7 @@ where open ⊕* (cov⁻¹ (-1+ n) x) i : Total (cov⁻¹ (ℕ→ℕ₋₁ n)) Pushout Σf Σg - i = (Σ[ x RP (ℕ→ℕ₋₁ n) ] typ (cov⁻¹ (ℕ→ℕ₋₁ n) x)) ≃⟨ Σ-cong-equiv-snd cov⁻¹≃E + i = (Σ[ x RP (ℕ→ℕ₋₁ n) ] typ (cov⁻¹ (ℕ→ℕ₋₁ n) x)) ≃⟨ Σ-cong-equiv-snd cov⁻¹≃E (Σ[ x RP (ℕ→ℕ₋₁ n) ] E x) ≃⟨ flatten Pushout Σf Σg {- @@ -261,9 +261,9 @@ -} u : {n} (Σ[ x Total (cov⁻¹ n) ] typ (cov⁻¹ n (fst x))) (Total (cov⁻¹ n) × Bool) u {n} = Σ[ x Total (cov⁻¹ n) ] typ (cov⁻¹ n (fst x)) ≃⟨ Σ-assoc-≃ - Σ[ x RP n ] (typ (cov⁻¹ n x)) × (typ (cov⁻¹ n x)) ≃⟨ Σ-cong-equiv-snd x Σ-swap-≃) - Σ[ x RP n ] (typ (cov⁻¹ n x)) × (typ (cov⁻¹ n x)) ≃⟨ Σ-cong-equiv-snd - x Σ-cong-equiv-snd + Σ[ x RP n ] (typ (cov⁻¹ n x)) × (typ (cov⁻¹ n x)) ≃⟨ Σ-cong-equiv-snd x Σ-swap-≃) + Σ[ x RP n ] (typ (cov⁻¹ n x)) × (typ (cov⁻¹ n x)) ≃⟨ Σ-cong-equiv-snd + x Σ-cong-equiv-snd y ⊕*.Equivˡ (cov⁻¹ n x) y)) Σ[ x RP n ] (typ (cov⁻¹ n x)) × Bool ≃⟨ invEquiv Σ-assoc-≃ Total (cov⁻¹ n) × Bool @@ -272,7 +272,7 @@ H x = refl nat : 3-span-equiv (3span Σf Σg) (3span {A2 = Total (cov⁻¹ (-1+ n)) × Bool} fst snd) - nat = record { e0 = idEquiv _ ; e2 = u ; e4 = ΣUnit _ + nat = record { e0 = idEquiv _ ; e2 = u ; e4 = ΣUnit _ ; H1 = λ x cong fst (H x) ; H3 = λ x cong snd (H x) } diff --git a/Cubical.HITs.SetQuotients.Properties.html b/Cubical.HITs.SetQuotients.Properties.html index 1f20ac4f2e..21f8edd212 100644 --- a/Cubical.HITs.SetQuotients.Properties.html +++ b/Cubical.HITs.SetQuotients.Properties.html @@ -233,7 +233,7 @@ hright : a b b' S b b' (a b) (a b') hright a _ _ r = h _ _ _ _ (isReflR a) r Iso.rightInv (setQuotUniversal2Iso Bset isReflR isReflS) (_∗_ , h) = - Σ≡Prop _ isPropΠ4 λ _ _ _ _ isPropΠ2 λ _ _ Bset _ _) refl + Σ≡Prop _ isPropΠ4 λ _ _ _ _ isPropΠ2 λ _ _ Bset _ _) refl Iso.leftInv (setQuotUniversal2Iso Bset isReflR isReflS) _∗/_ = funExt₂ (elimProp2 _ _ Bset _ _) λ _ _ refl) @@ -278,7 +278,7 @@ rec isSetHProp c (R a c , Rprop a c)) c d cd - Σ≡Prop _ isPropIsProp) + Σ≡Prop _ isPropIsProp) (hPropExt (Rprop a c) (Rprop a d) ac R/trans _ _ _ ac cd) ad R/trans _ _ _ ad (R/sym _ _ cd)))) diff --git a/Cubical.HITs.SetTruncation.Fibers.html b/Cubical.HITs.SetTruncation.Fibers.html index 19460f2d44..e1ebaf1a5d 100644 --- a/Cubical.HITs.SetTruncation.Fibers.html +++ b/Cubical.HITs.SetTruncation.Fibers.html @@ -102,7 +102,7 @@ fiber∥∥₂→∥fiber∥₂/R→fiber∥∥₂ : (x : fiber ∥f∥₂ y ∣₂) ∥fiber∥₂/R→fiber∥∥₂ (fiber∥∥₂→∥fiber∥₂/R x) x fiber∥∥₂→∥fiber∥₂/R→fiber∥∥₂ x = - Σ≡Prop + Σ≡Prop _ squash₂ _ _) (∥fiber∥₂/R→fiber∥∥₂→fst (fiber∥∥₂→∥fiber∥₂/R x) fiber∥∥₂→∥fiber∥₂/R→proj x) diff --git a/Cubical.HITs.SmashProduct.Base.html b/Cubical.HITs.SmashProduct.Base.html index 02ba2f783f..0928bc7c25 100644 --- a/Cubical.HITs.SmashProduct.Base.html +++ b/Cubical.HITs.SmashProduct.Base.html @@ -120,9 +120,9 @@ Σ[ l ((x : fst A) f x (pt B) pt C) ] Σ[ r ((b : fst B) f (pt A) b pt C) ] l (pt A) r (pt B))) - is₂ = compIso is₁ (Σ-cong-iso-snd - λ f Σ-cong-iso-snd - λ l Σ-cong-iso-snd + is₂ = compIso is₁ (Σ-cong-iso-snd + λ f Σ-cong-iso-snd + λ l Σ-cong-iso-snd λ r pathToIso (PathP≡doubleCompPathʳ _ _ _ _ cong (l (snd A) ≡_) (sym (compPath≡compPath' (r (snd B)) refl) @@ -159,12 +159,12 @@ Iso (Σ _ B) (B (a , refl)) isContrIso a B = compIso (invIso - (Σ-cong-iso-fst (isContr→Iso isContrUnit (isContrSingl a)))) + (Σ-cong-iso-fst (isContr→Iso isContrUnit (isContrSingl a)))) lUnit×Iso iso₄ : Iso (isoToPath is₃ i1) (isoToPath is₂ i1) - iso₄ = Σ-cong-iso-snd λ f isContrIso (snd C) _ + iso₄ = Σ-cong-iso-snd λ f isContrIso (snd C) _ ⋀→∙Homogeneous≡ : isHomogeneous C {f g : (A ⋀∙ B) →∙ C} diff --git a/Cubical.Homotopy.BlakersMassey.html b/Cubical.Homotopy.BlakersMassey.html index a7eb12d975..34695aaf0a 100644 --- a/Cubical.Homotopy.BlakersMassey.html +++ b/Cubical.Homotopy.BlakersMassey.html @@ -709,18 +709,18 @@ (Σ[ a A ] ((Σ[ c C ] (g a c)) × (f a b))) shuffleFibIso₁ f g b = compIso (invIso Σ-assoc-Iso) - (compIso (Σ-cong-iso-fst Σ-swap-Iso) + (compIso (Σ-cong-iso-fst Σ-swap-Iso) (compIso - (Σ-cong-iso-snd y Σ-swap-Iso)) + (Σ-cong-iso-snd y Σ-swap-Iso)) (compIso Σ-assoc-Iso - (Σ-cong-iso-snd λ a invIso Σ-assoc-Iso)))) + (Σ-cong-iso-snd λ a invIso Σ-assoc-Iso)))) shuffleFibIso₂ : { ℓ' ℓ'' : Level} {A : Type } {B : Type ℓ'} {C : Type ℓ''} (f : A B) (g : A C) (x : _) Iso (Σ[ a A ] ((Σ[ c C ] (g a c)) × (f a x))) (fiber f x) - shuffleFibIso₂ f g x = Σ-cong-iso-snd - λ a compIso (Σ-cong-iso-fst + shuffleFibIso₂ f g x = Σ-cong-iso-snd + λ a compIso (Σ-cong-iso-fst (isContr→Iso (isContrSingl (g a)) isContrUnit)) lUnit×Iso @@ -747,8 +747,8 @@ C-con c = isConnectedRetractFromIso (suc m) (compIso - (compIso (Σ-cong-iso-snd - _ Σ-cong-iso-snd λ _ Σ-swap-Iso)) + (compIso (Σ-cong-iso-snd + _ Σ-cong-iso-snd λ _ Σ-swap-Iso)) (shuffleFibIso₁ g f c)) (shuffleFibIso₂ g f c)) (con-g c) @@ -780,7 +780,7 @@ TotalPathGen×Iso : Iso (Σ (B × C) PushoutGenPath×) (Σ (B × C) PushoutPath×) TotalPathGen×Iso = - Σ-cong-iso-snd λ x + Σ-cong-iso-snd λ x congIso (invIso (IsoPushoutPushoutGen f g)) Totalfib×Iso : Iso (Σ (B × C) fib×) A diff --git a/Cubical.Homotopy.Connected.html b/Cubical.Homotopy.Connected.html index 8288780f22..534ee77189 100644 --- a/Cubical.Homotopy.Connected.html +++ b/Cubical.Homotopy.Connected.html @@ -804,13 +804,13 @@ X≃X' a' = (Σ[ x P (inl a') .fst ] (b : B) PathP i P (push a' b i) .fst) x (k (inr b))) - ≃⟨ invEquiv (Σ-cong-equiv-fst (UnitToType≃ _)) + ≃⟨ invEquiv (Σ-cong-equiv-fst (UnitToType≃ _)) (Σ[ x' (Unit P (inl a') .fst) ] (b : B) PathP i P (push a' b i) .fst) (x' tt) (k (inr b))) - ≃⟨ Σ-cong-equiv-snd x' equivΠCod b pathToEquiv (PathP≡Path⁻ _ _ _))) + ≃⟨ Σ-cong-equiv-snd x' equivΠCod b pathToEquiv (PathP≡Path⁻ _ _ _))) (Σ[ x' (Unit P (inl a') .fst) ] (b : B) x' tt subst⁻ y P y .fst) (push a' b) (k (inr b))) - ≃⟨ Σ-cong-equiv-snd x' funExtEquiv) + ≃⟨ Σ-cong-equiv-snd x' funExtEquiv) (Σ[ x' (Unit P (inl a') .fst) ] (b : B) x' tt) (b : B) subst⁻ y P y .fst) (push a' b) (k (inr b)))) diff --git a/Cubical.Homotopy.EilenbergMacLane.CupProduct.html b/Cubical.Homotopy.EilenbergMacLane.CupProduct.html index c54767c434..fd87da4e53 100644 --- a/Cubical.Homotopy.EilenbergMacLane.CupProduct.html +++ b/Cubical.Homotopy.EilenbergMacLane.CupProduct.html @@ -134,7 +134,7 @@ where lem : compGroupHom (GroupEquiv→GroupHom ⨂assoc) TensorMult3Homₗ compGroupHom (inducedHom⨂ idGroupHom TensorMultHom) TensorMultHom - lem = Σ≡Prop _ isPropIsGroupHom _ _) + lem = Σ≡Prop _ isPropIsGroupHom _ _) (funExt (⊗elimProp _ is-set (snd G') _ _) a ⊗elimProp _ is-set (snd G') _ _) b c sym (·Assoc (snd G'') a b c)) @@ -195,7 +195,7 @@ (TensorMultHom {G' = CommRing→Ring G''}) TensorMultHom isTrivComm = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (⊗elimProp _ CommRingStr.is-set (snd G'') _ _) a b CommRingStr.·Comm (snd G'') b a) λ p q r s cong₂ _+G_ r s)) diff --git a/Cubical.Homotopy.EilenbergMacLane.GradedCommTensor.html b/Cubical.Homotopy.EilenbergMacLane.GradedCommTensor.html index e094eff623..895102e91b 100644 --- a/Cubical.Homotopy.EilenbergMacLane.GradedCommTensor.html +++ b/Cubical.Homotopy.EilenbergMacLane.GradedCommTensor.html @@ -461,7 +461,7 @@ h : Path (AbGroupHom (H' G') (G' H')) (GroupEquiv→GroupHom ⨂-comm) (GroupEquiv→GroupHom (invGroupEquiv ⨂-comm)) - h = Σ≡Prop _ isPropIsGroupHom _ _) refl + h = Σ≡Prop _ isPropIsGroupHom _ _) refl -- cong² comm⨂-EM commutes with wrap cong-cong-comm⨂-EM : (n : ) (p : fst (Ω (EM∙ (H' G') (suc (suc n))))) diff --git a/Cubical.Homotopy.EilenbergMacLane.Order2.html b/Cubical.Homotopy.EilenbergMacLane.Order2.html index 51f4cd98eb..3ea2180ed1 100644 --- a/Cubical.Homotopy.EilenbergMacLane.Order2.html +++ b/Cubical.Homotopy.EilenbergMacLane.Order2.html @@ -111,7 +111,7 @@ PathP i Path (EM G 1) embase (emloop g i) TypeOfHLevel 1) p (p sym p) , hLevelEM G 1 _ _ _ _) λ p (p sym p) , hLevelEM G 1 _ _ _ _ - main g = toPathP (funExt p Σ≡Prop _ isPropIsProp) + main g = toPathP (funExt p Σ≡Prop _ isPropIsProp) (funExt⁻ (fromPathP (main' g)) p))) symCode (suc n) = TR.elim _ isOfHLevelΠ (4 +ℕ n) diff --git a/Cubical.Homotopy.EilenbergMacLane.Properties.html b/Cubical.Homotopy.EilenbergMacLane.Properties.html index 6141954641..f208453970 100644 --- a/Cubical.Homotopy.EilenbergMacLane.Properties.html +++ b/Cubical.Homotopy.EilenbergMacLane.Properties.html @@ -133,7 +133,7 @@ CodesSet = EMrec (isOfHLevelTypeOfHLevel 2) (G , is-set) RE REComp where RE : (g : G) Path (hSet ) (G , is-set) (G , is-set) - RE g = Σ≡Prop X isPropIsOfHLevel {A = X} 2) (ua (rightEquiv g)) + RE g = Σ≡Prop X isPropIsOfHLevel {A = X} 2) (ua (rightEquiv g)) lemma₁ : (g h : G) Square (ua (rightEquiv g)) (ua (rightEquiv (g · h))) @@ -197,9 +197,9 @@ Path (TypeOfHLevel _ (3 + n)) (EM G (suc n) , hLevelEM G (suc n)) (EM G (suc n) , hLevelEM G (suc n)) - fib zero a = Σ≡Prop _ isPropIsOfHLevel 3) + fib zero a = Σ≡Prop _ isPropIsOfHLevel 3) (isoToPath (addIso 1 a)) - fib (suc n) a = Σ≡Prop _ isPropIsOfHLevel (4 + n)) + fib (suc n) a = Σ≡Prop _ isPropIsOfHLevel (4 + n)) (isoToPath (addIso (suc (suc n)) a )) decode' : (n : ) (x : EM G (suc (suc n))) CODE n x .fst 0ₖ (suc (suc n)) x @@ -521,7 +521,7 @@ isContr-↓∙ : {G : AbGroup } {H : AbGroup ℓ'} (n : ) isContr (EM∙ G (suc n) →∙ EM∙ H n) fst (isContr-↓∙ {G = G} {H = H} zero) = _ 0g (snd H)) , refl snd (isContr-↓∙{G = G} {H = H} zero) (f , p) = - Σ≡Prop x is-set (snd H) _ _) + Σ≡Prop x is-set (snd H) _ _) (funExt (raw-elim G 0 _ is-set (snd H) _ _) (sym p))) fst (isContr-↓∙ {G = G} {H = H} (suc n)) = _ 0ₖ (suc n)) , refl fst (snd (isContr-↓∙ {G = G} {H = H} (suc n)) f i) x = diff --git a/Cubical.Homotopy.Group.Base.html b/Cubical.Homotopy.Group.Base.html index 2e1500008b..78a5539410 100644 --- a/Cubical.Homotopy.Group.Base.html +++ b/Cubical.Homotopy.Group.Base.html @@ -1029,7 +1029,7 @@ invEquiv∙idEquiv∙≡idEquiv : {} {A : Pointed } invEquiv∙ (idEquiv (fst A) , _ pt A)) (idEquiv (fst A) , refl) -invEquiv∙idEquiv∙≡idEquiv = ΣPathP ((Σ≡Prop _ isPropIsEquiv _) refl) , (sym (lUnit refl))) +invEquiv∙idEquiv∙≡idEquiv = ΣPathP ((Σ≡Prop _ isPropIsEquiv _) refl) , (sym (lUnit refl))) π'eqFunIsEquiv : {} {A : Pointed } {B : Pointed } (n : ) diff --git a/Cubical.Homotopy.Group.LES.html b/Cubical.Homotopy.Group.LES.html index d0cdb5a744..f5ef8f0eef 100644 --- a/Cubical.Homotopy.Group.LES.html +++ b/Cubical.Homotopy.Group.LES.html @@ -649,14 +649,14 @@ (πLES.A→B f n) (π'∘∙Hom n f) π∘∙A→B-PathP n f = - toPathP (Σ≡Prop _ isPropIsGroupHom _ _) (π'∘∙Hom'≡π'∘∙fun n f)) + toPathP (Σ≡Prop _ isPropIsGroupHom _ _) (π'∘∙Hom'≡π'∘∙fun n f)) π∘∙fib→A-PathP : { ℓ'} {A : Pointed } {B : Pointed ℓ'} (n : ) (f : A →∙ B) PathP i GroupHomπ≅π'PathP (ΩLES.fibf f) A n i) (πLES.fib→A f n) (π'∘∙Hom n (fst , refl)) π∘∙fib→A-PathP {A = A} {B = B} n f = - toPathP (Σ≡Prop _ isPropIsGroupHom _ _) + toPathP (Σ≡Prop _ isPropIsGroupHom _ _) (cong (transport i (fst (GroupPath _ _) (GroupIso→GroupEquiv (π'Gr≅πGr n (ΩLES.fibf f))) (~ i)) .fst diff --git a/Cubical.Homotopy.Group.Pi4S3.BrunerieNumber.html b/Cubical.Homotopy.Group.Pi4S3.BrunerieNumber.html index 38363c3103..2f756b4688 100644 --- a/Cubical.Homotopy.Group.Pi4S3.BrunerieNumber.html +++ b/Cubical.Homotopy.Group.Pi4S3.BrunerieNumber.html @@ -165,8 +165,8 @@ fiberinr'Iso' : Iso (fiber inr' (inl tt)) (Σ (Unit × S₊ 2) PushoutPath×) fiberinr'Iso' = - compIso (Σ-cong-iso-snd x symIso)) - (Σ-cong-iso-fst (invIso lUnit×Iso)) + compIso (Σ-cong-iso-snd x symIso)) + (Σ-cong-iso-fst (invIso lUnit×Iso)) fiberinr'Iso : Iso (fiber inr' (inl tt)) (Σ (Unit × S₊ 2) PushoutPath×) @@ -257,9 +257,9 @@ (sym (GroupPath _ _ .fst π₂P≅0)) _ _ _ _ _ P→S²→Pushout - (ΣPathPProp _ isPropIsGroupHom _ _) + (ΣPathPProp _ isPropIsGroupHom _ _) λ i fst (π∘∙fib→A-PathP 2 inr∙ i)) - (ΣPathPProp _ isPropIsGroupHom _ _) + (ΣPathPProp _ isPropIsGroupHom _ _) λ i fst (π∘∙A→B-PathP 2 inr∙ i)) -- The two surjections in question @@ -291,7 +291,7 @@ transportLem : PathP i GroupHomπ≅π'PathP (S₊∙ 3) TotalPushoutPath×∙ 2 i) π₃S³→π₃TotalPushoutPath× π₃S³→π₃P transportLem = - toPathP (Σ≡Prop _ isPropIsGroupHom _ _) + toPathP (Σ≡Prop _ isPropIsGroupHom _ _) (π'∘∙Hom'≡π'∘∙fun {A = S₊∙ 3} {B = TotalPushoutPath×∙} 2 (S³→TotalPushoutPath× , refl))) @@ -322,7 +322,7 @@ (π'∘∙Hom 2 TotalPushoutPath×∙→P) (π'∘∙Hom 2 (fst , refl)))) π'∘∙Hom 2 (fold∘W , refl) tripleComp≡ = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (sElim _ isSetPathImplicit) λ f cong ∣_∣₂ (ΣPathP (refl , (cong (_∙ refl) j cong fst (rUnit (cong (fst TotalPushoutPath×∙→P) diff --git a/Cubical.Homotopy.Group.Pi4S3.DirectProof.html b/Cubical.Homotopy.Group.Pi4S3.DirectProof.html index c756899758..d10d888067 100644 --- a/Cubical.Homotopy.Group.Pi4S3.DirectProof.html +++ b/Cubical.Homotopy.Group.Pi4S3.DirectProof.html @@ -466,7 +466,7 @@ π₃*joinS¹S¹→π₃*S²' (fst (fst GrEq) , snd GrEq) help = - toPathP (Σ≡Prop _ isPropIsGroupHom _ _) + toPathP (Σ≡Prop _ isPropIsGroupHom _ _) (funExt λ f i transportRefl diff --git a/Cubical.Homotopy.HopfInvariant.Brunerie.html b/Cubical.Homotopy.HopfInvariant.Brunerie.html index ce5079e63d..f2f6bd647b 100644 --- a/Cubical.Homotopy.HopfInvariant.Brunerie.html +++ b/Cubical.Homotopy.HopfInvariant.Brunerie.html @@ -178,7 +178,7 @@ (compIso (fst (Hⁿ-⋁ (S₊∙ 2) (S₊∙ 2) 2)) (compIso - (prodIso (fst (Hⁿ-Sᵐ≅0 2 1 λ p snotz (cong predℕ p))) + (prodIso (fst (Hⁿ-Sᵐ≅0 2 1 λ p snotz (cong predℕ p))) (fst (Hⁿ-Sᵐ≅0 2 1 λ p snotz (cong predℕ p)))) rUnit×Iso)) isContrUnit)) @@ -187,7 +187,7 @@ (compIso (fst (Hⁿ-⋁ (S₊∙ 2) (S₊∙ 2) 3)) (compIso - (prodIso (fst (Hⁿ-Sᵐ≅0 3 1 λ p snotz (cong predℕ p))) + (prodIso (fst (Hⁿ-Sᵐ≅0 3 1 λ p snotz (cong predℕ p))) (fst (Hⁿ-Sᵐ≅0 3 1 λ p snotz (cong predℕ p)))) rUnit×Iso)) isContrUnit))) diff --git a/Cubical.Homotopy.Whitehead.html b/Cubical.Homotopy.Whitehead.html index da71e9b58f..39095e54af 100644 --- a/Cubical.Homotopy.Whitehead.html +++ b/Cubical.Homotopy.Whitehead.html @@ -373,7 +373,7 @@ -- Main iso Iso-Susp×Susp-cofibJoinTo⋁ : Iso (Susp A × Susp B) cofibW Iso-Susp×Susp-cofibJoinTo⋁ = - compIso (Σ-cong-iso-snd _ invSuspIso)) + compIso (Σ-cong-iso-snd _ invSuspIso)) Iso₁-Susp×Susp-cofibW -- The induced function A ∨ B → Susp A × Susp B satisfies @@ -391,7 +391,7 @@ f₁ = fun Iso-PushSusp×-Susp×Susp f₂ = fun Iso-A□○-PushSusp× f₃ = backward-l whitehead3x3 - f₄ = fun (Σ-cong-iso-snd _ invSuspIso)) + f₄ = fun (Σ-cong-iso-snd _ invSuspIso)) lem : (b : B) cong (f₁ f₂ f₃) (push b) diff --git a/Cubical.Papers.AffineSchemes.html b/Cubical.Papers.AffineSchemes.html index 93bc66381b..439788ebf6 100644 --- a/Cubical.Papers.AffineSchemes.html +++ b/Cubical.Papers.AffineSchemes.html @@ -183,7 +183,7 @@ ---------- 4: Category Theory ---------- -- Σ-subcategories -open CatTheory using (ΣPropCat) +open CatTheory using (ΣPropCat) -- Kan-extension for distributive lattices open SheafExtension using (DLRan ; DLRanNatIso) diff --git a/Cubical.Relation.Nullary.DecidablePropositions.html b/Cubical.Relation.Nullary.DecidablePropositions.html index 3432a2831b..156aac163a 100644 --- a/Cubical.Relation.Nullary.DecidablePropositions.html +++ b/Cubical.Relation.Nullary.DecidablePropositions.html @@ -42,7 +42,7 @@ isPropIsDecProp : {P : Type } isProp (isDecProp P) isPropIsDecProp p q = - Σ≡PropEquiv _ isOfHLevel⁺≃ᵣ 0 isPropBool→Type) .fst + Σ≡PropEquiv _ isOfHLevel⁺≃ᵣ 0 isPropBool→Type) .fst (Bool→TypeInj _ _ (invEquiv (p .snd) q .snd)) isDecPropRespectEquiv : {P : Type } {Q : Type ℓ'} diff --git a/Cubical.Structures.Axioms.html b/Cubical.Structures.Axioms.html index 3e4e23ad75..2ec96dc9ca 100644 --- a/Cubical.Structures.Axioms.html +++ b/Cubical.Structures.Axioms.html @@ -43,7 +43,7 @@ ι (X , s) (Y , t) e ≃⟨ θ e PathP i S (ua e i)) s t - ≃⟨ invEquiv (Σ-contractSnd λ _ isOfHLevelPathP' 0 (axioms-are-Props _ _) _ _) + ≃⟨ invEquiv (Σ-contractSnd λ _ isOfHLevelPathP' 0 (axioms-are-Props _ _) _ _) Σ[ p PathP i S (ua e i)) s t ] PathP i axioms (ua e i) (p i)) a b ≃⟨ ΣPath≃PathΣ PathP i AxiomsStructure S axioms (ua e i)) (s , a) (t , b) diff --git a/Cubical.Structures.Product.html b/Cubical.Structures.Product.html index 762c41a888..22150626dc 100644 --- a/Cubical.Structures.Product.html +++ b/Cubical.Structures.Product.html @@ -36,13 +36,13 @@ {S₂ : Type Type ℓ₂} (ι₂ : StrEquiv S₂ ℓ₂') (θ₂ : UnivalentStr S₂ ι₂) UnivalentStr (ProductStructure S₁ S₂) (ProductEquivStr ι₁ ι₂) productUnivalentStr {S₁ = S₁} ι₁ θ₁ {S₂} ι₂ θ₂ {X , s₁ , s₂} {Y , t₁ , t₂} e = - compEquiv (Σ-cong-equiv (θ₁ e) _ θ₂ e)) ΣPath≃PathΣ + compEquiv (Σ-cong-equiv (θ₁ e) _ θ₂ e)) ΣPath≃PathΣ productEquivAction : {S₁ : Type Type ℓ₁} (α₁ : EquivAction S₁) {S₂ : Type Type ℓ₂} (α₂ : EquivAction S₂) EquivAction (ProductStructure S₁ S₂) -productEquivAction α₁ α₂ e = Σ-cong-equiv (α₁ e) _ α₂ e) +productEquivAction α₁ α₂ e = Σ-cong-equiv (α₁ e) _ α₂ e) productTransportStr : {S₁ : Type Type ℓ₁} (α₁ : EquivAction S₁) (τ₁ : TransportStr α₁) diff --git a/Cubical.Structures.Relational.Equalizer.html b/Cubical.Structures.Relational.Equalizer.html index 53c7d09e86..f325492086 100644 --- a/Cubical.Structures.Relational.Equalizer.html +++ b/Cubical.Structures.Relational.Equalizer.html @@ -40,8 +40,8 @@ equalizerSuitableRel {f = f} {g} {ρ₁} {ρ₂} αf αg θ₁ θ₂ .quo (X , s , p) (R , qer) r = ( ((quo₁ .fst .fst , sym step₀ step₁) , quo₁ .fst .snd) , λ {((s' , _) , r') - Σ≡Prop _ θ₁ .prop _ _ squash/ _ _) _ _) - (Σ≡Prop _ θ₂ .set squash/ _ _) + Σ≡Prop _ θ₁ .prop _ _ squash/ _ _) _ _) + (Σ≡Prop _ θ₂ .set squash/ _ _) (cong fst (quo₁ .snd (s' , r'))))} ) where diff --git a/Cubical.Structures.Relational.Function.html b/Cubical.Structures.Relational.Function.html index 3d01c71b34..2751f89d51 100644 --- a/Cubical.Structures.Relational.Function.html +++ b/Cubical.Structures.Relational.Function.html @@ -120,7 +120,7 @@ (invIsEq (σ₁ .quo R) t) (subst (ρ₁ (graphRel [_]) s) (sym (secIsEq (σ₁ .quo R) t)) r) final .snd (f' , c) = - Σ≡Prop + Σ≡Prop _ isPropImplicitΠ λ s isPropImplicitΠ λ t isPropΠ λ _ θ₂ .prop _ _ squash/ _ _) _ _) diff --git a/Cubical.Structures.Relational.Product.html b/Cubical.Structures.Relational.Product.html index 7bc964766c..418ba49153 100644 --- a/Cubical.Structures.Relational.Product.html +++ b/Cubical.Structures.Relational.Product.html @@ -63,7 +63,7 @@ StrRelMatchesEquiv ρ₁ ι₁ StrRelMatchesEquiv ρ₂ ι₂ StrRelMatchesEquiv (ProductRelStr ρ₁ ρ₂) (ProductEquivStr ι₁ ι₂) productRelMatchesEquiv ρ₁ ρ₂ μ₁ μ₂ A B e = - Σ-cong-equiv (μ₁ _ _ e) _ μ₂ _ _ e) + Σ-cong-equiv (μ₁ _ _ e) _ μ₂ _ _ e) productRelAction : {S₁ : Type Type ℓ₁} {ρ₁ : StrRel S₁ ℓ₁'} (α₁ : StrRelAction ρ₁) @@ -93,7 +93,7 @@ (funExt (elimProp _ productSuitableRel θ₁ θ₂ .set squash/ _ _) _ refl))) (compEquiv (isoToEquiv isom) - (Σ-cong-equiv (_ , σ₁ .quo R) _ _ , σ₂ .quo R)) .snd) + (Σ-cong-equiv (_ , σ₁ .quo R) _ _ , σ₂ .quo R)) .snd) where fwd : ProductStructure S₁ S₂ X / ProductRelStr ρ₁ ρ₂ (R .fst .fst) @@ -138,5 +138,5 @@ StrRelMatchesEquiv ρ₂ (EquivAction→StrEquiv α₂) StrRelMatchesEquiv (ProductRelStr ρ₁ ρ₂) (EquivAction→StrEquiv (productEquivAction α₁ α₂)) productRelMatchesTransp _ _ _ _ μ₁ μ₂ _ _ e = - compEquiv (Σ-cong-equiv (μ₁ _ _ e) _ μ₂ _ _ e)) ΣPath≃PathΣ + compEquiv (Σ-cong-equiv (μ₁ _ _ e) _ μ₂ _ _ e)) ΣPath≃PathΣ \ No newline at end of file diff --git a/Cubical.Tactics.CategorySolver.Solver.html b/Cubical.Tactics.CategorySolver.Solver.html index bd1984f7dd..acc7b8949e 100644 --- a/Cubical.Tactics.CategorySolver.Solver.html +++ b/Cubical.Tactics.CategorySolver.Solver.html @@ -15,20 +15,20 @@ variable ℓ' : Level open Category -open Functor +open Functor module Eval (𝓒 : Category ℓ') where -- Semantics in 𝓒 itself, tautologically open FreeCategory (Cat→Graph 𝓒) sem𝓒 = ε {𝓒 = 𝓒} - ⟦_⟧c = sem𝓒 .F-hom + ⟦_⟧c = sem𝓒 .F-hom 𝓟 = PowerCategory (𝓒 .ob) (SET (ℓ-max ℓ')) - 𝓘 : Functor FreeCat 𝓟 + 𝓘 : Functor FreeCat 𝓟 𝓘 = PseudoYoneda {C = FreeCat} -- Semantics in 𝓟 (𝓒 .ob), interpreting fun symbols using Yoneda module YoSem = Semantics 𝓟 (𝓘 ∘Interp η) - ⟦_⟧yo = YoSem.sem .F-hom + ⟦_⟧yo = YoSem.sem .F-hom -- | Evaluate by taking the semantics in 𝓟 (𝓒 .ob) eval : {A B} FreeCat [ A , B ] _ @@ -45,9 +45,9 @@ eval e₁ eval e₂ e₁ ⟧c e₂ ⟧c solve {A}{B} e₁ e₂ p = cong ⟦_⟧c (isFaithfulPseudoYoneda _ _ _ _ lem) where - lem : 𝓘 e₁ 𝓘 e₂ + lem : 𝓘 e₁ 𝓘 e₂ lem = transport - i Yo-YoSem-agree (~ i) e₁ Yo-YoSem-agree (~ i) e₂ ) + i Yo-YoSem-agree (~ i) e₁ Yo-YoSem-agree (~ i) e₂ ) p solve : (𝓒 : Category ℓ') diff --git a/Cubical.Tactics.FunctorSolver.Examples.html b/Cubical.Tactics.FunctorSolver.Examples.html index d0f2e8ede1..ba1cd1ec17 100644 --- a/Cubical.Tactics.FunctorSolver.Examples.html +++ b/Cubical.Tactics.FunctorSolver.Examples.html @@ -21,18 +21,18 @@ variable ℓ' : Level C D : Category ℓ' - F : Functor C D + F : Functor C D -module Examples (F : Functor C D) where +module Examples (F : Functor C D) where open Category - open Functor + open Functor _ : {A B}{f : D [ A , B ]} D .id ∘⟨ D f f ∘⟨ D D .id _ = solveFunctor! C D F _ : {A} - D .id F (C .id {A}) + D .id F (C .id {A}) _ = solveFunctor! C D F @@ -40,8 +40,8 @@ {Z : D .ob} {f : C [ W , X ]} {g : C [ X , Y ]} - {h : D [ F Y , Z ]} - h ∘⟨ D F (g ∘⟨ C C .id) ∘⟨ C f ∘⟨ D F C .id - D .id ∘⟨ D h ∘⟨ D F C .id ∘⟨ C g ∘⟨ D F f + {h : D [ F Y , Z ]} + h ∘⟨ D F (g ∘⟨ C C .id) ∘⟨ C f ∘⟨ D F C .id + D .id ∘⟨ D h ∘⟨ D F C .id ∘⟨ C g ∘⟨ D F f _ = solveFunctor! C D F \ No newline at end of file diff --git a/Cubical.Tactics.FunctorSolver.Reflection.html b/Cubical.Tactics.FunctorSolver.Reflection.html index 423cb5178e..84558bfaa7 100644 --- a/Cubical.Tactics.FunctorSolver.Reflection.html +++ b/Cubical.Tactics.FunctorSolver.Reflection.html @@ -44,7 +44,7 @@ def (quote Category._⋆_) (category-args (_ h∷ _ h∷ _ h∷ f v∷ g v∷ [])) pattern “F” functor f = - def (quote Functor.F-hom) (functor-args functor (_ h∷ _ h∷ f v∷ [])) + def (quote Functor.F-hom) (functor-args functor (_ h∷ _ h∷ f v∷ [])) -- Parse the input into an exp buildDomExpression : Term Term @@ -75,7 +75,7 @@ TC Unit solve-macro b dom cod fctor = equation-solver - (quote Category.id quote Category._⋆_ quote Functor.F-hom []) + (quote Category.id quote Category._⋆_ quote Functor.F-hom []) mk-call b where diff --git a/Cubical.Tactics.FunctorSolver.Solver.html b/Cubical.Tactics.FunctorSolver.Solver.html index 57a14b972c..5e4fa48abb 100644 --- a/Cubical.Tactics.FunctorSolver.Solver.html +++ b/Cubical.Tactics.FunctorSolver.Solver.html @@ -15,7 +15,7 @@ open import Cubical.Categories.Category open import Cubical.Categories.Constructions.Free.Functor open import Cubical.Categories.Constructions.Power -open import Cubical.Categories.Functor renaming (Id to IdF) +open import Cubical.Categories.Functor renaming (Id to IdF) open import Cubical.Categories.Instances.Sets open import Cubical.Categories.NaturalTransformation open import Cubical.Categories.UnderlyingGraph @@ -24,12 +24,12 @@ variable ℓc ℓc' ℓd ℓd' ℓb ℓb' : Level open Category -open Functor +open Functor open NatIso open NatTrans -module Eval (𝓒 : Category ℓc ℓc') (𝓓 : Category ℓd ℓd') (𝓕 : Functor 𝓒 𝓓) where - open FreeFunctor (Cat→Graph 𝓒) (Cat→Graph 𝓓) (𝓕 .F-ob) +module Eval (𝓒 : Category ℓc ℓc') (𝓓 : Category ℓd ℓd') (𝓕 : Functor 𝓒 𝓓) where + open FreeFunctor (Cat→Graph 𝓒) (Cat→Graph 𝓓) (𝓕 .F-ob) Free𝓒 = FG η𝓒 = ηG @@ -37,31 +37,31 @@ η𝓓 = ηH Free𝓕 = 𝓟 = PowerCategory (Free𝓓 .ob) (SET (ℓ-max (ℓ-max (ℓ-max ℓc ℓc') ℓd) ℓd')) - PsYo : Functor Free𝓓 𝓟 + PsYo : Functor Free𝓓 𝓟 PsYo = PseudoYoneda {C = Free𝓓} module TautoSem = Semantics {𝓒 = 𝓒} {𝓓 = 𝓓} {𝓕 = 𝓕} IdHom IdHom reflEq module YoSem = Semantics {𝓒 = 𝓟} {𝓓 = 𝓟} {𝓕 = IdF} - (Functor→GraphHom (PsYo ∘F Free𝓕) ∘GrHom η𝓒) + (Functor→GraphHom (PsYo ∘F Free𝓕) ∘GrHom η𝓒) (Functor→GraphHom PsYo ∘GrHom η𝓓) reflEq Yo-YoSem-Agree : Path _ PsYo YoSem.semH Yo-YoSem-Agree = sem-uniq-H where - open YoSem.Uniqueness (PsYo ∘F Free𝓕) PsYo F-rUnit refl refl + open YoSem.Uniqueness (PsYo ∘F Free𝓕) PsYo F-rUnit refl refl (compPath→Square (sym (lUnit (eqToPath reflEq)) rUnit refl)) solve : {A B} (e e' : Free𝓓 [ A , B ]) - (p : Path _ (YoSem.semH e ) (YoSem.semH e' )) - Path _ (TautoSem.semH e ) (TautoSem.semH e' ) + (p : Path _ (YoSem.semH e ) (YoSem.semH e' )) + Path _ (TautoSem.semH e ) (TautoSem.semH e' ) solve {A}{B} e e' p = - cong (TautoSem.semH .F-hom) (isFaithfulPseudoYoneda _ _ _ _ lem) where - lem : Path _ (PsYo e ) (PsYo e' ) + cong (TautoSem.semH .F-hom) (isFaithfulPseudoYoneda _ _ _ _ lem) where + lem : Path _ (PsYo e ) (PsYo e' ) lem = transport i Path _ - (Yo-YoSem-Agree (~ i) e ) - (Yo-YoSem-Agree (~ i) e' )) + (Yo-YoSem-Agree (~ i) e ) + (Yo-YoSem-Agree (~ i) e' )) p solve = Eval.solve diff --git a/Cubical.ZCohomology.EilenbergSteenrodZ.html b/Cubical.ZCohomology.EilenbergSteenrodZ.html index b6f09b251c..4a193fd247 100644 --- a/Cubical.ZCohomology.EilenbergSteenrodZ.html +++ b/Cubical.ZCohomology.EilenbergSteenrodZ.html @@ -102,7 +102,7 @@ snd (H0-susp {A = A}) = ST.elim _ isOfHLevelPath 2 isSetSetTrunc _ _) λ {(f , p) - cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) + cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) (funExt λ {north sym p ; south sym p cong f (merid (pt A)) ; (merid a i) j isSet→isSet' (isSetℤ) @@ -192,7 +192,7 @@ rightInv (suspFunCharac0 {A = A}) = ST.elim _ isOfHLevelPath 2 isSetSetTrunc _ _) λ {(f , p) - cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) + cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) (funExt x j transp i helix (wedgeMapS¹ (intLoop (p j) (~ i)) base)) j ((transport i helix (T.rec isGroupoidS¹ x x) (rUnitₖ 1 intLoop (f x) i j))) @@ -211,7 +211,7 @@ snd (theMorph (pos zero) f) = makeIsGroupHom (ST.elim2 _ _ isOfHLevelPath 2 isSetSetTrunc _ _) - λ f g cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl)) + λ f g cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl)) theMorph (pos (suc n)) f = coHomMorph _ (fst f) fst (theMorph (negsuc n) f) = idfun _ snd (theMorph (negsuc n) f) = makeIsGroupHom λ _ _ refl @@ -284,7 +284,7 @@ gId { (inl tt) 0 ; (inr b) g b ; (push a i) funExt⁻ (cong fst gId) a (~ i)}) , q ∣₂ - , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) ∣₁) + , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) ∣₁) (Iso.fun PathIdTrunc₀Iso inker)}) inv (exactnessIso (pos zero) (f , p)) = uncurry (ST.elim _ isSetΠ λ _ isSetΣ isSetSetTrunc λ _ isOfHLevelPath 2 isSetSetTrunc _ _) @@ -296,7 +296,7 @@ pushmap pushId' PT.rec (isSetSetTrunc _ _) pushId - cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) + cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) (funExt λ x sym (funExt⁻ (cong fst pushId) (f x)) ∙∙ cong (fst pushmap) (sym (push x) push (pt A)) ∙∙ (cong (fst pushmap inr) p @@ -307,12 +307,12 @@ uncurry (ST.elim _ isSetΠ λ _ isOfHLevelPath 2 (isSetΣ isSetSetTrunc _ isProp→isSet isPropPropTrunc)) _ _) - λ {(p , q) _ Σ≡Prop _ isPropPropTrunc) refl}) + λ {(p , q) _ Σ≡Prop _ isPropPropTrunc) refl}) leftInv (exactnessIso (pos zero) (f , p)) = uncurry (ST.elim _ isSetΠ λ _ isOfHLevelPath 2 (isSetΣ isSetSetTrunc _ isProp→isSet (isSetSetTrunc _ _))) _ _) - λ {(p , q) _ Σ≡Prop _ isSetSetTrunc _ _) refl}) + λ {(p , q) _ Σ≡Prop _ isSetSetTrunc _ _) refl}) fun (exactnessIso (pos (suc n)) f) ker = (fst ker) , inIm-helper (fst ker) (snd ker) where inIm-helper : (x : coHom (suc n) (typ B)) @@ -345,14 +345,14 @@ p (cong ∣_∣₂ (funExt λ x cong cg (sym (push x)) p))) (isConnectedPathKn _ (cg (inl tt)) (0ₖ (suc n)) .fst) - rightInv (exactnessIso (pos (suc n)) f) _ = Σ≡Prop _ isPropPropTrunc) refl - leftInv (exactnessIso (pos (suc n)) f) _ = Σ≡Prop _ isSetSetTrunc _ _) refl + rightInv (exactnessIso (pos (suc n)) f) _ = Σ≡Prop _ isPropPropTrunc) refl + leftInv (exactnessIso (pos (suc n)) f) _ = Σ≡Prop _ isSetSetTrunc _ _) refl exactnessIso (negsuc n) (f , p) = isContr→Iso ((tt* , refl) - , λ {(tt* , p) Σ≡Prop _ isOfHLevelPath 1 isPropUnit* _ _) + , λ {(tt* , p) Σ≡Prop _ isOfHLevelPath 1 isPropUnit* _ _) refl}) ((tt* , tt* , refl ∣₁) - , λ {(tt* , p) Σ≡Prop _ isPropPropTrunc) + , λ {(tt* , p) Σ≡Prop _ isPropPropTrunc) refl}) -------------------------- Dimension --------------------------- diff --git a/Cubical.ZCohomology.GroupStructure.html b/Cubical.ZCohomology.GroupStructure.html index ff78d63701..0648790752 100644 --- a/Cubical.ZCohomology.GroupStructure.html +++ b/Cubical.ZCohomology.GroupStructure.html @@ -526,7 +526,7 @@ commₕ∙ zero = ST.elim2 _ _ isOfHLevelPath 2 § _ _) λ {(f , p) (g , q) - cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x commₖ 0 (f x) (g x) i)} + cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x commₖ 0 (f x) (g x) i)} commₕ∙ (suc zero) = ST.elim2 _ _ isOfHLevelPath 2 § _ _) λ {(f , p) (g , q) @@ -545,7 +545,7 @@ rUnitₕ∙ : {A : Pointed } (n : ) (x : coHomRed n A) x +[ n ]ₕ∙ 0ₕ∙ n x rUnitₕ∙ zero = ST.elim _ isOfHLevelPath 2 § _ _) - λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x rUnitₖ zero (f x) i)} + λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x rUnitₖ zero (f x) i)} rUnitₕ∙ (suc zero) = ST.elim _ isOfHLevelPath 2 § _ _) λ {(f , p) cong ∣_∣₂ (ΣPathP ((λ i x rUnitₖ 1 (f x) i) , λ i j rUnitₖ 1 (p j) i))} @@ -556,7 +556,7 @@ lUnitₕ∙ : {A : Pointed } (n : ) (x : coHomRed n A) 0ₕ∙ n +[ n ]ₕ∙ x x lUnitₕ∙ zero = ST.elim _ isOfHLevelPath 2 § _ _) - λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x lUnitₖ zero (f x) i)} + λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x lUnitₖ zero (f x) i)} lUnitₕ∙ (suc zero) = ST.elim _ isOfHLevelPath 2 § _ _) λ {(f , p) cong ∣_∣₂ (ΣPathP ((λ i x lUnitₖ 1 (f x) i) , λ i j lUnitₖ 1 (p j) i))} @@ -580,7 +580,7 @@ rCancelₕ∙ : {A : Pointed } (n : ) (x : coHomRed n A) x +[ n ]ₕ∙ (-[ n ]ₕ∙ x) 0ₕ∙ n rCancelₕ∙ zero = ST.elim _ isOfHLevelPath 2 § _ _) - λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x rCancelₖ zero (f x) i)} + λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x rCancelₖ zero (f x) i)} rCancelₕ∙ {A = A} (suc zero) = ST.elim _ isOfHLevelPath 2 § _ _) λ {(f , p) cong ∣_∣₂ (ΣPathP ((λ i x rCancelₖ 1 (f x) i) , λ i j rCancelₖ 1 (p j) i))} @@ -593,7 +593,7 @@ lCancelₕ∙ : {A : Pointed } (n : ) (x : coHomRed n A) (-[ n ]ₕ∙ x) +[ n ]ₕ∙ x 0ₕ∙ n lCancelₕ∙ zero = ST.elim _ isOfHLevelPath 2 § _ _) - λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x lCancelₖ zero (f x) i)} + λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) λ i x lCancelₖ zero (f x) i)} lCancelₕ∙ {A = A} (suc zero) = ST.elim _ isOfHLevelPath 2 § _ _) λ {(f , p) @@ -610,7 +610,7 @@ assocₕ∙ zero = ST.elim3 _ _ _ isOfHLevelPath 2 § _ _) λ {(f , p) (g , q) (h , r) - cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) + cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) i x assocₖ zero (f x) (g x) (h x) i))} assocₕ∙ (suc zero) = ST.elim3 _ _ _ isOfHLevelPath 2 § _ _) diff --git a/Cubical.ZCohomology.Groups.CP2.html b/Cubical.ZCohomology.Groups.CP2.html index d5bc678301..9f010bed3c 100644 --- a/Cubical.ZCohomology.Groups.CP2.html +++ b/Cubical.ZCohomology.Groups.CP2.html @@ -286,7 +286,7 @@ compEquiv (m.TotalSpaceHopfPush→TotalSpace , m.isEquivTotalSpaceHopfPush→TotalSpace) - (Σ-cong-equiv (idEquiv _) + (Σ-cong-equiv (idEquiv _) λ x F x , F-eq x) CP²-iso : Iso CP2 (Pushout {A = TotalHopf} _ tt) fst) diff --git a/Cubical.ZCohomology.Groups.KleinBottle.html b/Cubical.ZCohomology.Groups.KleinBottle.html index 981e9eb624..51895fa5f8 100644 --- a/Cubical.ZCohomology.Groups.KleinBottle.html +++ b/Cubical.ZCohomology.Groups.KleinBottle.html @@ -171,7 +171,7 @@ leftInv Iso-H¹-𝕂²₁ (x , (p , (q , P))) = ΣPathP (refl , (ΣPathP (sym (nilpotent→≡refl x p P) - , toPathP (Σ≡Prop _ isOfHLevelTrunc 3 _ _ _ _) + , toPathP (Σ≡Prop _ isOfHLevelTrunc 3 _ _ _ _) (transportRefl q))))) {- But this is precisely the type (minus set-truncation) of H¹(S¹) -} @@ -186,8 +186,8 @@ setTruncIso ( compIso (characFunSpace𝕂² (coHomK 1)) (compIso - (Σ-cong-iso-snd x Σ-cong-iso-snd - λ p Σ-cong-iso-snd + (Σ-cong-iso-snd x Σ-cong-iso-snd + λ p Σ-cong-iso-snd λ q movePathIso p q (isCommΩK-based 1 x))) (compIso Iso-H¹-𝕂²₁ Iso-H¹-𝕂²₂))) @@ -238,7 +238,7 @@ {- Step two : ∥ Σ[ p ∈ x ≡ x ] p ∙ p ≡ refl ∥₂ ≡ ∥ Σ[ x ∈ K₁ ] x + x ≡ 0 ∥₂ -} Iso-H²-𝕂²₂ : Iso (Σ[ p 0ₖ 2 0ₖ 2 ] p p refl) ∥₂ Σ[ x coHomK 1 ] x +ₖ x 0ₖ 1 ∥₂ -Iso-H²-𝕂²₂ = setTruncIso (Σ-cong-iso {B' = λ x x +ₖ x 0ₖ 1} (invIso (Iso-Kn-ΩKn+1 1)) +Iso-H²-𝕂²₂ = setTruncIso (Σ-cong-iso {B' = λ x x +ₖ x 0ₖ 1} (invIso (Iso-Kn-ΩKn+1 1)) λ p compIso (congIso (invIso (Iso-Kn-ΩKn+1 1))) (pathToIso λ i ΩKn+1→Kn-hom 1 p p i 0ₖ 1)) @@ -405,9 +405,9 @@ theIso = compIso (setTruncIso (compIso (characFunSpace𝕂² (coHomK 2)) - (Σ-cong-iso-snd - λ x Σ-cong-iso-snd - λ p Σ-cong-iso-snd + (Σ-cong-iso-snd + λ x Σ-cong-iso-snd + λ p Σ-cong-iso-snd λ q (movePathIso p q (isCommΩK-based 2 x))))) (compIso Iso-H²-𝕂²₁ (compIso diff --git a/Cubical.ZCohomology.Groups.Prelims.html b/Cubical.ZCohomology.Groups.Prelims.html index 0bd6959d9b..1f1e57e6c7 100644 --- a/Cubical.ZCohomology.Groups.Prelims.html +++ b/Cubical.ZCohomology.Groups.Prelims.html @@ -138,7 +138,7 @@ {- Proof that (S¹ → K₁) ≃ K₁ × ℤ. Needed for H¹(T²) -} S1→K₁≡S1×ℤ : Iso ((S₊ 1) coHomK 1) (coHomK 1 × ) -S1→K₁≡S1×ℤ = S¹→S¹≡S¹×ℤ prodIso (invIso (truncIdempotentIso 3 (isGroupoidS¹))) idIso +S1→K₁≡S1×ℤ = S¹→S¹≡S¹×ℤ prodIso (invIso (truncIdempotentIso 3 (isGroupoidS¹))) idIso module _ (key : Unit') where module P = lockedCohom key diff --git a/Cubical.ZCohomology.Groups.RP2.html b/Cubical.ZCohomology.Groups.RP2.html index 3e3412cda6..3cededafcb 100644 --- a/Cubical.ZCohomology.Groups.RP2.html +++ b/Cubical.ZCohomology.Groups.RP2.html @@ -92,7 +92,7 @@ (T.elim _ isGroupoidΠ λ _ isOfHLevelPlus {n = 1} 2 (isSetSetTrunc _ _)) (toPropElim _ isPropΠ _ isSetSetTrunc _ _)) λ {(p , nilp) - cong ∣_∣₂ (ΣPathP (refl , Σ≡Prop _ isOfHLevelTrunc 3 _ _ _ _) + cong ∣_∣₂ (ΣPathP (refl , Σ≡Prop _ isOfHLevelTrunc 3 _ _ _ _) (rUnit refl ∙∙ cong (Kn→ΩKn+1 0) (sym (nilpotent→≡0 (ΩKn+1→Kn 0 p) (sym (ΩKn+1→Kn-hom 0 p p) @@ -104,7 +104,7 @@ contrGroupIsoUnit (isOfHLevelRetractFromIso 0 (setTruncIso (compIso funSpaceIso-RP² - (Σ-cong-iso-snd _ Σ-cong-iso-snd λ _ pathIso)))) + (Σ-cong-iso-snd _ Σ-cong-iso-snd λ _ pathIso)))) isContr-H¹-RP²-helper) --- H²(RP²) ≅ ℤ/2ℤ ---- @@ -127,7 +127,7 @@ λ p refl))) Iso-H²-RP²₂ : Iso Σ[ p 0ₖ 2 0ₖ 2 ] p sym p ∥₂ Bool -Iso-H²-RP²₂ = compIso (setTruncIso (Σ-cong-iso-snd λ _ pathIso)) +Iso-H²-RP²₂ = compIso (setTruncIso (Σ-cong-iso-snd λ _ pathIso)) (compIso Iso-H²-𝕂²₂ testIso) diff --git a/Cubical.ZCohomology.Groups.Torus.html b/Cubical.ZCohomology.Groups.Torus.html index 8d6a131d49..d6933a233b 100644 --- a/Cubical.ZCohomology.Groups.Torus.html +++ b/Cubical.ZCohomology.Groups.Torus.html @@ -163,7 +163,7 @@ H¹-T²≅ℤ×ℤ = theIso GroupIsoDirProd (Hⁿ-Sⁿ≅ℤ 0) (H⁰-Sⁿ≅ℤ 0) where typIso : Iso _ _ - typIso = setTruncIso (curryIso codomainIso S1→K₁≡S1×ℤ toProdIso) + typIso = setTruncIso (curryIso codomainIso S1→K₁≡S1×ℤ toProdIso) setTruncOfProdIso theIso : GroupIso _ _ @@ -213,7 +213,7 @@ , refl) rightInv helper _ = refl theIso : Iso (coHom 2 ( × )) (coHom 1 ) - theIso = setTruncIso (curryIso codomainIso S1→K2≡K2×K1 toProdIso) + theIso = setTruncIso (curryIso codomainIso S1→K2≡K2×K1 toProdIso) setTruncOfProdIso helper diff --git a/Cubical.ZCohomology.Groups.Wedge.html b/Cubical.ZCohomology.Groups.Wedge.html index 6ce96318e3..154cd6429b 100644 --- a/Cubical.ZCohomology.Groups.Wedge.html +++ b/Cubical.ZCohomology.Groups.Wedge.html @@ -227,11 +227,11 @@ rightInv (fst H⁰Red-⋁) = uncurry (ST.elim2 _ _ isOfHLevelPath 2 (isSet× isSetSetTrunc isSetSetTrunc) _ _) - λ {(_ , _) (_ , _) ΣPathP (cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) - , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl))}) + λ {(_ , _) (_ , _) ΣPathP (cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) + , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl))}) leftInv (fst H⁰Red-⋁) = ST.elim _ isOfHLevelPath 2 isSetSetTrunc _ _) - λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) + λ {(f , p) cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) (funExt λ {(inl a) refl ; (inr b) refl ; (push tt i) j (cong (p ∙_) (symDistr (cong f (sym (push tt))) p) @@ -242,8 +242,8 @@ snd H⁰Red-⋁ = makeIsGroupHom (ST.elim2 _ _ isOfHLevelPath 2 (isSet× isSetSetTrunc isSetSetTrunc) _ _) - λ {(f , p) (g , q) ΣPathP (cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) - , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl))}) + λ {(f , p) (g , q) ΣPathP (cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl) + , cong ∣_∣₂ (Σ≡Prop _ isSetℤ _ _) refl))}) wedgeConnected : ((x : typ A) pt A x ∥₁) ((x : typ B) pt B x ∥₁) (x : A B) inl (pt A) x ∥₁ wedgeConnected conA conB = diff --git a/Cubical.ZCohomology.Gysin.html b/Cubical.ZCohomology.Gysin.html index 4ce808e12b..96109d76d9 100644 --- a/Cubical.ZCohomology.Gysin.html +++ b/Cubical.ZCohomology.Gysin.html @@ -1110,7 +1110,7 @@ -- at an exact sequence involving it. ϕ∘j≡ : (i : ) ϕ∘j i ⌣-hom i ϕ∘j≡ i = - Σ≡Prop _ isPropIsGroupHom _ _) + Σ≡Prop _ isPropIsGroupHom _ _) (funExt (ST.elim _ isOfHLevelPath 2 squash₂ _ _) λ _ refl)) diff --git a/Cubical.ZCohomology.Properties.html b/Cubical.ZCohomology.Properties.html index 818b187c33..9be44ce5fd 100644 --- a/Cubical.ZCohomology.Properties.html +++ b/Cubical.ZCohomology.Properties.html @@ -547,7 +547,7 @@ isContr-↓∙ : (n : ) isContr (coHomK-ptd (suc n) →∙ coHomK-ptd n) fst (isContr-↓∙ zero) = _ 0) , refl snd (isContr-↓∙ zero) (f , p) = - Σ≡Prop f isSetℤ _ _) + Σ≡Prop f isSetℤ _ _) (funExt (T.elim _ isOfHLevelPath 3 (isOfHLevelSuc 2 isSetℤ) _ _) (toPropElim _ isSetℤ _ _) (sym p)))) fst (isContr-↓∙ (suc n)) = _ 0ₖ _) , refl @@ -561,7 +561,7 @@ isContr-↓∙' : (n : ) isContr (S₊∙ (suc n) →∙ coHomK-ptd n) fst (isContr-↓∙' zero) = _ 0) , refl snd (isContr-↓∙' zero) (f , p) = - Σ≡Prop f isSetℤ _ _) + Σ≡Prop f isSetℤ _ _) (funExt (toPropElim _ isSetℤ _ _) (sym p))) fst (isContr-↓∙' (suc n)) = _ 0ₖ _) , refl fst (snd (isContr-↓∙' (suc n)) f i) x = diff --git a/Cubical.ZCohomology.RingStructure.CohomologyRing.html b/Cubical.ZCohomology.RingStructure.CohomologyRing.html index 78029e293f..368751a776 100644 --- a/Cubical.ZCohomology.RingStructure.CohomologyRing.html +++ b/Cubical.ZCohomology.RingStructure.CohomologyRing.html @@ -54,9 +54,9 @@ _⌣_ {k} {l} 0ₕ-⌣ k l) {k} {l} ⌣-0ₕ k l) - _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) - _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) - _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) + _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) + _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) + _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) _ _ _ leftDistr-⌣ _ _ _ _ _) λ _ _ _ rightDistr-⌣ _ _ _ _ _ diff --git a/Cubical.ZCohomology.RingStructure.CohomologyRingFun.html b/Cubical.ZCohomology.RingStructure.CohomologyRingFun.html index fedc1936bb..e7d93b5d63 100644 --- a/Cubical.ZCohomology.RingStructure.CohomologyRingFun.html +++ b/Cubical.ZCohomology.RingStructure.CohomologyRingFun.html @@ -46,9 +46,9 @@ _⌣_ {k} {l} 0ₕ-⌣ k l) {k} {l} ⌣-0ₕ k l) - _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) - _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) - _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) + _ _ _ sym (ΣPathTransport→PathΣ _ _ ((sym (+'-assoc _ _ _)) , (sym (assoc-⌣ _ _ _ _ _ _))))) + _ sym (ΣPathTransport→PathΣ _ _ (sym (+'-rid _) , sym (lUnit⌣ _ _)))) + _ ΣPathTransport→PathΣ _ _ (refl , transportRefl _ rUnit⌣ _ _)) _ _ _ leftDistr-⌣ _ _ _ _ _) λ _ _ _ rightDistr-⌣ _ _ _ _ _