Program Verification with EFMC
This page introduces the current EFMC verification workflow in ARIA.
Setup
Install ARIA locally:
git clone https://github.com/ZJU-PL/aria
cd aria
pip install -e .
Then inspect the verifier CLI:
aria-efmc --help
python -m aria.cli.efmc_cli --help
Supported frontends
The main EFMC CLI currently works with frontends such as:
CHC
SyGuS
Boogie
C-oriented frontend workflows
Supported engines
Current engine families exposed by the verifier include:
ef: template-based invariant synthesispdr: Property-Directed Reachabilitykind: k-inductionqe/qi: quantifier-based verification pathshoudini: conjunctive invariant pruningabduction: abductive invariant generationbdd: BDD-based verificationpredabs: predicate abstractionsymabs: symbolic abstractionllm4inv: LLM-guided invariant synthesis
Typical commands
aria-efmc --lang chc --engine ef --file program.smt2
aria-efmc --lang chc --engine pdr --file program.smt2
aria-efmc --lang chc --engine kind --file program.smt2
aria-efmc --lang chc --engine symabs --symabs-domain interval --file program.smt2
aria-efmc --lang chc --engine llm4inv --file program.smt2
Results
The verifier generally reports one of:
safeunsafeunknown
Notes
Exact option sets evolve with the verifier. For concrete workflows and current
flags, prefer aria-efmc --help and the parser definitions in
aria/cli/efmc_cli.py.