The multiplication table is itself a list of permutations of a representation of the group so you can do
In[1]:= m = {{1, 2, 3, 4}, {2, 3, 4, 1}, {3, 4, 1, 2}, {4, 1, 2, 3}};
In[2]:= G = PermutationGroup[m];
Now you can compute group properties as usual:
In[3]:= GroupOrder[G]
Out[3]= 4
In this case the permutation representation obtained is exactly the same used by CyclicGroup[4], so you can check that they have the same elements:
In[4]:= G == CyclicGroup[4]
Out[4]= True
This happens because CyclicGroup[4] has order 4 and is represented with degree 4 as well.
As a counterexample, take DihedralGroup[4]. It is implemented as a permutation representation of degree 4:
In[5]:= PermutationMax[DihedralGroup[4]]
Out[5]= 4
but has order 8:
In[6]:= GroupOrder[DihedralGroup[4]]
Out[6]= 8
Now:
In[7]:= m = DihedralGroup[4] // GroupMultiplicationTable
Out[7]= {{1, 2, 3, 4, 5, 6, 7, 8}, {2, 1, 4, 3, 6, 5, 8, 7}, {3, 7, 1,5, 4, 8, 2, 6}, {4, 8, 2, 6, 3, 7, 1, 5}, {5, 6, 7, 8, 1, 2, 3, 4}, {6, 5, 8, 7, 2, 1, 4, 3}, {7, 3, 5, 1, 8, 4, 6, 2}, {8, 4, 6, 2, 7, 3, 5, 1}}
In[8]:= G = PermutationGroup[m];
This gives a permutation representation of degree 8 of the same abstract group. But the groups are different:
In[9]:= G == DihedralGroup[4]
Out[9]= False
That is, they are different representations of the same abstract group.
CyclicGroup
or do you need something more robust than that? $\endgroup$