img-logoInria img-logoProveandRun


Conference Runtime Verification 2013 (RV'13)

Invited talk 1

img-ITP2013DominiqueBolignano Viktor Kuncak

Leader of the research group LARA

(Lab for Automated Reasoning and Analysis)

Wednesday, September 25th

Executing Specifications using Synthesis and Constraint Solving

(duration: 65:21)


Specifications are key to improving software reliability as well as documenting precisely the intended behavior of software. Writing specifications is still perceived as expensive. Of course, writing implementations is at least as expensive, but is hardly questioned because there is currently no real alternative. Our goal is to give specifications a more balanced role compared to implementations, enabling the developers to compile, execute, optimize, and verify against each other mixed code fragments containing both specifications and implementations. To make specification constructs executable we combine deductive synthesis with run-time constraint solving, in both cases leveraging modern SMT solvers. Our tool decomposes specifications into simpler fragments using a cost-driven deductive synthesis framework. It compiles as many fragments as possible into conventional functional code; it executes the remaining fragments by invoking our constraint solver that extends an SMT solver to handle recursive functions. Using this approach we were able to execute constraints that describe the desired properties of integers, sets, maps and algebraic data types.

img-logoPDF Les transparents