Have you played around with GAP or the Mathematica group functions? I know 
GAP allows you to create abstract (non-permutation) groups. It would be a 
good place to look for ideas. 

Like I said earlier I was considering doing this as a GSoC project myself 
if I had time. I'm still interested in the project and I'd be happy to 
contribute ideas and comments! :-)

My thought so far was to have an abstract Group class (like we have with 
Set), and have subclasses be different representations of groups--as a set 
of elements (symbols or permutations), a list of generators and relations, 
etc (just like Set has Interval, FiniteSet). We can put basic methods in 
the abstract class and create transformations between them...

Related pull request I made: https://github.com/sympy/sympy/pull/1139

-Nathan

On Tuesday, March 20, 2012 3:40:23 PM UTC-5, Aleksandar Makelov wrote:
>
> On Mar 20, 1:36 pm, David Joyner <wdjoy...@gmail.com> wrote: 
>
> > This seems good. It sounds like you plan on implementing 
> > permutation groups, and the methods you describe, which the 
> > user defines using a list of (permutation) generators. 
> > Is that your question? 
>
> Well I was thinking about a more abstract presentation using symbolic 
> generators and relations. For example, the cyclic group Cn is 
> generated by a single element {s} (set of generators) such that 
> {s^n=id} (set of relations); the dihedral group Dn is generated by 
> {r,s} such that {r^n=id, s^2=id, srs=r^{-1}} and so on to more 
> complicated stuff. The so-called "word problem" that determines 
> whether two words in the generators are in fact the same element of 
> the group is not solvable for finitely presented groups, but *is* 
> solvable for finite groups and some other classes of groups (http:// 
> en.wikipedia.org/wiki/Word_problem_for_groups). The book ("Handbook of 
> computational group theory") provides algorithms for going from this 
> presentation to a permutation presentation. 
>
> My question was whether what I described would be an appropriate, good- 
> sympy-practice way to implement group objects - or at least start 
> implementing them :) 
>
> Alex

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sympy/-/8Xo532GhYbcJ.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to