Research Topics and Thesis Projects

Arlib offers numerous opportunities for research and thesis projects across multiple areas of automated reasoning.

Core Algorithm Development

Parallel CDCL(T) Solving (arlib/smt/pcdclt)

Develop parallel algorithms for conflict-driven clause learning with theory reasoning. Focus on work distribution, clause sharing, and portfolio solving.

Optimization Modulo Theory (arlib/optimization)

Extend SMT solving with optimization capabilities. Implement algorithms for OMT over bit-vectors, arithmetic, and mixed theories.

Advanced Model Counting (arlib/counting)

Improve counting algorithms for Boolean, arithmetic, and quantifier-free bit-vector formulas. Focus on scalability and approximation techniques.

Symbolic Abstraction (arlib/symabs)

Develop new abstraction techniques for infinite state systems. Implement counterexample-guided abstraction refinement (CEGAR).

Theory-Specific Solving

Finite Field SMT (arlib/smt/ff)

Build decision procedures for Galois field constraints. Applications in cryptography and coding theory.

Floating-Point Arithmetic (arlib/smt/fp)

Develop efficient solvers for IEEE 754 floating-point constraints with proper handling of rounding modes and special values.

String Constraint Solving

Extend string theory support with automata-based techniques. Implement length constraints and regular language operations.

AI-Enhanced Reasoning

LLM-Driven Constraint Solving (arlib/llm)

Integrate large language models to guide solver heuristics, strategy selection, and formula preprocessing.

Machine Learning for Solvers (arlib/ml)

Extract features for learned solver selection, clause learning prediction, and variable ordering heuristics.

Automata Learning (arlib/automata)

Apply active learning to infer automata from examples for string constraint solving and program verification.

Advanced Sampling & Enumeration

Uniform Sampling (arlib/sampling)

Develop algorithms for uniform solution sampling over complex constraint domains. Applications in probabilistic verification.

AllSMT Algorithms (arlib/allsmt)

Enumerate all solutions efficiently. Focus on diversity metrics and incremental solving techniques.

Solution Space Analysis

Implement tools for analyzing solution spaces, including backbone computation and minimal unsatisfiable core extraction.

Quantifier Handling

Quantifier Elimination (arlib/quant/qe)

Develop QE procedures for mixed theories combining arithmetic, bit-vectors, and arrays.

E-Matching Optimization (arlib/quant/ematching)

Improve quantifier instantiation through better pattern matching and trigger selection.

CHC Solving (arlib/quant/chctools)

Scale algorithms for constrained Horn clause solving. Applications in program verification and synthesis.

Applications & Tools

Interactive Theorem Proving (arlib/itp)

Build proof assistant tools with support for multiple theories and automated proof search.

Program Synthesis (arlib/synthesis)

Implement syntax-guided synthesis techniques for bit-vectors, arithmetic, and string domains.

Abductive Reasoning (arlib/abduction)

Develop algorithms for generating explanations and hypotheses from constraint observations.

Getting Started

Each module includes examples and documentation. Start with arlib/allsmt for basic usage patterns, then explore specialized areas based on your interests.