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

Files

Restricted

The record is publicly accessible, but files are restricted to users with access.