|
| 1 | +--- |
| 2 | +title: "MGroups: A Mathematica Package for Finite Group Theory" |
| 3 | +tags: |
| 4 | + - Mathematica |
| 5 | + - group theory |
| 6 | + - abstract algebra |
| 7 | + - subgroups |
| 8 | +authors: |
| 9 | + - name: Naman Taggar |
| 10 | + orcid: 0000-0000-0000-0000 |
| 11 | + equal-contrib: true |
| 12 | + affiliation: "1" |
| 13 | +affiliations: |
| 14 | + - name: "Department of Mathematics, Sri Guru Tegh Bahadur Khalsa College, University of Delhi, Delhi – 110007" |
| 15 | + index: "1" |
| 16 | +date: 20 April, 2025 |
| 17 | +bibliography: paper.bib |
| 18 | +--- |
| 19 | + |
| 20 | +# Summary |
| 21 | + |
| 22 | +Group theory plays fundamental roles in both pure and applied mathematics, serving as a powerful framework for studying symmetry, structure, and transformations. Its applications span diverse areas such as algebra, number theory, geometry, physics, cryptography, and computer science among others. In recent years, computational tools have become increasingly important for exploring and experimenting with abstract algebraic structures. **MGroups** is a Mathematica package developed to support basic study of finite group theory. It offers a user-friendly interface for performing a range of computations involving finite groups including $Z_n$, $U_n$, $D_n$, $S_n$, and more. The package allows users to define and analyse groups through Cayley tables and provides functionality for investigating group operations, subgroup structures (lattices), group morphisms, and more. |
| 23 | + |
| 24 | +# Statement of need |
| 25 | + |
| 26 | +Computational tools play a vital role in modern mathematics by automating complex and often tedious calculations, thereby freeing users from manual labour and enabling deeper exploration of abstract concepts. One of the most powerful and well-established systems in discrete algebras is @GAP, which provides extensive capabilities for working with groups, rings, vector spaces, and more. GAP is widely used in research and advanced applications, offering deep algorithmic functionality and a rich library of algebraic data. However, its syntax and interface can be less accessible to beginners or those unfamiliar with command-line environments. |
| 27 | + |
| 28 | +In contrast, MGroups is a Mathematica package developed with an emphasis on ease of use, accessibility, and pedagogical support. It is designed primarily for undergraduate students beginning with group theory, as well as for educators seeking a user-friendly tool to demonstrate group-theoretic concepts interactively. The package leverages Mathematica's intuitive syntax and symbolic computation engine to simplify many standard tasks, such as constructing Cayley tables, studying subgroups structures (lattices), exploring group morphisms, and so on. These operations can typically be performed using simple, one-line commands, greatly lowering the barrier to entry for new learners. |
| 29 | + |
| 30 | +While tools like GAP remain the appropriate choice for large-scale or research-level computations, packages like MGroups fill a complementary niche by providing a gentle and engaging entry point to computational group theory within familiar and friendly environments. |
| 31 | + |
| 32 | +# Definition of a Group |
| 33 | + |
| 34 | +A set $G$ along with a binary operation $+$ is said to be a group if elements of $G$ are closed under $+$, if there is an identity in $G$ under $+$, if $+$ is associative, and if inverses exist within $G$ under $+$. If commutativity holds, then $G$ is called abelian. Otherwise it is called non-abelian. |
| 35 | + |
| 36 | +To computationally define a group, the two properties needed are (a) a set, and (b) an operation that takes two elements as input and returns one element as output. Within MGroups, whenever a group is called, the product of each pair of elements is calculated and is stored in the form of a mapping for future use. All further calculations are performed on the basis of this mapping rather than using the group's binary operation, cutting down on the calculations. For example, in case of $Z_2$, this mapping may look like |
| 37 | + |
| 38 | +$$x \oplus_2 y = |
| 39 | + \begin{cases} |
| 40 | + \begin{cases} |
| 41 | + 0, & y=0, \\ |
| 42 | + 1, & y=1 |
| 43 | + \end{cases}, & x=0, \\ |
| 44 | + \begin{cases} |
| 45 | + 1, & y=0, \\ |
| 46 | + 0, & y=1 |
| 47 | + \end{cases}, & x=1 |
| 48 | + \end{cases}$$ |
| 49 | + |
| 50 | +which may be thought of as a nested mapping. Then, group operations are performed using this mapping rather than actually computing the result of, say, $0 \oplus_2 1$. Whereas particular cases of scales this small do not "seem" to require such provisions, and whereas for larger groups such mappings may become cumbersome; however using them emerges beneficial in terms of computational time needed. Consider the significant task of finding subgroups of a group (order $n$) using the following steps: filter all $2^n$ subsets using Lagrange's Theorem and existence of identity, and then check for closure within the resultant set of subsets. Computationally, this is a hugely demanding task. At merely $n=24$, the software will have to process over 16 million subsets in all. |
| 51 | + |
| 52 | +"Method 1" of pre-calculating products of each pair of elements and then using the mappings comes away as better than "Method 2" of performing the calculations each time $x+y$ is needed, when it comes to the time needed for computations. For groups with "simpler" binary operations such as $Z_n$, both methods do not differ by much, however for groups such as those of permutations, the differences begin appearing. We used both methods to find subgroups of $A_4$ (order 12), and found that "Method 2" took 48.63\% more time than "Method 1" based upon average of 50 runs (see figure \ref{fig:compare}). |
| 53 | + |
| 54 | +{ width=80% } |
| 55 | + |
| 56 | +--- |
| 57 | +nocite: | |
| 58 | + @* |
| 59 | +... |
| 60 | + |
| 61 | +# References |
0 commit comments