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 <[email protected]> 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
