| Crates.io | autour_core |
| lib.rs | autour_core |
| version | 0.1.12 |
| created_at | 2023-04-23 14:52:58.081617+00 |
| updated_at | 2025-02-09 11:48:09.601006+00 |
| description | AUTOmata Utilities and Representation (AUTOUR) is a small toolbox to experiment with various kinds of automata and draw them |
| homepage | https://github.com/erwanM974/autour_core |
| repository | https://github.com/erwanM974/autour_core |
| max_upload_size | |
| id | 846593 |
| size | 1,309,351 |
The word "Autour" in French refers to a bird. It corresponds to "Goshawk" in English.
Autour is a small toolbox to experiment with various kinds of automata and regular expressions. This project is oriented towards pedagogy rather than performances. It is still a work in progress.
The automata formalisms are the following :
We can also manipulate regular expressions :
Automata can be drawn using GraphViz with the graphviz_dot_builder crate.
In the following we use those graphical representations to introduce some of the features of the toolbox.
Translations between the different formalisms is possible. In the example below we translate a GNFA into (from left to right) a DFA, a NFAIT and a BRE.
Various algorithms allow:
In the example below we have an initial DFA represented at the top of the image.
We then transform this initial DFA (from lef to right):
Means to construct terms:
See some examples below :
| DFA concatenation | DFA kleene | DFA reverse | DFA interleave | DFA unite |
| NFA unite | NFA intersection |
DFA minimization is implemented via Brzozowski's algorithm (reverse of the reverse).
Below is an example:
NFA minimization is implemented via the Kameda-Weiner algorithm. Below are represented two examples detailing the process.
A first example:
And a second which is a NFA accepting the reverse language w.r.t. the first example (you can notice the symmetry of matrices between the two examples modulo rows and columns positions substitution):
Another thing that we can do is substitute letters or hide them.
In the example below we have an initial GNFA drawn at the top of the image. Then, from left to right: