Professor Cesare Tinelli
University of Iowa

CLASS LECTURE I: A Taste of SMT

Abstract: Many problems in computer science can be reduced to checking the satisfiability of a formula in some formal logic. A large subclass of these problems can be naturally formulated as the problem of checking the satisfiability of a first-order formula with respect to, or modulo, some logical theory T of interest. Satisfiability Modulo Theories (SMT) is characterized by the use of inference methods that are highly specialized for each theory T. These methods can be implemented in solvers that are more efficient in practice than general-purpose automated reasoners. SMT solvers have been used successfully in several application areas, such as hardware and software verification, automated test case generation, security, and planning.

This talk will give an overview of SMT and its applications, and describe a few examples with the aid of the CVC4 solver. CVC4 is a widely used open-source SMT solver, jointly developed at New York University and the University of Iowa, that supports a rich set of theories including the theory of arrays, bit vectors, linear integer and real arithmetic, algebraic data types, and strings.

CLASS LECTURE II: An Efficient Solver for string and regular expression constraints

Abstract: An increasing number of applications in verification and security rely on or could benefit from automatic solvers that can check the satisfiability of constraints over a rich set of data types that includes character strings. Unfortunately, most string solvers today are standalone tools that can reason only about (some fragment) of the theory of strings and regular expressions, sometimes with strong restrictions on the expressiveness of their input language. These solvers are based on reductions to satisfiability problems over other data types, such as bit vectors, or to automata decision problems. We present a set of algebraic techniques for solving constraints over the theory of unbounded strings natively, without a reduction to other problems. These techniques can be used to integrate string reasoning into general solvers for satisfiability modulo theories (SMT). We have implemented them in our SMT solver CVC4 to expand its already large set of built-in theories to a theory of strings with concatenation, length, and membership in regular languages. Our initial experimental results show that, in addition, over pure string problems, CVC4 is highly competitive with specialized string solvers with a comparable input language

Biographical information: Cesare Tinelli is a professor of Computer Science and collegiate scholar at the University of Iowa. He received a PhD in Computer Science from the University of Illinois at Urbana-Champaign in 1999. His research interests include automated reasoning, formal methods, software verification, foundations of programming languages, and applications of logic in computer science.

He has done seminal work in automated reasoning, in particular in Satisfiability Modulo Theory (SMT), a field he helped establish through his research and service activities. He leads the development of the Kind 2 SMT-based model checker, and co-leads the development of the widely used CVC4 SMT solver. He is also a founder and coordinator of the SMT-LIB initiative, an international effort aimed at standardizing benchmarks and I/O formats for SMT solvers. His research has been funded both by governmental agencies (AFOSR, AFRL, DARPA, NASA, and NSF) and corporations (Intel, Rockwell Collins, and United Technologies). He received an NSF CAREER award in 2003 and a Haifa Verification Conference award in 2010. He is an associate editor of the Journal of Automated Reasoning and a founder the SMT workshop series and the Midwest Verification Day series. He has served in the program committee of numerous conferences and workshops, as well as the steering committee of CADE, ETAPS, FTP, FroCoS, IJCAR, and SMT. He was the PC chair of FroCoS'11 and will co-chair TACAS'15.