# F-algebra

In mathematics, specifically in category theory, F-algebras generalize the notion of algebraic structure. Rewriting the algebraic laws in terms of morphisms eliminates all references to quantified elements from the axioms, and these algebraic laws may then be glued together in terms of a single functor F, the signature.
F-algebras can also be used to represent data structures used in programming, such as lists and trees.
The main related concepts are initial F-algebras which may serve to encapsulate the induction principle, and the dual construction F-coalgebras.

## Definition

If $C$ is a category, and $F:C\rightarrow C$ is an endofunctor of $C$, then an $F$-algebra is a tuple $(A,\alpha )$, where $A$ is an object of $C$ and $\alpha$ is a $C$-morphism $F(A)\rightarrow A$. The object $A$ is called the carrier of the algebra. When it is permissible from context, algebras are often referred to by their carrier only instead of the tuple.
A homomorphism from an $F$-algebra $(A,\alpha )$ to an $F$-algebra $(B,\beta )$ is a $C$-morphism $f:A\rightarrow B$ such that $f\circ \alpha =\beta \circ F(f)$, according to the following commutative diagram:
Equipped with these morphisms, $F$-algebras constitute a category.
The dual construction are $F$-coalgebras, which are objects $A^{*}$ together with a morphism $\alpha ^{*}:A^{*}\rightarrow F(A^{*})$.

## Examples
### Groups

Classically, a group is a set $G$ with a group law $m:G\times G\rightarrow G$, with $m(x,y)=x\cdot y$, satisfying three axioms: the existence of an identity element, the existence of an inverse for each element of the group, and associativity.
To put this in a categorical framework, first define the identity and inverse as functions (morphisms of the set $G$) by $e:1\rightarrow G$ with $e(*)=1$, and $i:G\rightarrow G$ with $i(x)=x^{-1}$. Here $1$ denotes the set with one element $1=\left\{*\right\}$, which allows one to identify elements $x\in G$ with morphisms $1\rightarrow G$.
It is then possible to write the axioms of a group in terms of functions (note how the existential quantifier is absent):
   * $\forall x\in G,\forall y\in G,\forall z\in G,m(m(x,y),z)=m(x,m(y,z))$,
   * $\forall x\in G,m(e(*),x)=m(x,e(*))=x$,
   * $\forall x\in G,m(i(x),x)=m(x,i(x))=e(*)$.
Then this can be expressed with commutative diagrams:
Now use the coproduct (the disjoint union of sets) to glue the three morphisms in one: $\alpha =e+i+m$ according to
       ${\begin{matrix}\alpha :{1}+G+G\times G&\to &G,\\*&\mapsto &1,\\x&\mapsto &x^{-1},\\(x,y)&\mapsto &x\cdot y.\end{matrix}}$
Thus a group is an $F$-algebra where $F$ is the functor $F(G)=1+G+G\times G$. However the reverse is not necessarily true. Some $F$-algebra where $F$ is the functor $F(G)=1+G+G\times G$ are not groups.
The above construction is used to define group objects over an arbitrary category with finite products and a terminal object $1$. When the category admits finite coproducts, the group objects are $F$-algebras. For example, finite groups are $F$-algebras in the category of finite sets and Lie groups are $F$-algebras in the category of smooth manifolds with smooth maps.

### Algebraic structures

Going one step ahead of universal algebra, most algebraic structures are F-algebras. For example, abelian groups are F-algebras for the same functor F(G) = 1 + G + G×G as for groups, with an additional axiom for commutativity: m∘t = m, where t(x,y) = (y,x) is the transpose on GxG.
Monoids are F-algebras of signature F(M) = 1 + M×M. In the same vein, semigroups are F-algebras of signature F(S) = S×S
Rings, domains and fields are also F-algebras with a signature involving two laws +,•: R×R → R, an additive identity 0: 1 → R, a multiplicative identity 1: 1 → R, and an additive inverse for each element -: R → R. As all these functions share the same codomain R they can be glued into a single signature function 1 + 1 + R + R×R + R×R → R, with axioms to express associativity, distributivity, and so on. This makes rings F-algebras on the category of sets with signature 1 + 1 + R + R×R + R×R.
Alternatively, we can look at the functor F(R) = 1 + R×R in the category of abelian groups. In that context, the multiplication is a homomorphism, meaning m(x + y, z) = m(x,z) + m(y,z) and m(x,y + z) = m(x,y) + m(x,z), which are precisely the distributivity conditions. Therefore, a ring is an F-algebra of signature 1 + R×R over the category of abelian groups which satisfies two axioms (associativity and identity for the multiplication).
When we come to vector spaces and modules, the signature functor includes a scalar multiplication k×E → E, and the signature F(E) = 1 + E + k×E is parametrized by k over the category of fields, or rings.
Algebras over a field can be viewed as F-algebras of signature 1 + 1 + A + A×A + A×A + k×A over the category of sets, of signature 1 + A×A over the category of modules (a module with an internal multiplication), and of signature k×A over the category of rings (a ring with a scalar multiplication), when they are associative and unitary.

### Lattice

Not all mathematical structures are F-algebras. For example, a poset P may be defined in categorical terms with a morphism s:P × P → Ω, on a subobject classifier (Ω = {0,1} in the category of sets and s(x,y)=1 precisely when x≤y). The axioms restricting the morphism s to define a poset can be rewritten in terms of morphisms. However, as the codomain of s is Ω and not P, it is not an F-algebra.
However, lattices, which are partial orders in which every two elements have a supremum and an infimum, and in particular total orders, are F-algebras. This is because they can equivalently be defined in terms of the algebraic operations: x∨y = inf(x,y) and x∧y = sup(x,y), subject to certain axioms (commutativity, associativity, absorption and idempotency). Thus they are F-algebras of signature P x P + P x P. It is often said that lattice theory draws on both order theory and universal algebra.

### Recurrence

Consider the functor $F:\mathrm {\bf {Set}} \to \mathrm {\bf {Set}}$ that sends a set $X$ to $1+X$. Here, $\mathrm {\bf {Set}}$ denotes the category of sets, $+$ denotes the usual coproduct given by the disjoint union, and $1$ is a terminal object (i.e. any singleton set). Then, the set $\mathbb {N}$ of natural numbers together with the function $[\mathrm {zero} ,\mathrm {succ} ]:1+\mathbb {N} \to \mathbb {N}$—which is the coproduct of the functions $\mathrm {zero} :1\mapsto 0$ and $\mathrm {succ} :n\mapsto n+1$—is an F-algebra.

## Initial F-algebra

If the category of F-algebras for a given endofunctor F has an initial object, it is called an initial algebra. The algebra $(\mathbb {N} ,[\mathrm {zero} ,\mathrm {succ} ])$ in the above example is an initial algebra. Various finite data structures used in programming, such as lists and trees, can be obtained as initial algebras of specific endofunctors.
Types defined by using least fixed point construct with functor F can be regarded as an initial F-algebra, provided that parametricity holds for the type.
See also Universal algebra.

## Terminal F-coalgebra

In a dual way, a similar relationship exists between notions of greatest fixed point and terminal F-coalgebra. These can be used for allowing potentially infinite objects while maintaining strong normalization property. In the strongly normalizing Charity programming language (i.e. each program terminates in it), coinductive data types can be used to achieve surprising results, enabling the definition of lookup constructs to implement such “strong” functions like the Ackermann function.