Published 2025 | Version v2
Software Restricted

Iris

Authors/Creators

Description

Artifact for ASPLOS 2026 Submission#135

 

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, including Integer and Real. 

 

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. <a href="https://zenodo.org/account/settings/login?next=https://zenodo.org/records/15025529">Log in</a> to check if you have access.