Skip to main content

Abstraction-Guided Synthesis

  • Conference paper
  • 1246 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7737))

Abstract

Given a program P, a specification S, and an abstraction function α, verification determines whether P ⊧  α S, that is, whether P satisfies the specification S under the abstraction α. When \(P \not \models_{\alpha} S\), it may be the case that the program violates the specification, or that the abstraction α is not precise enough to show that the program satisfies it.

When \(P \not \models_{\alpha} S\), abstraction refinement approaches share the common goal of trying to find a finer abstraction α′ such that P ⊧  α S. In contrast, we investigate a complementary approach, of finding a program P′ such that P′ ⊧  α S under the original abstraction α and P′ admits a subset of the behaviors of P. Furthermore, we combine the two directions — refining the abstraction, and restricting program behaviors — to yield a novel abstraction-guided synthesis algorithm.

One of the main challenges in our approach is to devise an algorithm for obtaining such P′ from the initial program P. In this talk, we focus on concurrent programs, and consider changes to P that correspond to restricting program executions by adding synchronization.

Although it is possible to apply our techniques to other settings, concurrent programs are a natural fit. Concurrent programs are often correct on most interleavings and only miss synchronization in a few corner cases, which can then be avoided by synthesizing additional synchronization. Furthermore, in many cases, constraining the permitted interleavings reduces the set of reachable (abstract) states, possibly enabling verification via a coarser abstraction and avoiding state-space explosion.

We show how abstraction-guided synthesis can be applied to automatically synthesize atomic sections, conditional critical regions, inter-thread ordering constraints, and memory fences.

This talk is based on joint work with Martin Vechev, Greta Yorsh, Michael Kuperstein, and Veselin Raychev.

This work was partially supported by The Israeli Science Foundation (grant no. 965/10).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Yahav, E. (2013). Abstraction-Guided Synthesis. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2013. Lecture Notes in Computer Science, vol 7737. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35873-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35873-9_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35872-2

  • Online ISBN: 978-3-642-35873-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics