Lazy but effective functional synthesis

Grigory Fedyukovich, Arie Gurfinkel, Aarti Gupta

Research output: Chapter in Book/Report/Conference proceedingConference contribution

15 Scopus citations

Abstract

We present a new technique for generating a function implementation from a declarative specification formulated as a (Formula presented)-formula in first-order logic. We follow a classic approach of eliminating existential quantifiers and extracting Skolem functions for the theory of linear arithmetic. Our method eliminates quantifiers lazily and produces a synthesis solution in the form of a decision tree. Compared to prior approaches, our decision trees have fewer nodes due to deriving theory terms that can be shared both within a single output as well as across multiple outputs. Our approach is implemented in a tool called AE-VAL, and its evaluation on a set of reactive synthesis benchmarks shows promise.

Original languageEnglish (US)
Title of host publicationVerification, Model Checking, and Abstract Interpretation - 20th International Conference, VMCAI 2019, Proceedings
EditorsRuzica Piskac, Constantin Enea
PublisherSpringer Verlag
Pages92-113
Number of pages22
ISBN (Print)9783030112448
DOIs
StatePublished - 2019
Event20th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2019 - Cascais, Portugal
Duration: Jan 13 2019Jan 15 2019

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume11388 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other20th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2019
Country/TerritoryPortugal
CityCascais
Period1/13/191/15/19

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'Lazy but effective functional synthesis'. Together they form a unique fingerprint.

Cite this