What C# can do for studying Finite Groups, quotient groups, semi-direct products, homomorphisms, automorphisms group, characters table, minimalistic rings and fields manipulations, polynomials factoring, fields extensions and many more...
This method takes generators as arguments, then create the group generated by these elements and for each generators, search all same orders elements in this group, try to create valid automorphism with these tuples and then generate the group which has for generators the previous valid automorphisms.
It is easy to verify for Cn monogenic group which has only one generator through euler function, but for Symmetric Group subgroup or for cartesian product of Cn, it will difficult and needs to use more things to validate this method.
Unit tests will be restricted to well known groups.
This method takes generators as arguments, then create the group generated by these elements and for each generators, search all same orders elements in this group, try to create valid automorphism with these tuples and then generate the group which has for generators the previous valid automorphisms.
It is easy to verify for Cn monogenic group which has only one generator through euler function, but for Symmetric Group subgroup or for cartesian product of Cn, it will difficult and needs to use more things to validate this method.
Unit tests will be restricted to well known groups.
https://github.com/aidevnn/FastGoat/blob/dfa10c099dea9e8e61eac9aa8055fc141188d319/FastGoat/Group.morphism.cs#L88-L125