Formulog: Datalog for SMT-Based Static Analysis (Extended Version)

09/17/2020
by   Aaron Bembenek, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/15/2023

Satisfiability.jl: Satisfiability Modulo Theories in Julia

Satisfiability modulo theories (SMT) is a core tool in formal verificati...
research
09/17/2018

FormuLog: Datalog for static analysis involving logical formulae

Datalog has become a popular language for writing static analyses. Becau...
research
12/06/2021

Configuration Space Exploration for Digital Printing Systems

Within the printing industry, much of the variety in printed application...
research
08/26/2019

CLS-SMT: Bringing Together Combinatory Logic Synthesis and Satisfiability Modulo Theories

We introduce an approach that aims to combine the usage of satisfiabilit...
research
08/12/2021

Automating System Configuration

The increasing complexity of modern configurable systems makes it critic...
research
03/13/2021

Proving and Disproving Programs with Shared Mutable Data

We present a tool for verification of deterministic programs with shared...
research
10/12/2021

Toward SMT-Based Refinement Types in Agda

Dependent types offer great versatility and power, but developing proofs...

Please sign up or login with your details

Forgot password? Click here to reset