Recent Releases of maude

maude - Python packages v1.5.0

The following Python packages have been uploaded to PyPI, 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.

- SWIG
Published by github-actions[bot] about 1 year ago

maude - Python packages v1.4.0

The following Python packages have been uploaded to PyPI, 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 instead of scikit-build.
  • 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.

- SWIG
Published by github-actions[bot] almost 2 years ago

maude - Python packages v1.3.0

The following Python packages have been uploaded to PyPI, 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).
  • 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.

- SWIG
Published by github-actions[bot] about 2 years ago

maude - Python packages v1.2.3

The following Python packages have been uploaded to PyPI, 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.

- SWIG
Published by github-actions[bot] almost 3 years ago

maude - Python packages v1.2.2

The following Python packages have been uploaded to PyPI, 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).

  • The new version is built against Maude 3.2.2. However, that is a bug-fix release and no new features have been added.
  • Fixes a bug introduced in 1.2.1 that caused a segmentation fault when findSort and other related methods do not succeed.
  • Unlike in 1.2.1 and in the operator attribute, the argument indices of Symbol.getFrozen now start from zero since this is more natural in the target programming language.
  • New methods getOpHooks and getTermHooks in Symbol that return a dictionary with the operator and term bindings of a special operator, respectively. This is only available in Python for the moment and the interface may change in the future.
  • The Python bindings do not longer include some wrappers over the C++ structures like IntVector and TermIntPair, which are not useful and only increase the package size.

- SWIG
Published by github-actions[bot] about 3 years ago

maude - Python packages v1.2.1

The following Python packages are not yet uploaded to PyPI. .whl files can be directly installed with pip for the matching Python version (3.7, 3.8, 3.9, and 3.10).

Bug fixes

  • Overwritten modules (i.e. replaced by another module of the same name) were not internally released in Maude when its wrapper object becomes unreachable (reported in #3).

Improvements

  • New method Symbol.hasAttr to check some attributes of the operator like associativity (OP_ASSOC), commutativity (OP_COMM), whether it is iterable (OP_ITER), idempotent (OP_IDEM), has left identity (OP_LEFT_ID), right identity (OP_RIGHT_ID), memoization OP_MEMO (with memoization), or is special (i.e. primitive, OP_SPECIAL). It takes as argument one of the global constants enumerated above.
  • New methods getIdentity, getFrozen, getStrategy, getPrec, getFormat, and getIdHooks of Symbol to obtain the identity constant, the frozen attribute, the reduction strategy, the syntactic precedence, the format specification, and the id-hooks associated to that symbol.
  • New method Term.getIterExponent to get the exponent of iter operators (suggested in #2).

- SWIG
Published by github-actions[bot] about 3 years ago

maude - Python packages v1.2.0

The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).

Improvements

  • All module module elements (Sort, Kind, Equation, Rule, ...) are now hashable and comparable for equality. This allows using them in data structures like dictionaries and sets in Python.
  • The methods parseTerm and parseStrategy of Module can now receive an optional additional argument with a collection of variables to be declared before parsing. This provides the functionality of the second argument of metaParse (see §17.6.13 of the Maude manual).

- SWIG
Published by github-actions[bot] over 3 years ago

maude - Python packages v1.1.2

The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).

Small improvements

  • Two new methods have been added to the Kind class: nrMaximalSort to obtain the number of maximal sorts (according to the subsort relation) and errorFree to know whether error terms are contained in the kind.

Bug fixes

  • The methods getCondition and isNonexec were missing in the MembershipAxiom class.
  • Custom special operators with id-hook SpecialHubSymbol (name) forgot the name when being imported.

- SWIG
Published by github-actions[bot] almost 4 years ago

maude - Python packages v1.1.1

The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).

Bug fixes

  • Term objects produced by Symbol.makeTerm were not properly garbage-collected.
  • The Python packages now include the process.maude and time.maude files of the Maude distribution (known problem in 1.1.0).

- SWIG
Published by github-actions[bot] almost 4 years ago

maude - Python packages v1.1.0

The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).

Update to Maude 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 lack the files process.maude and 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 script below, or manually by copying them to the package installation path or anywhere else inside the Maude library path.

- SWIG
Published by github-actions[bot] about 4 years ago

maude - Python packages v1.0.1

The following Python packages have been uploaded to PyPI, 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.6, 3.7, 3.8, 3.9, and 3.10).

Bug fixes

  • Using the getLine message of the stream and file API caused a segmentation fault.
  • The underlying Maude implementation (libmaude.so) contained a bug related to the probabilistic strategy language.

- SWIG
Published by github-actions[bot] about 4 years ago

maude - Python packages v1.0

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

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

New features

  • New method Term.apply to apply rules with an interface similar to metaXapply. The term is applied any rule with the given label (or any executable rule if None is given instead) according to an optional initial substitution and optional depth bounds. The result is an iterator over the results of the rule application (not reduced, although this may change in the future), the matching substitutions, the matching contexts, and the applied rules. Matching contexts are provided as functions that return the original term with the matched subterm replaced by its argument.
  • Term.match can now be used to match anywhere and not only on top. This method is now given two additional arguments minDepth and maxDepth to arbitrary limit matching by depth. By default, minDepth is 0 and maxDepth is -1 or 0 depending on the value of withExtension. The constant maude.UNBOUNDED can be used for maxDepth.
  • New methods Term.isVariable and Term.getVarName to check whether a term is a variable and to get its name (getVarName will return null if the term is not a variable).
  • New method Symbol.isAssoc to check whether a symbol is associative.
  • Term.search receives a new keyword argument strategy to control the search using a strategy (experimental feature).

Improvements

  • Update to Maude alpha136.
  • New global function setRandomSeed to set the random generator seed at any time.
  • Condition fragments obtained from functions in Python are objects of the specific subclass (EqualityCondition, RewriteCondition, ...) instead of the generic ConditionFragment.

Bug fixes

  • The condition argument passed to Term.match and Term.search was destroyed after the completion of these operations, yielding dangling pointers at the user side. Moreover, if the condition belonged to a module statement, the module would be corrupted.
  • Missing hasCondition and getCondition methods in StrategyDefinition.
  • Partial substitutions (where some variables in the term are not defined by the substitution) caused the library to crash.
  • Module.upStrategy returned malformed metarepresentations in some cases.

Non-backward compatible changes

  • Iterating through the result of Term.match in Python provides a pair of Substitution and Context instead of only a Substitution.
  • Assignments in Substitution can no longer be accessed by index. Its method var has been removed, and value now receives a variable instead of an index.

- SWIG
Published by github-actions[bot] over 4 years ago

maude - Python packages v0.7

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

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

Update to Maude alpha133

The Maude version used by the library is now Maude alpha133. Since the bugs fixed since Maude 3.1 may affect the potential users of the library, it has been packaged with the latest release despite not being stable. However, using the stable version or a different compatible alpha version is still possible, by replacing the libmaude.so (Linux), libmaude.dylib (macOS) or libmaude.dll (Windows) and the .maude files in the package directory with that version.

New features

  • New method getMetadata to obtain the free text metadata attribute on MembershipAxiom, Equation, Rule, RewriteStrategy, StrategyDefinition and the declarations of a Symbol. The quotation marks surrounding this text are only trimed in Python, Lua and Java for the moment.
  • New method getLineNumber to obtain the line number information as printed by Maude on module statements.

Improvements

  • In previous versions, the methods findSort and findSymbol of Module expected all special characters in the name to be escaped by backquotes, which is now optional.
  • Object to string conversions are now reentrant.

Bug fixes

  • Bug fixes in the methods rewrite, frewrite, erewrite, srewrite of Term, and in StrategyRewriteGraph.
  • Fixed several memory leaks. ⚠ Warning: memory errors are more likely now when are objects used outside their lifetimes (this mainly affects substitutions returned by searches, which should not survive its iterator).

- SWIG
Published by github-actions[bot] almost 5 years ago

maude - Python packages v0.6

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

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

Update to Maude 3.1

The Maude version used by the library is now Maude 3.1, 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 Ctrl+C 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 Ctrl+C when running Maude code will try to abort gracefully and raise a KeyboardInterrupt exception. Signals handlers set with the signal 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.

- SWIG
Published by github-actions[bot] over 5 years ago

maude - Python packages v0.5

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

.whl files can be directly installed too with pip for the matching Python version (2.7, 3.6, 3.7 or 3.8).

Non-backward compatible changes

  • Module.downModule is moved to maude.downModule, since no module object is required for this operation.

New features

  • New metalevel-related functions Module.downTerm and Module.upTerm to convert back and forth between metarepresented and object-level entities.
  • ModelCheckResult includes a new field nrBuchiStates with the number of states of the Büchi automaton for the negated LTL property.
  • RewriteGraph and StrategyRewriteGraph have a new method getNrRewrites to obtain the total number of rewrites spent in extending the rewrite graph.
  • Equality testing method equal for Sort, Kind, Symbol and Term. In Python, the == operator can be used as a synomyn of equal, and <= as Sort.leq for subsort inclusion.
  • Terms representing integers and floating-point numbers can be converted to their corresponding types of the external programming language using the methods Term.toInt and Term.toFloat. Integers not fitting in the host type are truncated, and other terms are converted to zero. In Python, the builtin float and int functions can be used.
  • New method Term.check to check SMT formulae. Its result is one of the strings sat, unsat or undecided, like in the homonym command, or None if the term is not a SMT one.
  • New method Term.prettyPrint for a more controlled pretty printing of terms, using the maude.PRINT_* flags.

Bug fixes

  • The strategy passed to StrategyRewriteGraph is copied to avoid illegal access when the graph is destroyed.

Experimental features

  • New feature to define in the external language the behavior of selected Maude operators against equational and rule rewriting. This is achieved using Maude special operators, which are marked by the special attribute and whose behavior is defined in the C++ code of the interpreter, instead of equationally or with rules. Here, external languages may extend the Hook class with a custom run method that get executed when the special symbol is reduced or rewritten.

- SWIG
Published by github-actions[bot] over 5 years ago

maude - Python packages v0.4

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

.whl files can be directly installed too with pip for the matching Python version (2.7, 3.6, 3.7 or 3.8).

Non-backward compatible changes

  • StateTransitionGraph is renamed to RewriteGraph and StrategyTranstionGraph to StrategyRewriteGraph.

New features

  • Unification via Module.unify and variant unification via Module.variant_unify. Both methods receive the unification problem as a list of pairs of terms.
  • Variant generation with Term.get_variants.
  • Narrowing search using Term.vu_narrow.
  • Substitution is extended with two new methods: instantiate(term) to instantiate terms, and find(variableName, sort=None) to find the value of a variable in a substitution by its name and sort.
  • Syntactic sugar for building terms using Symbol.makeTerm: f.makeTerm([t1, t2]) can be written as f(t1, t2).

Bug fixes

  • A bug in the modelCheck methods that may cause bad results and crashes.
  • A mismatched libmaude.so version in the 0.3 build may cause unexpected behavior and crashes.

- SWIG
Published by github-actions[bot] almost 6 years ago

maude - Python packages v0.3

The following Python packages have been uploaded to PyPI, and they can be installed with pip install --upgrade maude.

.whl files can be directly installed too with pip for the matching Python version (2.7, 3.6, 3.7 or 3.8).

Non-backward compatible changes

  • Maude-internal vectors returned by observer methods (Module.getSorts...) are now read-only.
  • Term.match receives a Python list of condition fragments instead of an internal vector.
  • Symbol.domainComponent is renamed to Symbol.domainKind.

New features

  • Documentation.
  • Terms can be constructed and destructured: Term.arguments to iterate their arguments, Symbol.makeTerm to build terms, Module.findSort and findSymbol to find symbols and sorts in a module.
  • Access to the Maude LTL model checker and its extension for strategy-controlled systems: modelCheck method in StateTransitionGraph and StrategyTransitionGraph.
  • Module.downStrategy and Module.downModule to get module and strategy expression objects from their metarepresentations.
  • Additional methods in some other classes: operator declarations in Symbol, sorts in Kind...
  • The random seed for the RANDOM module can now be set in the maude.init function.

Bug fixes

  • Internal errors in Term.search and StrategyTransitionGraph.
  • Sort.leq only worked for symbols in the same kind.

- SWIG
Published by github-actions[bot] almost 6 years ago

maude - Python packages v0.2

The following Python packages have been uploaded to PyPI, and they can be installed with pip install maude.

.whl files can be directly installed too with pip for the matching Python version (2.7, 3.6, 3.7 or 3.8).

- SWIG
Published by github-actions[bot] almost 6 years ago

maude - Auxiliary build files

This release now only contains an auxiliary file required to build the maude package in CentOS and Windows.

- SWIG
Published by ningit about 6 years ago