Skip to main content Link Search Menu Expand Document (external link)

Download

Table of contents

  1. Prerequisite
  2. Installation
  3. How to run Maude-SE

We provide Python wheels for Maude-SE through our GitHub repository. Please visit https://github.com/maude-se/maude-se/releases/tag/v0.0.1 and download. The followings are the currently available wheels provided on the release page.

FileDescription
maude_se-0.0.1-cp38-cp38-linux_x86_64.whlA Python 3.8 wheel of Maude-SE for Linux
maude_se-0.0.1-cp39-cp39-linux_x86_64.whlA Python 3.9 wheel of Maude-SE for Linux
maude_se-0.0.1-cp310-cp310-linux_x86_64.whlA Python 3.10 wheel of Maude-SE for Linux
maude_se-0.0.1-cp311-cp311-linux_x86_64.whlA Python 3.11 wheel of Maude-SE for Linux
maude_se-0.0.1-cp312-cp312-linux_x86_64.whlA Python 3.12 wheel of Maude-SE for Linux
maude_se-0.0.1-cp38-cp38-macosx_14_0_arm64.whlA Python 3.8 wheel of Maude-SE for MacOS
maude_se-0.0.1-cp39-cp39-macosx_14_0_arm64.whlA Python 3.9 wheel of Maude-SE for MacOS
maude_se-0.0.1-cp310-cp310-macosx_14_0_arm64.whlA Python 3.10 wheel of Maude-SE for MacOS
maude_se-0.0.1-cp311-cp311-macosx_14_0_arm64.whlA Python 3.11 wheel of Maude-SE for MacOS
maude_se-0.0.1-cp312-cp312-macosx_14_0_arm64.whlA Python 3.12 wheel of Maude-SE for MacOS

We also provide a zip file (maude-se.zip). This file contains examples and an installation script. The structure of the zip file is as follows.

FileDescription
requirements.txtA list of required Python packages for MaudeSE
api-test.pyExample usages of the Maude-SE Python API
api-test.maudeA Maude file used by api-test.py
smt-check-ex.maudeA Maude file containing examples for metaSmtCheck function
smt-search-ex.maudeA Maude file containing examples for metaSmtSearch2 function

Prerequisite

Maude-SE supports various SMT solvers such as Z3, CVC4, CVC5, and Yices. Maude-SE provides connections to their Python bindings. Among these solvers, The Yices Python binding requires the Yices executable to be installed.

Please follow the instructions of https://github.com/SRI-CSL/yices2 to install the Yices executable.

Installation

To install Maude-SE, unzip the maude-se.zip file and go inside the unzipped directory.

~$ unzip maude-se.zip && cd maude-se

Use the following command to install required Python packages for Maude-SE.

~/maude-se$ pip install -r requirements.txt

Install one of the Maude-SE Python wheels.

~/maude-se$ pip install maude_se-0.0.1-cp<YOUR-PYTHON-VERSION>-cp<YOUR-PYTHON-VERSION>-<YOUR-OS>.whl

Type the following command to test successful installation.

~/maude-se$ maude-se -h

If the installation was successful, you can see the following message.

usage: maude-se [-h] [-s [SOLVER]] [-no-meta] [file]

positional arguments:
  file                  input Maude file

options:
  -h, --help            show this help message and exit
  -s [SOLVER], -solver [SOLVER]
                        set an underlying SMT solver
                        * Supported solvers: {z3,yices,cvc5}
                        * Usage: -s cvc5
                        * Default: -s z3
  -no-meta              no metaInterpreter

We built and tested Maude-SE on Ubuntu 20.04 and on M1 MacBook Pro.

How to run Maude-SE

You are now ready to run Maude-SE using the main script maude-se. The script takes an input Maude file and executes it. For example, you can run the example file smt-check-ex.maude with yices solver using the following command.

~/maude-se$ maude-se ./smt-check-ex.maude -s yices

The Maude-SE Python package contains smt-check.maude which includes two meta-level functions: metaSmtCheck and metaSmtSearch2. The metaSmtCheck function can check the satisfiability of SMT queries, as similar to metaCheck, but it can handle various theories (with uninterpreted functions) and generate satisfying assignments. The metaSmtSearch2 function can perform search using rewriting modulo SMT, similar to metaSmtSearch, but supports folding.

Currently, we do not support metaSimplify. We will update this later.