Welcome to aria’s Documentation!
Introduction
ARIA (Automated Reasoning Infrastructure & Applications) is a Python toolkit and research playground for automated reasoning. The repository combines libraries, CLI tools, and research prototypes across SAT/SMT solving, quantified reasoning, model counting, optimization, theorem proving, program verification, symbolic abstraction, and related experimentation.
Major user-facing areas include:
aria.bool: SAT, MaxSAT, QBF, CNF simplification, and knowledge compilationaria.smt: SMT-oriented theory packages and solver utilities (includingunification,fol)aria.utils.srk: symbolic reasoning infrastructurearia.quant: quantified reasoning, EFSMT, QE, CHC tooling, and prototypesaria.efmc: program verification frontends and enginesaria.counting/aria.sampling/aria.prob: counting, sampling, and probabilistic reasoningaria.pyomt: optimization and MaxSMT/MaxSAT-oriented workflowsaria.smt.fol: first-order logic theorem proving (Miniprover) - now inaria.smt.folaria.util.translator/aria.cli: translators and command-line toolsaria.volumn: volume computation for polytopes
Installing and using aria
Install from source:
git clone https://github.com/ZJU-PL/aria
cd aria
bash setup_local_env.sh
pip install -e .
For a faster local setup with uv:
uv venv
source .venv/bin/activate
uv pip install -e .
Common console commands after installation include:
aria-fmldocaria-mcaria-pyomtaria-efsmtaria-maxsataria-unsat-corearia-allsmtaria-smt-serveraria-efmcaria-efmc-efsmtaria-polyhorn
Documentation map
getting-started: installation notes, quick reference, and tutorialslogic-and-solving: core solver and reasoning packagesproofs-and-explanations: abduction, interpolation, and theorem provingquantified-reasoning: EFSMT, QE, and quantified workflowsverification/abstraction: EFMC engines and abstraction-oriented pagescounting-probability: counting, sampling, and probabilistic reasoningcli-tools: command-line frontends and translator-oriented workflows
Contents:
- Getting Started
- Logic and Solving
- Boolean Reasoning
- SMT Solving
- SMT Solving for Finite Field
- Theory Reference: Finite Fields
- References
- First-Order Logic (FOL)
- Utilities
- SRK Symbolic Reasoning Kit
- Unification
- Introduction
- Components
- Applications
- References
- AllSMT
- Backbone Computation
- UNSAT Core Extraction
- Optimization Modulo Theory
- Knowledge Compilation
- Parallel SMT CDCL(T) Solving
- Modal Logic
- Dissolve (Distributed SAT)
- Three-Valued Logic
- Prime Implicant / Implicate Enumeration
- SAT Instance Feature Extraction
- Boolean Analysis
- CNF Simplification Framework
- Proofs and Explanations
- Quantified Reasoning
- Automata and Languages
- Verification
- Abstraction
- Counting, Sampling, and Probability
- Program Synthesis
- Logic Programming
- LLM and ML
- CLI and Tools
- Global Parameters