Coalgebras #
In this file we define Coalgebra, and provide instances for:
- Commutative semirings:
CommSemiring.toCoalgebra - Binary products:
Prod.instCoalgebra - Finitely supported functions:
Finsupp.instCoalgebra
References #
Data fields for Coalgebra, to allow API to be constructed before proving Coalgebra.coassoc.
See Coalgebra for documentation.
- comul : A →ₗ[R] TensorProduct R A A
The comultiplication of the coalgebra
The counit of the coalgebra
Instances
A coalgebra over a commutative (semi)ring R is an R-module equipped with a coassociative
comultiplication Δ and a counit ε obeying the left and right counitality laws.
- comul : A →ₗ[R] TensorProduct R A A
- coassoc : ↑(TensorProduct.assoc R A A A) ∘ₗ LinearMap.rTensor A Coalgebra.comul ∘ₗ Coalgebra.comul = LinearMap.lTensor A Coalgebra.comul ∘ₗ Coalgebra.comul
The comultiplication is coassociative
- rTensor_counit_comp_comul : LinearMap.rTensor A Coalgebra.counit ∘ₗ Coalgebra.comul = (TensorProduct.mk R R A) 1
The counit satisfies the left counitality law
- lTensor_counit_comp_comul : LinearMap.lTensor A Coalgebra.counit ∘ₗ Coalgebra.comul = (LinearMap.flip (TensorProduct.mk R A R)) 1
The counit satisfies the right counitality law
Instances
Every commutative (semi)ring is a coalgebra over itself, with Δ r = 1 ⊗ₜ r.
Equations
- CommSemiring.toCoalgebra R = Coalgebra.mk ⋯ ⋯ ⋯
Equations
- One or more equations did not get rendered due to their size.
Equations
- Prod.instCoalgebra R A B = Coalgebra.mk ⋯ ⋯ ⋯
Equations
- One or more equations did not get rendered due to their size.
The R-module whose elements are functions ι → A which are zero on all but finitely many
elements of ι has a coalgebra structure. The coproduct Δ is given by Δ(fᵢ a) = fᵢ a₁ ⊗ fᵢ a₂
where Δ(a) = a₁ ⊗ a₂ and the counit ε by ε(fᵢ a) = ε(a), where fᵢ a is the function sending
i to a and all other elements of ι to zero.
Equations
- Finsupp.instCoalgebra R ι A = Coalgebra.mk ⋯ ⋯ ⋯