Metadata-Version: 2.4
Name: GroupsMath
Version: 0.1.0
Summary: The educational Python library for Group Theory
Author-email: Mario Sultan Romero <mariosultan.uem@gmail.com>
License: PolyForm Strict License 1.0.0.
Project-URL: Homepage, https://github.com/MarioSultan/GroupsMath
Project-URL: Documentation, https://github.com/MarioSultan/GroupsMath/tree/main/docs
Project-URL: Issues, https://github.com/MarioSultan/GroupsMath/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# GroupsMath – v0.4.0

![GroupsMath Logo](https://raw.githubusercontent.com/MarioSultan/GroupsMath/main/logo.png)


**GroupsMath** is a Python module for constructing, studying, and manipulating finite groups.

The project aims to provide a simple and intuitive interface for working with finite groups and their algebraic properties.

> **Note:** GroupsMath is currently under active development. Its API is still evolving and may change before version `1.0.0`.

---

## Installation

GroupsMath is currently distributed through GitHub and has not yet been published on PyPI.

To install the latest released version from PyPI, run:

```bash
pip install groupsmath
```

Alternatively, you can install the latest development version directly from GitHub:

```bash
pip install git+https://github.com/MarioSultan/GroupsMath.git
```

Alternatively, you can visit https://github.com/MarioSultan/GroupsMath and download all the files.

---

## Examples

### Cayley table of $S_3$
![S3 table](https://raw.githubusercontent.com/MarioSultan/GroupsMath/main/imgs/cayley_S3.png)

### Cayley table of $A_5\times C_4$
![A4xC3 table](https://raw.githubusercontent.com/MarioSultan/GroupsMath/main/imgs/cayley_A4xC3.png)

### Cayley table of $U_{1200}$
![U1200 table](https://raw.githubusercontent.com/MarioSultan/GroupsMath/main/imgs/cayley_U1200.png)


---

## Features

GroupsMath is designed to provide tools for working with finite groups, including:

**GROUPS:**
* Construction of finite groups.
* Determination of the order of a group and its elements.
* Operation with group elements (multiplication, inverse, powers, ...)
* Computation of Cayley tables with `matplotlib.pyplot`.
* Detection of algebraic properties such as cyclicity and commutativity.
* Computation and exploration of other structural properties of finite groups.
* Predefined group families in the library `groupsmath.precooked`, such as $C_n$, $S_n$, $A_n$, $D_n$, $V_4$, $Q_8$, ...

**SUBGROUPS:**
* Study of subgroups (order, cosets, normal subgroups, quotients, ...).
* Normal subgroups.
* Quotient groups $Q=G/H$.

**AUTOMORPHISMS:**
* Class `Automorphism` and automorphism functions.
* Automorphism groups $\text{Aut}(G)$.

**PRODUCTS:**
* Direct product of two groups $G\times H$.
* Semidirect product of two groups $G\rtimes H$.

The available functionality will expand as the project develops.

---

## Coming soon

The GroupsMath team is currently working on theese ideas:
* Presentation of groups and generators.
* Groups generated by matrices ($GL$, $O$,...).
* Optimization of actual features.

---

## Documentation

Detailed documentation is available in the [`docs`](https://github.com/MarioSultan/GroupsMath/tree/main/docs) directory of GitHub. The documentation is developed alongside the library.

---

## Project status

GroupsMath is currently under active development.

The project has successfully transitioned to an object-oriented interface centered around the `Group` class. The legacy function-based interface is being removed for future versions.

The API should therefore be considered **unstable** until the `1.0.0` release, and breaking changes may occur between development versions.

---

## Contributing

Contributions, suggestions, and bug reports are welcome. If you find a bug or have an idea for improving GroupsMath, please open an issue in the GitHub repository.
