Published 2025
| Version v2
Software
Restricted
Iris
Authors/Creators
Description
Artifact for Security 2026 Submission#741
Table of Contents
- Background
- Install
- Usage
Background
Iris is a validation tool designed for Optimization Modulo Theories (OMT) solvers, such as Z3 and OptiMathSAT. It enables users to validating OMT solvers by transforming existing SMT files, parallelizing solver runs for multiple files, and experimenting with different theories.
Install
Pre-requisites: Ensure your system has the following dependencies installed for Iris to operate smoothly:
1. Python Packages: Certain functionalities of Aries require specific Python package. Install it via:
pip install antlr4-python3-runtime==4.9.2
2. Solvers: Direct interaction with the solvers is a cornerstone of Iris' testing process. Please build the solvers you wish to test, such as Z3 and OptiMathSAT, as per their installation manuals.
3. SMT-LIB: Iris performs mutations on seed files to unearth bugs. These seeds can be generated by ET.
Usage
Iris is executed via the command line with the following structure:
- Navigate to Aries's source directory:
cd Iris-v1.0/src
- To start validating with a solver, execute:
python3 __main__.py --seed_dir <path_to_seed_files> --solver <z3|optimathsat>\
--solver_bin <path_to_solver_executable> --temp_dir <path_to_temp_directory>\
--theory <int|real> --core_num <number_of_cores>
For example:
To run Iris with Z3, using a sample directory and 4 CPU cores:
python3 __main__.py --seed_dir samples/ --solver z3\
--solver_bin /usr/local/bin/z3 --temp_dir ./temp --theory int --core_num 4