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)