Lune

OOPSLA2020Top-tier venue

Formulog: Datalog for SMT-based static analysis

Aaron Bembenek, Michael Greenberg, Stephen Chong

2020Year
26Citations
15Top-tier citations

Abstract

Satisfiability modulo theories (SMT) solving has become a critical part of many static analyses, including symbolic execution, refinement type checking, and model checking. We propose Formulog, a domain-specific language that makes it possible to write a range of SMT-based static analyses in a way that is both close to their formal specifications and amenable to high-level optimizations and efficient evaluation.

Formulog extends the logic programming language Datalog with a first-order functional language and mechanisms for representing and reasoning about SMT formulas; a novel type system supports the construction of expressive formulas, while ensuring that neither normal evaluation nor SMT solving goes wrong. Our case studies demonstrate that a range of SMT-based analyses can naturally and concisely be encoded in Formulog, and that Ð thanks to this encoding Ð high-level Datalog-style optimizations can be automatically and advantageously applied to these analyses.

CCS Concepts: • Software and its engineering → Automated static analysis; Domain specific languages; Constraint and logic languages.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 92af62a7-2f77-4165-8a04-a9cda8371eb2

Cited by top-tier papers15

Ask how each one uses it

Builds on3

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines