Skip to main content

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

Contributors

Primary contributors to this project:

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

Metadata

Release files for pyaria 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyaria 0.2.0
File Size Uploaded Provenance
pyaria-0.2.0.tar.gz 2.5 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyaria 0.2.0
File Interpreter ABI Platform
pyaria-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.0 MB

Release files / pyaria-0.2.0.tar.gz

Download URL pyaria-0.2.0.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
192f3ac6ff2b64cd21d42280f2a444a026e3811f327d819fa94fef54688d65f5
BLAKE2b-256 checksum
How to use checksums
3ab1f04dfb651f488397baf8f1f3d6bcb032cc4280d8d8dfe2416cabe0b4157c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / pyaria-0.2.0-py3-none-any.whl

Download URL pyaria-0.2.0-py3-none-any.whl
Size 3.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3b806e26d18102fc32bf667ab93489e32cec7e92897d1c70aa34e36f7f235473
BLAKE2b-256 checksum
How to use checksums
4b6e22b9f508b291960170db624b6e4fb31e3368043ab2c0141d8cae67d66a1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Security for pyaria 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page