gap-packages / NautyTracesInterface

Interface from GAP to Nauty
https://gap-packages.github.io/NautyTracesInterface/
Other
6 stars 6 forks source link

GAP crashes if AutomorphismGroup is called #1

Closed markusbaumeister closed 7 years ago

markusbaumeister commented 7 years ago

In combination with the digraphs-package the method AutomorphismGroup crashes GAP: /usr/local/bin/gap: Zeile 3: 9800 Speicherzugriffsfehler /opt/gap4r8/bin/gap.sh $@

Code that reproduces this crash in my system:

LoadPackage("NautyTracesInterface");
LoadPackage("Orb");
LoadPackage("Digraphs");

g := NautyColoredGraphWithNodeLabels(
 [ [ 1, 5 ], [ 2, 5 ], [ 1, 6 ], [ 3, 6 ], [ 1, 7 ], [ 4, 7 ], [ 2, 8 ], [ 3, 8 ], 
   [ 2, 9 ], [ 4, 9 ], [ 3, 10 ], [ 4, 10 ], [ 5, 11 ], [ 6, 11 ], [ 8, 11 ], 
   [ 5, 12 ], [ 7, 12 ], [ 9, 12 ], [ 8, 13 ], [ 9, 13 ], [ 10, 13 ], 
   [ 6, 14 ], [ 7, 14 ], [ 10, 14 ] ],
  [ 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2 ], 
  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ] 
);

#AutomorphismGroup(g);
AutomorphismGroup( UnderlyingNautyGraph(g) );

While AutomorphismGroup is not implemented for NautyColoredGraphWithNodeLabels it should throw an error instead of crashing GAP (which it does if digraphs is not loaded). The second call should definitely work and return the trivial Group.

This probably is connected to the fact that digraphs also implements AutomorphismGroups (although that should not be an issue in GAP).

markusbaumeister commented 7 years ago

This also affects isomorphism testing.

sebasguts commented 7 years ago

Colors have to be positive integers. So,

LoadPackage("NautyTracesInterface");
LoadPackage("Orb");
LoadPackage("Digraphs");

g := NautyColoredGraphWithNodeLabels(
 [ [ 1, 5 ], [ 2, 5 ], [ 1, 6 ], [ 3, 6 ], [ 1, 7 ], [ 4, 7 ], [ 2, 8 ], [ 3, 8 ], 
   [ 2, 9 ], [ 4, 9 ], [ 3, 10 ], [ 4, 10 ], [ 5, 11 ], [ 6, 11 ], [ 8, 11 ], 
   [ 5, 12 ], [ 7, 12 ], [ 9, 12 ], [ 8, 13 ], [ 9, 13 ], [ 10, 13 ], 
   [ 6, 14 ], [ 7, 14 ], [ 10, 14 ] ],
  [ 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2 ] + 1, 
  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ] 
);

AutomorphismGroup(g);
AutomorphismGroup( UnderlyingNautyGraph(g) );

works.