MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: representing the dihedral group {1,r,r^2...s,sr^2...}

  • To: mathgroup at
  • Subject: [mg98871] Re: representing the dihedral group {1,r,r^2...s,sr^2...}
  • From: mark mcclure <mcmcclur at>
  • Date: Mon, 20 Apr 2009 19:11:35 -0400 (EDT)
  • References: <gsh100$gr$>

On Apr 20, 1:25 am, obo... at wrote:
> Hi, I'm trying to represent the dihedral group
> {1,r,r^2...s,sr^2...} in mathematica so I can
> do for example:
> s^3
> and get s.

First, you should understand that the general problem you
suggest is *very* hard - impossible, in fact.  For some
specific groups, however, there algorithms to reduce an
arbitrary product to a canonical form and this is the
case for the dihedral group.

The dihedral group of order 2n may be represented as
<a,b|(ab)^n = a^2 = b^2 = 1>.  If you start with an
arbitrary finite string of as and bs, simply remove
each consecutive pair of identical symbols.  You will
be left with a product in one of the following four
  (a*b)^m * b
  (b*a)^m * a

The exponent m may then be reduced modulo n.  To
implement this in Mathematica, it is best to use
NonCommutativeMultiply, or it's infix form **.
Here's how:

a /: a ** a = 1;
b /: b ** b = 1;
a /: a ** 1 = a;
b /: b ** 1 = b;
a /: 1 ** a = a;
b /: 1 ** b = b;

Now, let's generate a long product of as and bs.

w = NonCommutativeMultiply@@RandomChoice[{a, b}, 100]

You should notice that the string is far shorter than 100
symbols, since cancellation has already been performed.
now let's put it in it's final form.  Assuming you're
working in D_6, you can do the following:

n = 3;
finalForm[w : NonCommutativeMultiply[a, ___, b]] :=
  (a**b)^Mod[Length[w]/2, n];
finalForm[w : NonCommutativeMultiply[a, ___, a]] :=
  (a**b)^Mod[(Length[w] - 1)/2, n] ** a;
finalForm[w : NonCommutativeMultiply[b, ___, a]] :=
  (b**a)^Mod[Length[w]/2, n];
finalForm[w : NonCommutativeMultiply[b, ___, b]] :=
  (b**a)^Mod[(Length[w] - 1)/2, n] ** b;

Now, my ab is your r, my ba is your r^(n-1), my b is your s,
and (I think) my a is your r^(n-2)s.  Thus, you should be
able to use this code to reduce in the alternative presentation
<r,s|r^n = s^2 = 1>.

One final comment: If you are planning to work with more
general group presentations, then I strongly recommend that
you check out Gap:

Hope that helps,
Mark McClure

  • Prev by Date: Re: Plot Axis Unit Conversions
  • Next by Date: Re: Plot Axis Unit Conversions
  • Previous by thread: Re: representing the dihedral group {1,r,r^2...s,sr^2...}
  • Next by thread: Re: representing the dihedral group {1,r,r^2...s,sr^2...}