Can I test that a Cayley table represents a group?

Or can I test that the operation satisfies the axioms one at a time?

edit retag close merge delete

You could probably do it, in the sense that you could make a loop that checks every single triple of elements (say) satisfies transitivity (by which I mean associativity) ... I'm not sure how one would do this automatically in any easier way, perhaps you have an example in mind that is more specific? (You should be able to edit your post to do so.)

( 2016-08-11 14:15:29 -0600 )edit

You're right of course. But I could do that in Python (say). I'm actually asking for something like a test that you would apply to a single number to know whether it's prime: isPrime(7). I'm new to sage, I admit. _To me_ it seems reasonable to be able to pass a table to a constructor and then ask when it satisfies the group axioms. But I would also admit that this doesn't seem to be the way sage is intended to work.

( 2016-08-11 15:54:13 -0600 )edit

Sure, you could make a function that did that. My point is that I don't think anyone has done so, nor that what they implemented would (or could!) necessarily be any faster than checking every single possibility. Maybe there is a result that not every one would have to be checked. If you create such a function, you could consider submitting it to be added to Sage!

( 2016-08-12 09:58:02 -0600 )edit

As mentioned here, there is a probabilistic algorithm which has running time close to $O(n^2)$. I wonder if there is a deterministic algorithm with running time less than $O(n^3)$.

( 2016-08-12 16:26:29 -0600 )edit
1

I just read what appears to be theanswer on http://quora.com: https://www.quora.com/How-do-you-know-if-a-Cayley-table-define-a-group-operation/answer/Justin-Rising?srid=uDgC (Justin Rising's answer). (Always check wikipedia first.)

( 2016-08-12 17:18:09 -0600 )edit

The problem with Light's algorithm is that one needs to find generators before applying it, otherwise it would be more expensive than usual exhaustive search (from a memory point of view). That being said, I think it worth to implement those tests in sage. I might write a function in python which performs two tests based on arguments given.

( 2016-08-13 09:51:01 -0600 )edit