scispace - formally typeset
Journal ArticleDOI

Template-based program verification and program synthesis

TLDR
This work shows how to reduce the template-based search problem to satisfiability solving, which permits the use of off-the-shelf solvers to efficiently explore the search space.
Abstract
Program verification is the task of automatically generating proofs for a program’s compliance with a given specification. Program synthesis is the task of automatically generating a program that meets a given specification. Both program verification and program synthesis can be viewed as search problems, for proofs and programs, respectively. For these search problems, we present approaches based on user-provided insights in the form of templates. Templates are hints about the syntactic forms of the invariants and programs, and help guide the search for solutions. We show how to reduce the template-based search problem to satisfiability solving, which permits the use of off-the-shelf solvers to efficiently explore the search space. Template-based approaches have allowed us to verify and synthesize programs outside the abilities of previous verifiers and synthesizers. Our approach can verify and synthesize difficult algorithmic textbook programs (e.g., sorting and dynamic programming-based algorithms) and difficult arithmetic programs.

read more

Citations
More filters
Proceedings ArticleDOI

Synthesizing data structure transformations from input-output examples

TL;DR: A method for example-guided synthesis of functional programs over recursive data structures given a set of input-output examples that synthesizes a program in a functional language with higher-order combinators like map and fold.
Book ChapterDOI

Counterexample-Guided Quantifier Instantiation for Synthesis in SMT

TL;DR: This work introduces the first program synthesis engine implemented inside an SMT solver, and presents an approach that extracts solution functions from unsatisfiability proofs of the negated form of synthesis conjectures.
Journal ArticleDOI

Search-based program synthesis

TL;DR: A promising, useful tool for future programming development environments, and a good candidate for inclusion in the next generation of professional development environments.
Proceedings ArticleDOI

Synthesizing transformations on hierarchically structured data

TL;DR: A new approach for synthesizing transformations on tree-structured data, such as Unix directories and XML documents, is presented and it is shown that HADES can automatically synthesize a variety of interesting transformations collected from online forums.
Journal ArticleDOI

Algorithmic program synthesis: introduction

TL;DR: In this introduction to the special journal issue, the history of algorithmic program synthesis is surveyed, the field is divided into reactive synthesis, concerned with automata-theoretic techniques for controllers that handle an infinite stream of requests, and functional synthesis, which produces programs consuming finite input.
References
More filters
Book

Introduction to Algorithms

TL;DR: The updated new edition of the classic Introduction to Algorithms is intended primarily for use in undergraduate or graduate courses in algorithms or data structures and presents a rich variety of algorithms and covers them in considerable depth while making their design and analysis accessible to all levels of readers.
Book

Theory of Linear and Integer Programming

TL;DR: Introduction and Preliminaries.
Proceedings ArticleDOI

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Journal ArticleDOI

Introduction to algorithms: 4. Turtle graphics

TL;DR: In this article, a language similar to logo is used to draw geometric pictures using this language and programs are developed to draw geometrical pictures using it, which is similar to the one we use in this paper.
Related Papers (5)