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 = { obj := fun (X : Type u) => ModuleCat.of R (X →₀ R), map := fun {X Y : Type u} (f : X ⟶ Y) => Finsupp.lmapDomain R R f, map_id := ⋯, map_comp := ⋯ }
Instances For
The free-forgetful adjunction for R-modules.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
(Implementation detail) The unitor for Free R
.
Equations
Instances For
(Implementation detail) The tensorator for Free R
.
Equations
- ModuleCat.Free.μ R α β = (finsuppTensorFinsupp' R α β).toModuleIso
Instances For
The free R-module functor is lax monoidal.
Equations
- ModuleCat.Free.instLaxMonoidalObjFree R = CategoryTheory.LaxMonoidal.ofTensorHom (ModuleCat.free R).obj (ModuleCat.Free.ε R) (fun (X Y : Type u) => (ModuleCat.Free.μ R X Y).hom) ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
The free functor Type u ⥤ ModuleCat R
, as a monoidal functor.
Equations
- ModuleCat.monoidalFree R = let __src := CategoryTheory.LaxMonoidalFunctor.of (ModuleCat.free R).obj; { toLaxMonoidalFunctor := __src, ε_isIso := ⋯, μ_isIso := ⋯ }
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
Equations
- CategoryTheory.Free.instPreadditive R C = { homGroup := fun (X Y : CategoryTheory.Free R C) => Finsupp.instAddCommGroup, add_comp := ⋯, comp_add := ⋯ }
Equations
- CategoryTheory.Free.instLinear R C = { homModule := fun (X Y : CategoryTheory.Free R C) => Finsupp.module (X ⟶ Y) R, smul_comp := ⋯, comp_smul := ⋯ }
A category embeds into its R
-linear completion.
Equations
- CategoryTheory.Free.embedding R C = { obj := fun (X : C) => X, map := fun {X Y : C} (f : X ⟶ Y) => Finsupp.single f 1, map_id := ⋯, map_comp := ⋯ }
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
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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)