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.23) => ModuleCat.of R (X →₀ R), map := fun {x x_1 : Type ?u.23} (f : x ⟶ x_1) => Finsupp.lmapDomain R R f, map_id := ⋯, map_comp := ⋯ }
Instances For
Constructor for elements in the module (free R).obj X
.
Equations
- ModuleCat.freeMk x = Finsupp.single x 1
Instances For
The morphism of modules (free R).obj X ⟶ M
corresponding
to a map f : X ⟶ M
.
Equations
- ModuleCat.freeDesc f = (Finsupp.lift (↑M) R X) f
Instances For
The bijection ((free R).obj X ⟶ M) ≃ (X → M)
when X
is a type and M
a module.
Equations
- ModuleCat.freeHomEquiv = { toFun := fun (φ : (ModuleCat.free R).obj X ⟶ M) (x : X) => φ (ModuleCat.freeMk x), invFun := fun (ψ : X → ↑M) => ModuleCat.freeDesc ψ, left_inv := ⋯, right_inv := ⋯ }
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
- ⋯ = ⋯
The canonical isomorphism 𝟙_ (ModuleCat R) ≅ (free R).obj (𝟙_ (Type u))
.
(This should not be used directly: it is part of the implementation of the
monoidal structure on the functor free R
.)
Equations
- ModuleCat.FreeMonoidal.εIso R = { hom := Finsupp.lsingle PUnit.unit, inv := Finsupp.lapply PUnit.unit, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The canonical isomorphism (free R).obj X ⊗ (free R).obj Y ≅ (free R).obj (X ⊗ Y)
for two types X
and Y
.
(This should not be used directly: it is is part of the implementation of the
monoidal structure on the functor free R
.)
Equations
- ModuleCat.FreeMonoidal.μIso R X Y = (finsuppTensorFinsupp' R X Y).toModuleIso
Instances For
The free functor Type u ⥤ ModuleCat R
is a monoidal functor.
Equations
- One or more equations did not get rendered due to their size.
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 x_1 : CategoryTheory.Free R C) => Finsupp.instAddCommGroup, add_comp := ⋯, comp_add := ⋯ }
Equations
- CategoryTheory.Free.instLinear R C = { homModule := fun (x x_1 : CategoryTheory.Free R C) => Finsupp.module (x ⟶ x_1) 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 x_1 : C} (f : x ⟶ x_1) => 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)