Skip to content

laigroup/HighDiv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HighDiv: SMT(LIA) Sampling with High Diversity

HighDiv is a bidirectionally guided iterative sampling framework that combines CDCL(T) and local search to enable high-diversity sampling for SMT(LIA) formulas. This repository contains the implementation of HighDiv, the benchmark instances used in the experiments, and the corresponding experimental results.

Instructions for Building HighDiv

The instructions of seting up HighDiv and validate its general functionality are described in the INSTALL.md file.

Instructions for Running HighDiv

After building HighDiv, users may run it with the following command:

./HighDiv -i [INSTANCE_PATH] -o [OUTPUT_TESTCASE_PATH] -n [NUMBER_OF_SAMPLES] -t [TIME_LIMIT] -s [RANDOM SEED] -l [HIGH_FREQUENCY_THRESHOLD]

For the required parameters, we list them as follows.

Parameter Allowed Values Description
-i String Path to the input SMT instance
-o String Path to the output solutions generated by HighDiv

As mentioned above, -i is one of the required parameter and the input file for HighDiv must be in SMTLIB2. The directory named LIA_bench contains 7 testing instances, which can be taken as input.

For the optional parameters, we list them as follows.

Parameter Allowed Values Default Value Description
-s Integer 0 Random seed
-n Positive integer 1000 Required Number of Samples
-l Positive integer 50 High-frequency variable threshold
-t Float (in seconds) 900 Time limit

Example Command for Running HighDiv

./HighDiv -i LIA_bench/LIA_Bromberger_CAV_2009_30-vars_problem__026.smt2.slack.smt2 -o samples

Implementation of HighDiv

The HighDiv/src/ directory contains the core implementation and structural overview of HighDiv, while z3/src/sampler/ contains the implementation of Context-Constrained Stochastic Search (CCSS).

Testing Benchmarks for Evaluating HighDiv

The directory named benchmarks/ contains all 345 instances.

Experimental Results

The directory results/ contains 3 sub-directories for presenting the experimental results.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published