SupposeNot / RAMP

Research Assistant for Maps and Polytopes
4 stars 0 forks source link

IsStringC function giving wrong values #187

Closed CAPiedade closed 9 months ago

CAPiedade commented 9 months ago

I was using the IsStringC function with this set of generators:

k := [ (1,2)(3,4)(5,6)(7,8)(9,10)(11,12), (1,3)(2,4)(5,7)(6,8)(9,11)(10,12), (1,3)(2,4)(5,7)(6,8)(9,11)(10,12), (1,5)(2,6)(3,7)(4,8), (5,9)(6,10)(7,11)(8,12), (1,2)(3,4)(5,6)(7,8) ]; IsStringC(Group(k)); true

But k[2] = k[3], not being an independent set of generators.

In a personal code that was giving the same error I found out that I was intersecting the set of generators of each subgroup where I should be intersecting the set of indexes of the generators of each subgroup.

SupposeNot commented 9 months ago

That's ... weird. Poking at it.

SupposeNot commented 9 months ago

Ok, I think I've figured out what the issue is. The existing code assumes you aren't using repeated elements as generators. I'll work on a fix and get that posted shortly.

SupposeNot commented 9 months ago

Fixed in 4fe8236.

CunningGabe commented 9 months ago

Yeah, I see that one of our base cases is that if there are 2 generators, then it tries to check whether the group is dihedral, which it does by checking that the order of the group is 2 times the order of g.1*g.2. But if g.1 = g.2, then this calculation returns true even though we don't want it too. Oops!