Skip to main content

A library for various automated reasoning tasks including SMT solving, model counting, and symbolic computation.

Project description

ARIA

ARIA (Automated Reasoning Infrastructure & Applications) is a Python toolkit and research playground for automated reasoning. It collects libraries, CLI tools, and research prototypes for SAT/SMT solving, quantified reasoning, theorem proving, program verification, symbolic computation, and benchmark-driven experimentation.

Highlights

  • SAT/SMT, MaxSAT, model counting, optimization, and theorem-proving utilities under a single repository
  • Quantified-reasoning tooling in aria.quant, including EFSMT solvers, quantifier-elimination experiments, CHC tooling, and multiple research artifacts
  • Program-analysis and verification components in aria.efmc, aria.symabs, aria.scsat, and related packages
  • Benchmark corpora, scripts, and reproducible research infrastructure for solver-oriented experimentation

Quantified Reasoning and PolyQEnt Context

The aria.quant area contains several quantified-reasoning prototypes and solver experiments. For the polynomial quantified reasoning line related to PolyQEnt: A Polynomial Quantified Entailment Solver, see aria/quant/polyhorn/README.md.

Local Development Environment

Run the following command to setup the local development environment.

bash setup_local_env.sh

The script will use uv if installed (recommended, much faster); otherwise it will prompt for venv or Conda. It will

  • Create a Python virtual environment if it doesn't exist
  • Install the package and its dependencies (from pyproject.toml)
  • Run unit tests if available

TBD:

  • Test the scripts on different platforms, editors/IDEs, etc.

Install the Library Locally

With uv (recommended; install from https://docs.astral.sh/uv/):

uv venv && source .venv/bin/activate   # or on Windows: .venv\Scripts\activate
uv pip install -e .

With pip (dependencies are read from pyproject.toml):

pip install -e .

Then you can use the CLI tools and the Python API in your own code. Available CLI commands (also as aria-<name> after install): aria-fmldoc, aria-mc, aria-pyomt, aria-efsmt, aria-efmc-efsmt, aria-maxsat, aria-unsat-core, aria-allsmt, aria-smt-server, aria-efmc, aria-polyhorn, aria-pypmt. See aria/cli/README.md for usage and options.

Install from PyPI

pip install aria

Or install the latest development version:

pip install git+https://github.com/ZJU-PL/aria.git

Release the Repo to PyPI

See PyPI Release Guide.

Contributing

Contributions are welcome. Please refer to the repository for detailed instructions on how to contribute.

aria/
├── aria/           # Main library code
├── benchmarks/      # Benchmark files and test cases
├── bin_solvers/     # Binary solver executables
├── docs/            # Documentation files
├── scripts/         # Utility scripts
├── examples/        # A few applications
└── pyproject.toml   # Package config, dependencies, and tool settings

For Summer Research, Final Year Project Topics, please refer to docs/topics.rst or TODO.md.

Documentation

We release the docs here: https://zju-pl.github.io/aria

Another doc generated by DeepWiki

For quantified-reasoning-specific notes, see aria/quant/README.md.

Publications

Here are some of publications related to ARIA.

Honors & Awards

Related Work

Contributors

Primary contributors to this project:

  • rainoftime / cutelimination
  • JasonJ2021
  • ZelinMa557
  • Harrywwq
  • little-d1d1
  • ljcppp
  • GooduckZ
  • Zahrinas

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyaria-0.2.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyaria-0.2.0-py3-none-any.whl (3.5 MB view details)

Uploaded Python 3

File details

Details for the file pyaria-0.2.0.tar.gz.

File metadata

  • Download URL: pyaria-0.2.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyaria-0.2.0.tar.gz
Algorithm Hash digest
SHA256 192f3ac6ff2b64cd21d42280f2a444a026e3811f327d819fa94fef54688d65f5
MD5 2424ee6a439c26210689e396b0053d7b
BLAKE2b-256 3ab1f04dfb651f488397baf8f1f3d6bcb032cc4280d8d8dfe2416cabe0b4157c

See more details on using hashes here.

File details

Details for the file pyaria-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyaria-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyaria-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b806e26d18102fc32bf667ab93489e32cec7e92897d1c70aa34e36f7f235473
MD5 27df3703e21625105cca145bf2d813d5
BLAKE2b-256 4b6e22b9f508b291960170db624b6e4fb31e3368043ab2c0141d8cae67d66a1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page