Translator Module
aria.utils.translator contains format converters between common automated-reasoning
input languages and downstream solver encodings.
Current scope
The current translator package includes:
CNF / propositional
dimacs2smt.py: DIMACS CNF to SMT-LIB2cnf2smt.py: CNF to SMT-LIB2 encodingcnf2lp.py: CNF to linear-programming style outputsmt2dimacs.py: SMT-LIB propositional fragment to DIMACSopb2smt.py: OPB / WBO-style pseudo-Boolean constraints to SMT-LIB2wcnf2z3.py: weighted CNF to Z3 optimizationwcnf2smt.py: weighted CNF / MaxSAT text to SMT-LIB2 with soft constraints
QBF
qbf2smt.py: QBF to SMT-LIB2qcir2smt.py: QCIR to SMT-LIB2
SMT-LIB and symbolic targets
smt2c.py: SMT-LIB to C code generationsmt2sympy.py: SMT-LIB to SymPy expressions
SyGuS and FlatZinc
sygus2smt.py: SyGuS to SMT-LIB2fzn2omt/: FlatZinc-to-OMT translators and model adapters
Shared infrastructure
registry.py: translator capability registry used by the CLIparsing.py: shared parsing adapters
Programmatic usage
from aria.utils.translator import dimacs2smt
dimacs2smt.convert_file("input.cnf", "output.smt2")
CLI access
The registry-backed command-line frontend is aria.cli.fmldoc_cli:
aria-fmldoc translate -i input.cnf -o output.smt2
python -m aria.cli.fmldoc_cli formats
Current CLI support covers DIMACS, QDIMACS, QCIR, OPB, WCNF, SyGuS, and selected SMT-LIB2 conversions.
Notes
The OPB translator supports weighted constraints, soft: headers,
min/max objectives, richer comparators, and product terms by emitting either
QF_LIA or QF_NIA SMT-LIB2 as needed.