Set Constraints, Pattern Match Analysis, and SMT

05/23/2019
by   Joseph Eremondi, et al.
0

Set constraints provide a highly general way to formulate program analyses. However, solving arbitrary boolean combinations of set constraints is NEXPTIME-complete. Moreover, while theoretical algorithms to solve arbitrary set constraints exist, they are either too complex to implement, or too slow to ever run. We present a translation that converts a set constraint formula into an SMT problem. Our technique allows for arbitrary boolean combinations of positive or negative set constraints, and leverages the performance of modern solvers such as Z3. To show the usefulness of unrestricted set constraints, we use them to devise a pattern match analysis for functional languages. This analysis ensures that missing cases of pattern matches are always unreachable. We implement our analysis in the Elm compiler and show that the our translation is fast enough to be used in practical verification.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/17/2010

On the CNF encoding of cardinality constraints and beyond

In this report, we propose a quick survey of the currently known techniq...
research
11/03/2014

Approximate Counting in SMT and Value Estimation for Probabilistic Programs

#SMT, or model counting for logical theories, is a well-known hard probl...
research
04/13/2020

Detecting Critical Bugs in SMT Solvers Using Blackbox Mutational Fuzzing

Formal methods use SMT solvers extensively for deciding formula satisfia...
research
09/09/2019

Structural and semantic pattern matching analysis in Haskell

Haskell functions are defined as a series of clauses consisting of patte...
research
09/17/2016

Solving the Wastewater Treatment Plant Problem with SMT

In this paper we introduce the Wastewater Treatment Plant Problem, a rea...
research
04/15/2018

SMT Solving for Vesicle Traffic Systems in Cells

In biology, there are several questions that translate to combinatorial ...
research
06/05/2017

QuickCSG: Fast Arbitrary Boolean Combinations of N Solids

QuickCSG computes the result for general N-polyhedron boolean expression...

Please sign up or login with your details

Forgot password? Click here to reset