Maude

Latest version: v1.5.0

Safety actively analyzes 710445 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

3.2.1

---------------------
* The bindings are now linked to Maude 3.2.1, which includes several improvements and bug fixes.
* New global functions `setAllowDir` for setting whether access to the file system through the directory API is allowed, and `setAssocUnifDepth` to set the depth multiplier for associative unification.
* The `Term.vu_narrow` method takes two new optional arguments `filter` and `delay` that correspond to the homonym options of the interpreter command.

Other improvements
------------------
* New method `Kind.hash` for hashing `Kind` objects. In Python, they can now be used in dictionaries, sets, etc.

Known problems
----------------
* The packages distributed through [PyPI](https://pypi.org/project/maude) lack the files [`process.maude`](https://raw.githubusercontent.com/SRI-CSL/Maude/3.2.1/src/Main/process.maude) and [`time.maude`](https://raw.githubusercontent.com/SRI-CSL/Maude/3.2.1/src/Main/time.maude) that are part of Maude 3.2.1, unlike those that can be downloaded below. However, the missing files can be automatically replaced with the [`fix-missing.py`](https://github.com/fadoss/maude-bindings/releases/download/v1.1.0/fix-missing.py) script below, or manually by copying them to the package installation path or anywhere else inside the Maude library path.

3.1

-------------------

The Maude version used by the library is now [Maude 3.1](https://maude.cs.illinois.edu), including some new features and bug fixes.

* The new command `variant match` has been mapped to `Module.variant_match`, and `filtered variant unify` and `irredundant unify` can be selected with additional Boolean arguments to `Module.variant_unify` and `Module.unify`.
* Access to the external objects of the `FILE` and `PROCESS` modules can be enabled and disabled with the `allowFiles` and `allowProcesses` functions. The release packages for Windows do not support processes.

New features
------------

* New method `Module.upStrategy` to obtain the metarepresentation of a strategy expression.
* Terms, symbols and sorts are hashable with `Term.hash`, `Symbol.hash` and `Sort.hash`. In Python, the `hash` builtin function can be used too.
* Keyword arguments can now be used in methods having more than one default argument like `Term.match`, `get_variants`, `search`, `vu_narrow`, and `Module.variant_unify`.

Changes
-------
* In the previous version, interrupts were handled by Maude by default (the `handleInterrupts` argument of `maude.init` was true by omission). This may print misleading messages attributing to Maude errors that are caused by a misuse of the library or by foreign code, and typing <kbd>Ctrl</kbd>+<kbd>C</kbd> will terminate the program. The current version recovers as default the behavior in all other previous versions, where the signal handlers set by the target language are kept, with some improvements in the case of Python. Typing <kbd>Ctrl</kbd>+<kbd>C</kbd> when running Maude code will try to abort gracefully and raise a `KeyboardInterrupt` exception. Signals handlers set with the [signal](https://docs.python.org/3/library/signal.html) package will be effectively executed, if they are set before calling `maude.init`.

Bug fixes
---------

* Terms and other objects can be safely compared in Python with `None` using the `==` operator.
* Error or kind sorts `[s]` were incorrectly printed as `s`.

1.5.0

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.9, 3.10, 3.11, 3.12, and 3.13).

* This version is built against Maude 3.5.
* **Breaking**: `Term.vu_narrow` does no longer takes the `fold`, `filter`, and `delay` arguments, but a single `flags` argument. These flags can a meaningful bitwise disjunction of some of `FOLD`, `VFOLD`, `FILTER`, `DELAY`, or `PATH`.
* New methods `getMostGeneralStates` and `getFrontierStates` on the iterator returned by `vu_narrow` that stand for the `show most general states` and `show frontier states` commands.
* New method `Module.vu_narrow` for narrowing with multiple initial states, which are given as a list in its first argument. `Term.vu_narrow` still exists and `t.vu_narrow(...)` is equivalent to `m.vu_narrow([t], ...)` for any term `t` in a module `m`.

1.4.0

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.8, 3.9, 3.10, 3.11 and 3.12).

* This version is built against Maude 3.4.
* The new `=>` search type of Maude 3.4 can be used as `maude.BRANCH` in the `search` command.
* Regression: `Term.arguments` recovers its default behavior before 1.3, i.e. it normalizes terms before iterating over its arguments. `Term.arguments(False)` can be used to iterate over the unnormalized term, but the arguments are fragile objects that will be destroyed as soon as the whole term is destroyed.
* `pyproject.toml`-based build using [scikit-build-core](https://scikit-build-core.readthedocs.io/en/latest) instead of [scikit-build](https://scikit-build.readthedocs.io/en/latest).
* New string constant `maude.MAUDE_VERSION` with the version of Maude against the library is built. In the binaries of this release it takes the value `3.4+smc`.

1.3.0

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.8, 3.9, 3.10, 3.11 and 3.12).

* This version is built against Maude alpha154 (see changes [here](https://github.com/SRI-CSL/Maude/releases)).
* `Term.arguments()` does no longer normalize the term modulo axioms before iterating over its arguments. For example, the arguments of `(1 + 2) + 3` were previously obtained as `[3, 1 + 2]`, but now `[1 + 2, 3]` is given. The new method `Term.normalize(False)` before iterating can be used to reproduce the previous behavior, and `Term.normalize(True)` to obtain `[1, 2, 3]`.
* New experimental methods `Module.toLatex`, `View.toLatex`, `Term.toLatex`, and `StrategyExpression.toLatex` to obtain the LaTeX representation of a term.
* Fixed some problems when `maude.init` is called twice.

1.2.3

The following Python packages have been uploaded to [PyPI](https://pypi.org/project/maude), and they can be installed with `pip install --upgrade maude`.

`.whl` files can also be directly installed with `pip` for the matching Python version (3.7, 3.8, 3.9, 3.10, and 3.11).

* This version is built against Maude 3.3.1, whose main new feature is object-oriented modules. However, since they are essentially syntactic sugar on top of system modules, there are no related changes in this release of the library.
* `Equation` has two new methods `isOwise` and `isVariant` to check the corresponding attributes.

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.