The functor of forming finitely supported functions on a type with values in a [Ring R]
is the left adjoint of
the forgetful functor from R
-modules to types.
The free functor Type u ⥤ ModuleCat R
sending a type X
to the
free R
-module with generators x : X
, implemented as the type X →₀ R
.
Equations
- ModuleCat.free R = CategoryTheory.Functor.mk { obj := fun (X : Type u) => ModuleCat.of R (X →₀ R), map := fun {X Y : Type u} (f : X ⟶ Y) => Finsupp.lmapDomain R R f }
Instances For
The free-forgetful adjunction for R-modules.
Equations
- ModuleCat.adj R = CategoryTheory.Adjunction.mkOfHomEquiv (CategoryTheory.Adjunction.CoreHomEquiv.mk fun (X : Type u) (M : ModuleCat R) => (Finsupp.lift (↑M) R X).symm)
Instances For
Equations
- ModuleCat.instIsRightAdjointTypeTypesModuleCatModuleCategoryForgetModuleConcreteCategory R = { left := ModuleCat.free R, adj := ModuleCat.adj R }
(Implementation detail) The unitor for Free R
.
Equations
Instances For
(Implementation detail) The tensorator for Free R
.
Equations
- ModuleCat.Free.μ R α β = LinearEquiv.toModuleIso (finsuppTensorFinsupp' R α β)
Instances For
The free R-module functor is lax monoidal.
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : CategoryTheory.IsIso CategoryTheory.LaxMonoidal.ε) = (_ : CategoryTheory.IsIso CategoryTheory.LaxMonoidal.ε)
The free functor Type u ⥤ ModuleCat R
, as a monoidal functor.
Equations
- ModuleCat.monoidalFree R = let src := CategoryTheory.LaxMonoidalFunctor.of (ModuleCat.free R).toPrefunctor.obj; CategoryTheory.MonoidalFunctor.mk src
Instances For
Free R C
is a type synonym for C
, which, given [CommRing R]
and [Category C]
,
we will equip with a category structure where the morphisms are formal R
-linear combinations
of the morphisms in C
.
Equations
- CategoryTheory.Free x C = C
Instances For
Consider an object of C
as an object of the R
-linear completion.
It may be preferable to use (Free.embedding R C).obj X
instead;
this functor can also be used to lift morphisms.
Equations
- CategoryTheory.Free.of R X = X
Instances For
Equations
- CategoryTheory.categoryFree R C = CategoryTheory.Category.mk
Equations
- CategoryTheory.Free.instPreadditiveFreeCategoryFree R C = CategoryTheory.Preadditive.mk
Equations
- CategoryTheory.Free.instLinearToSemiringToCommSemiringFreeCategoryFreeInstPreadditiveFreeCategoryFree R C = CategoryTheory.Linear.mk
A category embeds into its R
-linear completion.
Equations
- CategoryTheory.Free.embedding R C = CategoryTheory.Functor.mk { obj := fun (X : C) => X, map := fun {X Y : C} (f : X ⟶ Y) => Finsupp.single f 1 }
Instances For
A functor to an R
-linear category lifts to a functor from its R
-linear completion.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : CategoryTheory.Functor.Additive (CategoryTheory.Free.lift R F)) = (_ : CategoryTheory.Functor.Additive (CategoryTheory.Free.lift R F))
Equations
- (_ : CategoryTheory.Functor.Linear R (CategoryTheory.Free.lift R F)) = (_ : CategoryTheory.Functor.Linear R (CategoryTheory.Free.lift R F))
The embedding into the R
-linear completion, followed by the lift,
is isomorphic to the original functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two R
-linear functors out of the R
-linear completion are isomorphic iff their
compositions with the embedding functor are isomorphic.
Equations
- CategoryTheory.Free.ext R α = CategoryTheory.NatIso.ofComponents fun (X : CategoryTheory.Free R C) => α.app X
Instances For
Free.lift
is unique amongst R
-linear functors Free R C ⥤ D
which compose with embedding ℤ C
to give the original functor.
Equations
- CategoryTheory.Free.liftUnique R F L α = CategoryTheory.Free.ext R (α ≪≫ (CategoryTheory.Free.embeddingLiftIso R F).symm)