Published 2025
| Version v2
Software
Open
Chimera
Authors/Creators
Description
Artifact for ASPLOS26 Submission #3486
Table of Contents
- Background
- Install
- Usage
- Outputs
Background
Chimera utilizes LLM‑synthesized generators to fuzz SMT solvers.
It mutates SMT‑LIB seed formulas and differentially compares solver results to bugs. Seeds can be provided by the user; a default corpus is included under bug_triggering_formulas/.
Install
Pre-requisites: Ensure your system has the following dependencies installed for Chimera to operate smoothly:
1. Python 3.8+
2. Python Packages: Certain functionalities of Chimera require specific Python package. Install it via:
pip install antlr4-python3-runtime==4.9.2
3. Solvers: Please build the solvers you wish to test, such as Z3 and cvc5, as per their installation manuals.
Usage
Quick start (from the repository root):
- Differential testing Z3 vs. cvc5 with the bundled seeds:
python3 chimera.py --solver1 z3 --solverbin1 /path/to/z3 --solver2 cvc5 --solverbin2 /path/to/cvc5 --bugs ./bug_triggering_formulas --option default
Make sure to modify the paths and parameters to fit your specific setup requirements.
Flags:
- --solver1 / --solverbin1: First solver name and binary path (e.g., z3, /usr/bin/z3).
- --solver2 / --solverbin2: Second solver name and binary path (e.g., cvc5, /usr/bin/cvc5).
- --bugs: Directory of seed SMT‑LIB v2 formulas (default: bug_triggering_formulas/).
OutPuts
Quick start (from the repository root):
- Per‑run working directory: YYYY‑MM‑DD‑HH‑MM‑SS/
- Triaged bugs under temp/:
- temp/crash/<N>/
- temp/InvalidModel/<N>/
- temp/soundness/<N>/
Files
chimera.zip
Files
(3.4 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:8e17e375637a51d41c6442b5e1539628
|
3.4 MB | Preview Download |