2
$\begingroup$

I would like to write a program (in C++) that can handle groups. The use shall be solving equations in groups. What's a good idea to store a group?

My plan was:

  • If the group has a generating system, it is enough to store the generators
  • Otherwise, try something implicit (for example, let $(\mathbb{R},+)$ be approximated by all floats, or: this group can be constructed from that group by whatever)

Are there better alternatives to store groups?

  • 4
    As to your first point: You are aware of http://en.wikipedia.org/wiki/Word_problem_for_groups ?2012-09-07
  • 1
    Also be aware of http://en.wikipedia.org/wiki/Automatic_group2012-09-07
  • 0
    They were both new to me, thanks! But what about non finite generated groups?2012-09-07
  • 1
    If it's not finitely-generated, how are you even going to store the generating system?2012-09-07
  • 0
    Maybe it's not necessary to store the generating system... Maybe there's another way to "store" a group?2012-09-07
  • 0
    What problem are you trying to solve? e.g. specifically what group (or groups) are you looking to do computation in?2012-09-07
  • 0
    I am interested in easifying equations, such as: Given a Group $G$, what is $a+a$ for $a \in G$? It is $2a$. The question is: How to store $G$ herefore.2012-09-07
  • 1
    @Johannes: An equation involves only finitely many variables, so you can work inside a finitely generated subgroup. The most general finitely generated subgroup (the one where equations have the fewest simplifications) are called the “free groups”. You probably want to look at “laws of groups” if free groups are too general (but storing the laws on computer is done with a free group).2012-09-07
  • 0
    I think a general rule is that the more general your setting is, the less you can do with them.2012-09-07

2 Answers 2