Block systems and block homomorphism
Recently in this blog, we looked at the strong generating set (SGS) algorithm for permutation groups, and how we can use it to investigate the structure of groups. Last time, we saw how to partially...
View ArticleString rewriting and Knuth-Bendix completion
Previously in this blog we have been looking at symmetry groups of combinatorial structures. We have represented these symmetries concretely as permutations - for example, symmetries of graphs as...
View ArticleGroup presentations
Last time we looked at string rewriting systems and the Knuth-Bendix completion algorithm. The motivation for doing that was to enable us to think about groups in a more abstract way than before.The...
View ArticleCayley graphs of groups
[New version HaskellForMaths 0.2.2 released here]Recently, we've been looking at group presentations, where a group is presented as a set of generators together with a set of relations that hold...
View ArticleWord length in the Symmetric group
Previously on this blog, we saw how to think about groups abstractly via group presentations, where a group is given as a set of generators satisfying specified relations. Last time, we saw that...
View ArticleNew modules - Quantum Algebra
I've put up a new version of HaskellForMaths on Hackage, v0.3.1. It's quite a significant update, with more than a dozen new modules, plus improved documentation of several existing modules. I wrote...
View ArticleThe free vector space on a type, part 1
As I mentioned last time, I want to spend the next few posts talking about quantum algebra. Well, we've got to start somewhere, so let's start with vector spaces.You probably know what a vector space...
View ArticleThe free vector space on a type, part 2
Last time, I defined the free k-vector space over a type b:data Vect k b = V [(b,k)]Elements of Vect k b represent formal sums of scalar multiples of elements of b, where the scalars are taken from the...
View ArticleCoproducts of lists and free vector spaces
Recently we've been looking at vector spaces. We defined a type Vect k b, representing the free k-vector space over a type b - meaning, the vector space consisting of k-linear combinations of the...
View ArticleProducts of lists and vector spaces
Last time, we looked at coproducts - of sets/types, of lists, and of free vector spaces. I realised afterwards that there were a couple more things I should have said, but forgot.Recall that the...
View ArticleTensor products of vector spaces, part 1
A little while back on this blog, we defined the free k-vector space over a type b:newtype Vect k b = V [(b,k)] deriving (Eq,Ord)Elements of Vect k b are k-linear combinations of elements of b.Whenever...
View ArticleTensor Products, part 2: Monoids and Arrows
[New release, HaskellForMaths v0.3.2, available on Hackage]Last time we looked at the tensor product of free vector spaces. Given A = Vect k a, B = Vect k b, then the tensor product A⊗B can be...
View ArticleWhat is an Algebra?
Over the last few months, we've spent somewhat longer than I originally expected looking at vector spaces, direct sums and tensor products. I hope you haven't forgotten that the reason we were doing...
View ArticleWhat is a Coalgebra?
Last time we saw how to define an algebra structure on a vector space, in terms of category theory. I think perhaps some readers wondered what we gained by using category theory. The answer may be: not...
View ArticleThe Tensor Algebra Monad
It's been a little while since my last post. That's partly because I've been busy writing new code. I've put up a new release, HaskellForMaths 0.3.3, which contains three new modules:-...
View ArticleCommutative Algebra in Haskell, part 1
Once again, it's been a little while since my last post, and once again, my excuse is partly that I've been too busy writing code.I've just uploaded a new release, HaskellForMaths 0.3.4, which contains...
View ArticleCommutative Algebra and Algebraic Geometry
Last time we saw how to create variables for use in polynomial arithmetic. This time I want to look at some of the things we can do next.First, let's define the variables we are going to use:> :l...
View ArticleNew release of HaskellForMaths
I've just uploaded a new version v0.4.1 of HaskellForMaths, containing three new modules and a couple of other improvements. The additions are as follows:Math.Algebras.QuaternionsThis module was...
View ArticleIntroducing the Group Algebra
Here's an interesting example of an algebra.Given a group, form the free vector space on the elements of the group. For example, if g and h are elements of the group, then the following are some...
View ArticleWhat is a Hopf algebra?
A while ago I looked at the concepts of an algebra and a coalgebra, and showed how to represent them in Haskell. I was intending to carry on to look at bialgebras and Hopf algebras, but I realised that...
View ArticleCombinatorial Hopf Algebras I: The Hopf Algebra YSym of Binary Trees
Last time we looked at the definition of Hopf algebras, using the group algebra as a motivating example. This time I want to look at YSym, a Hopf algebra of binary trees. This is an example of a...
View ArticleCHAs II: The Hopf Algebra SSym of Permutations
Last time we looked at YSym, the (dual of the) Loday-Ronco Hopf algebra of binary trees. This time I want to look at SSym, the Malvenuto-Reutenauer Hopf algebra of permutations. (In due course we'll...
View ArticleCHAs III: QSym, a combinatorial Hopf algebra on compositions
The compositions of a number n are the different ways that it can be expressed as an ordered sum of positive integers. For example, the compositions of 4 are 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 1+3, 2+2,...
View ArticleCHAs IV: Hopf Algebra Morphisms
In the last few posts, we've been looking at combinatorial Hopf algebras, specifically:- SSym, a Hopf algebra with a basis of (indexed by) permutations- YSym, with a basis of binary trees- QSym, with a...
View ArticleCHAs V: More Hopf Algebra morphisms
Last time we looked at the descending tree morphism between the combinatorial Hopf algebras SSym and YSym with fundamental bases consisting of (indexed by) permutations and binary trees respectively....
View Article