Summer Research, Honours/Master Thesis Project Topics

1. Beyond SMT Solving

Parallel Bit-Vector Optimizations

Optimization Modulo Theory (OMT) is an extension of SMT, which is used for checking the satisfiability of logical formulas with respect to background theories such as arithmetic, arrays, and bit vectors. OMT extends SMT by adding optimization capabilities, enabling it to find solutions that minimize or maximize a given objective function.

Here, we are interested in OMT(BV) problems, where the solution space is characterized by a quantifier-free bit-vector formula. Please refer to arlib/bv/bvopt.py for single-objective and multi-objectives optimization.

(In some algorithms, we may reduce a single-objective optimization problem to a special multi-objectives optimization problem (e.g., “Bit-vector optimization, TACAS’16”))

Bit-Vector Interpolation

Given two contradictory formulas A and B, a Craig interpolant I is a formula that satisfies the following conditions: - I is a logical consequence of A. - I and B are contradictory - I contains only the variables that are common to A and B.

Please refer to arlib/bv/bvitp.py.

Bit-Vector Model Counting

Model counting is the problem of determining the number of possible solutions (models) to a given formula.

Refer to arlib/bv/bv_counting.

Bit-Vector Model Sampling

Given a satisfiable formula P, how to generate multiple and diverse solutions P?

Parallel CDCL(T) Solving

Develop parallel algorithms for Conflict-Driven Clause Learning with theories. Focus on efficient work distribution and conflict clause sharing across multiple threads.

Refer to arlib/smt/pcdclt.

Symbolic Abstraction and Refinement

Investigate predicate abstraction techniques and counterexample-guided abstraction refinement (CEGAR). Applications include program verification and model checking.

Refer to arlib/symabs.

2. SMT Solving for Specific Theories

SMT Solving for String Constraints

(We have an idea about parallel string constraint solving)

SMT Solving for Galois Field

A Galois Field, also known as a finite field, is a mathematical structure that consists of a finite set of elements and two operations, typically addition and multiplication. Galois Fields are used in many areas of mathematics, computer science, and engineering, such as coding theory, cryptography, and digital signal processing.

Refer to arlib/smt/ff.

SMT Solving for Exists-Forall Problems over Bit-Vectors

SMT Solving for Floating-Point Arithmetic

Develop efficient decision procedures for IEEE 754 floating-point constraints. Focus on rounding modes, special values (NaN, infinity), and precision handling.

Refer to arlib/smt/fp.

3. Learning and AI-Enhanced Reasoning

LLM-Driven Constraint Solving

Integrate large language models to guide SMT solver heuristics and strategy selection. Explore neural-symbolic approaches for automated reasoning.

Refer to arlib/llm/smto.

Automata Learning for Constraint Solving

Apply active learning techniques to infer finite automata and symbolic finite automata. Applications in string constraint solving and program verification.

Refer to arlib/automata.

LLM-Based Abductive Reasoning

Use language models to generate explanations and hypotheses for observed constraints. Focus on debugging and root cause analysis in constraint systems.

Refer to arlib/llm/abduct.

4. Advanced Sampling and Enumeration

Uniform Sampling for Linear Integer Arithmetic

Develop algorithms for generating uniformly distributed solutions over linear integer constraints. Applications in testing and probabilistic verification.

Refer to arlib/sampling/linear_ira.

Non-Linear Real Arithmetic Sampling

Efficient sampling techniques for polynomial constraints over real numbers. Focus on volume computation and density estimation.

Refer to arlib/sampling/nonlinear_ira.

All-SMT and Solution Enumeration

Enumerate all satisfying assignments or a diverse subset of solutions. Applications in combinatorial optimization and test case generation.

Refer to arlib/allsmt.

5. Quantifier Reasoning

Quantifier Elimination for Mixed Theories

Develop efficient QE procedures for combinations of arithmetic, bit-vectors, and arrays. Focus on applications in program verification and synthesis.

Refer to arlib/quant/qe.

E-Matching and Instantiation Strategies

Improve quantifier instantiation in SMT solvers through better pattern matching and trigger selection heuristics.

Refer to arlib/quant/ematching.

Constrained Horn Clause Solving

Develop scalable algorithms for solving systems of constrained Horn clauses. Applications in program verification and invariant synthesis.

Refer to arlib/quant/chctools.

References