kirancodes.me
To Proof Maintenance & Beyond!

Just fuzz it: solving floating-point constraints using coverage-guided fuzzing

Daniel Liew, Cristian Cadar, Alastair F. Donaldson, J. Ryan Stinnett

Abstract

We investigate the use of coverage-guided fuzzing as a means of proving satisfiability of SMT formulas over finite variable domains, with specific application to floating-point constraints. We show how an SMT formula can be encoded as a program containing a location that is reachable if and only if the program’s input corresponds to a satisfying assignment to the formula. A coverage-guided fuzzer can then be used to search for an input that reaches the location, yielding a satisfying assignment. We have implemented this idea in a tool, Just Fuzz-it Solver (JFS), and we present a large experimental evaluation showing that JFS is both competitive with and complementary to state-of-the-art SMT solvers with respect to solving floating-point constraints, and that the coverage-guided approach of JFS provides significant benefit over naive fuzzing in the floating-point domain. Applied in a portfolio manner, the JFS approach thus has the potential to complement traditional SMT solvers for program analysis tasks that involve reasoning about floating-point constraints.

BibTeX
@inproceedings{Liew-al:FSE19,
  author    = {Daniel Liew and
               Cristian Cadar and
               Alastair F. Donaldson and
               J. Ryan Stinnett},
  title     = {Just fuzz it: solving floating-point constraints using coverage-guided fuzzing},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {521--532},
  publisher = {{ACM}},
  year      = {2019},
}

Related papers