arXiv · 1905.09423
Set Constraints, Pattern Match Analysis, and SMT
Abstract
Set constraints provide a highly general way to formulate program analyses. However, solving arbitrary boolean combinations of set constraints is NEXPTIME-hard. Moreover, while theoretical algorithms to solve arbitrary set constraints exist, they are either too complex to realistically 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 set constraints, and leverages the performance of modern SMT solvers. To show the usefulness of unrestricted set constraints, we use them to devise a pattern match analysis for functional languages, which ensures that missing cases of pattern matches are always unreachable. We implement our analysis in the Elm compiler and show that our translation is fast enough to be used in practical verification.
Explore related subjects
Keep this discovery
Joseph Eremondi. 2019-05-23. Set Constraints, Pattern Match Analysis, and SMT. https://arxiv.org/abs/1905.09423
Cite the original work for its findings. Save a collection to share your selection of sources.