0

I am trying to look in GAP if it tells us that two groups have same presentation, like, IsIdenticalPresentation(G,H); but I couldn't find any. Could you please help me to find out, if there is any? In magma there is such command, but I am wondering if I could find in GAP as well.

S786
  • 1,001
  • Can you specify a bit more what you want? Is the question for two fp groups having verbatim identical presentations? For transformability (say renaming generators, tietze transformations)? – ahulpke May 28 '15 at 19:57
  • Yes I have two finitely presented groups, and I want to know do they have identical presentations? – S786 May 28 '15 at 20:08
  • What if you try TzGoGo to reduce presentations? If both result in the same, they are, but nothing can be said if not. Perhaps you may post actual presentations here, if they are not too huge? – Olexandr Konovalov May 28 '15 at 22:07
  • P.S. When answering a comment, please use @username syntax to send a notification to the user to whom you're replying (if several users are mentioned in the comment, only the first one will be notified). Otherwise, we will be able to see your responses only in case we will revisit this question, and this is not guaranteed to happen fast... – Olexandr Konovalov May 28 '15 at 22:08
  • @smaz, could you please let us know which kind of groups you're dealing with and what do you mean by "same". In MAGMA handbook, this and this entries for IsIdenticalPresentation refer for types of groups for which standard presentation is defined, so one could just compute and compare them for a pair of groups. – Olexandr Konovalov May 30 '15 at 10:06

1 Answers1

2

There is no built-in function that does so, but one can do easily by mapping relators. The following function does so with minimum amount of cleverness as far as generator names, and arrangement of relators is concerned. Clearly even minimal changes will result in the presentations to be considered different.

IsIdenticalPresentation:=function(G,H)
local FG,FH,sh,perm,r;
  FG:=FreeGeneratorsOfFpGroup(G);
  FH:=FreeGeneratorsOfFpGroup(H);
  if Length(FG)<>Length(FH) then
    return false;
  fi;
  sh:=List(FH,String);
  perm:=List(FG,x->Position(sh,String(x)));
  if ForAny(perm,x->x=fail) then
    Info(InfoWarning,1,"Generator names differ, map 1<->1");
    perm:=[1..Length(FH)];
  fi;
  r:=List(RelatorsOfFpGroup(G),x->MappedWord(x,FG,FH{perm}));
  if Length(r)=Length(RelatorsOfFpGroup(H))
    and ForAll(r,x->x in RelatorsOfFpGroup(H)) then
    return true;
  else
    return false;
  fi;
end;
ahulpke
  • 18,416
  • 1
  • 21
  • 38
  • So the meaning of "same" is literally "same". For $A = \langle a, b \mid aba^{-1}b^{-1} \rangle$, $B = \langle a, b \mid b^{-1}a^{-1}ba \rangle$, $C = \langle x, y \mid x^{-1}y^{-1}xy \rangle$ and $D = \langle x, y \mid y^{-1}x^{-1}yx \rangle$ it returns true only for $B$ and $D$ (and of course as well when both arguments G and H refer to the same GAP object). – Olexandr Konovalov May 30 '15 at 09:56