Constraint Solving for Finite Model Finding in SMT Solvers

Andrew Reynolds, Cesare Tinelli,
Department of Computer Science, The University of Iowa
Clark Barrett,
Department of Computer Science, Stanford University


SMT solvers have been used successfully as reasoning engines for automated verification and other applications based on automated reasoning. Current techniques for dealing with quantified formulas in SMT are generally incomplete, forcing SMT solvers to report “unknown” when they fail to prove the unsatisfiability of a formula with quantifiers. This inability to return counter-models limits their usefulness in applications that produce queries involving quantified formulas. In this paper, we reduce these limitations by integrating finite model finding techniques based on constraint solving into the architecture used by modern SMT solvers. This approach is made possible by a novel solver for cardinality constraints, as well as techniques for on-demand instantiation of quantified formulas. Experiments show that our approach is competitive with the state of the art in SMT, and orthogonal to approaches in automated theorem proving.

PDF Version

journal = {Theory and Practice of Logic Programming},
publisher = {Cambridge University Press},
author = {Andrew Reynolds and Cesare Tinelli and Clark Barrett},
title = {Constraint Solving for Finite Model Finding in SMT Solvers},
note = {Special Issue on New Trends of Constraint Logic Programming},
editor= {Agostino Dovier},
volume = {17},
number = {4},
year = {2017},
pages = {516-558}