Published 2025 | Version v2

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