[Date Index]
[Thread Index]
[Author Index]
Re: representing the dihedral group {1,r,r^2...s,sr^2...}
*To*: mathgroup at smc.vnet.net
*Subject*: [mg98871] Re: representing the dihedral group {1,r,r^2...s,sr^2...}
*From*: mark mcclure <mcmcclur at unca.edu>
*Date*: Mon, 20 Apr 2009 19:11:35 -0400 (EDT)
*References*: <gsh100$gr$1@smc.vnet.net>
On Apr 20, 1:25 am, obo... at gmail.com 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
forms:
(a*b)^m
(a*b)^m * b
(b*a)^m
(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;
finalForm[w]
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:
http://www.gap-system.org/
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...}**
| |