3
$\begingroup$

I have a group described by group relations. For simplicity group has a presentation $<a | a^n = e>$. How can I create this group in Mathematica?

$\endgroup$
6
  • 2
    $\begingroup$ Would CyclicGroup[n] do? $\endgroup$ Commented Dec 21, 2018 at 19:52
  • $\begingroup$ @Andrew no, I am looking for general solution for arbitrary group $\endgroup$ Commented Dec 21, 2018 at 20:48
  • 3
    $\begingroup$ You can't. Use GAP instead. $\endgroup$ Commented Dec 22, 2018 at 5:16
  • $\begingroup$ Is the group finite or not? How would you represent an infinite group in Mathematica? $\endgroup$ Commented Dec 22, 2018 at 22:40
  • $\begingroup$ @Somos yes, I suppose that group is finite $\endgroup$ Commented Dec 23, 2018 at 16:30

2 Answers 2

0
$\begingroup$

You can get at a group's DefiningRelations and check if they match your presentation.

identifyGroup[presentation_] := Select[ SubsetQ[ FiniteGroupData[#,"DefiningRelations"], presentation ]&]@FiniteGroupData[] 

Then if you do identifyGroup[Equal[1, 2\[SmallCircle]2]] you will get a list of groups which include 1 == 2 \[SmallCircle] 2 in their defining relations.

You can add additional equalities to the presentation. For example identifyGroup[ Equal[1, 2\[SmallCircle]2, 2\[SmallCircle]3\[SmallCircle]2\[SmallCircle]3]] and get the list

{{"CrystallographicPointGroup", 5}, {"CrystallographicPointGroup", 6}, {"CrystallographicPointGroup", 7}, {"DihedralGroup", 2}, {"PointGroup", {"Cv", 2}}, {"PointGroup", {"D", 2}}, {"PointGroup", {"Dh", 2}} } 

and so on. You can look at a full set of the defining relations that Mathematica knows by Table[FiniteGroupData[g, "DefiningRelations"], {g, FiniteGroupData[]}].

I'm not sure exactly how Mathematica wants the small-circle superscript, it may be a bit finnicky to get working in the general case.

Note that there is a bit of guesswork as to the names of the generators---all the generators have a number, and I haven't figured out how to do pattern matching on the DefiningRelations so that you could write eg. 1 == a_ \[SmallCircle] a_ or whatever and have it match correctly.

A warning: some groups have Missing[NotAvailable] presentations, and there are some very large groups that Mathematica might not be able to check.

$\endgroup$
-1
$\begingroup$

Would something like

G := FormGroupoid[Range[0, 7], Mod[#1 + #2, 8] &] 

work?

$\endgroup$
2
  • $\begingroup$ Thanks, but l'm looking for solution that uses group relations $\endgroup$ Commented Dec 21, 2018 at 21:09
  • 3
    $\begingroup$ FormGroupoid is not a builtin. If you are using a package, please mention it. $\endgroup$ Commented Dec 22, 2018 at 13:38

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.