Free algebras #
Given a semiring R
and a type X
, we construct the free non-unital, non-associative algebra on
X
with coefficients in R
, together with its universal property. The construction is valuable
because it can be used to build free algebras with more structure, e.g., free Lie algebras.
Note that elsewhere we have a construction of the free unital, associative algebra. This is called
FreeAlgebra
.
Main definitions #
Implementation details #
We construct the free algebra as the magma algebra, with coefficients in R
, of the free magma on
X
. However we regard this as an implementation detail and thus deliberately omit the lemmas
of_apply
and lift_apply
, and we mark FreeNonUnitalNonAssocAlgebra
and lift
as
irreducible once we have established the universal property.
Tags #
free algebra, non-unital, non-associative, free magma, magma algebra, universal property, forgetful functor, adjoint functor
The free non-unital, non-associative algebra on the type X
with coefficients in R
.
Equations
- FreeNonUnitalNonAssocAlgebra R X = MonoidAlgebra R (FreeMagma X)
Instances For
The embedding of X
into the free algebra with coefficients in R
.
Equations
- FreeNonUnitalNonAssocAlgebra.of R = ⇑(MonoidAlgebra.ofMagma R (FreeMagma X)) ∘ FreeMagma.of
Instances For
The functor X ↦ FreeNonUnitalNonAssocAlgebra R X
from the category of types to the
category of non-unital, non-associative algebras over R
is adjoint to the forgetful functor in the
other direction.
Equations
- FreeNonUnitalNonAssocAlgebra.lift R = FreeMagma.lift.trans (MonoidAlgebra.liftMagma R)