How To Make SMT?

Define the SMT problem and constraints

Choose the SMT logic to use

Encode the problem into formulas

Convert formulas into suitable normal form if needed

Build or select a SAT solver

Build or select a theory solver

Integrate SAT and theory solving

Implement Boolean abstraction of theory atoms

Add conflict detection in the theory solver

Add theory propagation in the theory solver

Add conflict clauses from theory conflicts

Add theory lemmas to the SAT solver

Implement decision heuristics

Implement backtracking and clause learning

Implement consistency checking between solvers

Test on benchmark SMT instances

Optimize performance and memory usage

Validate correctness against known results

Suggested for You

Trending Today