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.
- ATVA 2025 / arXiv 2024: PolyQEnt: A Polynomial Quantified Entailment Solver. Krishnendu Chatterjee, Amir Kafshdar Goharshady, Ehsan Kafshdar Goharshady, Mehrdad Karrabi, Milad Saadat, Maximilian Seeliger, and Đorđe Žikelić.
- ICSE 2024: Enabling Runtime Verification of Causal Discovery Algorithms with Automated Conditional Independence Reasoning. Pingchuan Ma, Zhenlan Ji, Peisen Yao, Shuai Wang, and Kui Ren.
- ICSE 2023: Verifying Data Constraint Equivalence in FinTech Systems. Chengpeng Wang, Gang Fan, Peisen Yao, Fuxiong Pan, and Charles Zhang.
- OOPSLA 2021: Program Analysis via Efficient Symbolic Abstraction. Peisen Yao, Qingkai Shi, Heqing Huang, and Charles Zhang.
Honors & Awards
Related Work
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyaria-0.2.0.tar.gz | 2.5 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.