fntom
=====
This package contains an implementation of the algorithm that serves to find
all the one-element Rees co-extensions of a given finite, negative totally
ordered monoid (abbreviated by f. n. tomonoid).
Note that a commutative f. n. tomonoid represents a conjunction in the
semantics of a many-valued (fuzzy) logic that has finitely many totally ordered
logical values.
Installation
------------
Install the package from [PyPI](https://pypi.org/) utilizing the
[pip](https://pypi.org/project/pip/) module:
python -m pip install fntom
Alternatively, you can download and unpack this package and install it by:
python -m pip install path
where `path` refers to the directory where `setup.py` is present.
Example
-------
The following program defines a f. n. tomonoid with the Cayley table:
| 0 | x | y | z | 1 |
| - | - | - | - | - |
| 0 | 0 | 0 | x | z |
| 0 | 0 | 0 | 0 | y |
| 0 | 0 | 0 | 0 | x |
| 0 | 0 | 0 | 0 | 0 |
Subsequently, it finds all its commutative one-element Rees co-extensions and
displays both the f. n. tomonoid and its co-extensions on the terminal output:
```python
import fntom
counter = fntom.Counter()
xyzTable = [['0' ,'x' ,'y' ,'z' ,'1'],
['0' ,'0' ,'0' ,'x' ,'z'],
['0' ,'0' ,'0' ,'0' ,'y'],
['0' ,'0' ,'0' ,'0' ,'x'],
['0' ,'0' ,'0' ,'0' ,'0']]
fntom = fntom.FNTOMonoid(counter.getNew(), xyzTable = xyzTable)
coextensions = fntom.computeCoExtensions(counter, commutative = True)
fntom.show()
for coext in coextensions:
coext.show()
```
Documentation
-------------
For a detailed decription of the program and its purpose, see
the [documentation](docs/fntom/index.html)
generated by [pdoc3](https://pdoc3.github.io/pdoc/)
in the directory [docs/](docs/)
or read the papers listed in **References** below.
References
----------
For the theoretical description of the problem and for the description of the algorithm se the paper:
* M. Petrik and Th. Vetterlein.
*Rees coextensions of finite, negative tomonoids.*
Journal of Logic and Computation 27 (2017) 337-356.
DOI: [10.1093/logcom/exv047](https://doi.org/10.1093/logcom/exv047),
[PDF](papers/Petrik_Vetterlein__Coextensions__preprint.pdf).
For a more detailed description of the algorithm see the papers:
* M. Petrik and Th. Vetterlein.
*Algorithm to generate finite negative totally ordered monoids.*
In: IPMU 2016: 16th International Conference on Information Processing
and Management of Uncertainty in Knowledge-Based Systems.
Eindhoven, Netherlands, June 20-24, 2016.
[PDF](papers/Petrik_Vetterlein__IPMU_2016__preprint.pdf).
* M. Petrik and Th. Vetterlein.
*Algorithm to generate the Archimedean, finite, negative tomonoids.*
In: Joint 7th International Conference on Soft Computing
and Intelligent Systems and 15th International Symposium on Advanced Intelligent Systems.
Kitakyushu, Japan, Dec. 3-6, 2014.
DOI: [10.1109/SCIS-ISIS.2014.7044822](https://doi.org/10.1109/SCIS-ISIS.2014.7044822).
[PDF](papers/Petrik_Vetterlein__SCIS_ISIS_2014__preprint.pdf).
For more details on one-element co-extensions of finite, negative, tomonoids see the paper:
* M. Petrik and Th. Vetterlein.
*Rees coextensions of finite tomonoids and free pomonoids.*
Semigroup Forum 99 (2019) 345-367.
DOI: [10.1007/s00233-018-9972-z](https://doi.org/10.1007/s00233-018-9972-z),
[PDF](papers/Petrik_Vetterlein__Pomonoids__preprint.pdf).