7 Hits in 0.92 sec

Robust, generic, modularly-verified map

Derek Bronish, Hampton Smith
2011 Proceedings of the 5th ACM workshop on Programming languages meets program verification - PLPV '11  
Components that encapsulate maps are among the most fundamental for the development of modern software. The concept of associating keys with values is important for a wide range of applications and it can accommodate a broad variety of implementations with diverse performance profiles. The foundational-yet-sophisticated nature of this concept makes it an ideal benchmark for software verification efforts. A tension between modular reasoning and the usefulness of a map can be observed, in
more » ... ar, in systems where the keys may be reference types. This paper elaborates on the criteria for modular verification of robust map components and their clients and it presents a survey of existing attempts to verify map components. 2010/10/18
doi:10.1145/1929529.1929533 dblp:conf/plpv/BronishS11 fatcat:sltppnqwafcdbkavyaaa7aey5m

Verifying Component-Based Software: Deep Mathematics or Simple Bookkeeping? [chapter]

Jason Kirschenbaum, Bruce Adcock, Derek Bronish, Hampton Smith, Heather Harton, Murali Sitaraman, Bruce W. Weide
2009 Lecture Notes in Computer Science  
Anecdotal experience constructing proofs of correctness of code built from reusable software components reveals that they tend to be relatively trivial bookkeeping exercises: they rarely require a substantive mathematical deduction. A careful empirical analysis of hundreds of verification conditions (VCs) for a library of component-client code shows the level of sophistication each proof requires, and suggests how to use the results to characterize a notion of mathematical "obviousness."
doi:10.1007/978-3-642-04211-9_4 fatcat:7zex2x7a4vdunksvvw5jioz5me

A benchmark- and competition-based approach to software engineering research

Derek Bronish, Jason Kirschenbaum, Aditi Tagore
2010 Proceedings of the FSE/SDP workshop on Future of software engineering research - FoSER '10  
Many fields of study within computer science have benefited from the adoption of community-wide benchmarks and competitions. Software engineering has yet to fully embrace this approach. Case studies of existing uses of these techniques are presented, and a hypothetical application to software engineering based on research presented in last year's FSE are elaborated.
doi:10.1145/1882362.1882372 dblp:conf/sigsoft/BronishKT10 fatcat:gcgzjteqifci5m3v3b4gd5gyme

Building a push-button RESOLVE verifier: Progress and challenges

Murali Sitaraman, Bruce Adcock, Jeremy Avigad, Derek Bronish, Paolo Bucci, David Frazier, Harvey M. Friedman, Heather Harton, Wayne Heym, Jason Kirschenbaum, Joan Krone, Hampton Smith (+1 others)
2010 Formal Aspects of Computing  
A central objective of the verifying compiler grand challenge is to develop a push-button verifier that generates proofs of correctness in a syntax-driven fashion similar to the way an ordinary compiler generates machine code. The software developer's role is then to provide suitable specifications and annotated code, but otherwise to have no direct involvement in the verification step. However, the general mathematical developments and results upon which software correctness is based may be
more » ... ablished through a separate formal proof process in which proofs might be mechanically checked, but not necessarily automatically generated. While many ideas that could conceivably form the basis for software verification have been known "in principle" for decades, and several tools to support an aspect of verification have been devised, practical fully automated verification of full software behavior remains a grand challenge. This paper explains how RESOLVE takes a step towards addressing this challenge by integrating foundational and practical elements of software engineering, programming languages, and mathematical logic into a coherent framework. Current versions of the RESOLVE verifier generate verification conditions (VCs) for the correctness of component-based software in a modular fashionone component at a time. The VCs are currently verified using automated capabilities of the Isabelle proof assistant, the SMT solver Z3, a minimalist rewrite prover, and some specialized decision procedures. Initial experiments with the tools and further analytic considerations show both the progress that has been made and the challenges that remain.
doi:10.1007/s00165-010-0154-3 fatcat:c4qbniaoave4tpevnhrr4a2y3a

Traditional assignment considered harmful

Scott M. Pike, Wayne D. Heym, Bruce Adcock, Derek Bronish, Jason Kirschenbaum, Bruce W. Weide
2009 Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications - OOPSLA '09  
Data movement in nearly all modern imperative languages is based on a single primitive: traditional assignment. (With traditional assignment, data are moved between variables by copying.) Unfortunately, traditional assignment poses many known software engineering drawbacks with respect to efficiency for value types, and with respect to modular reasoning for reference types. Moreover, its entrenched legacy has stifled serious regard of potentially superior data-movement primitives. Exploration
more » ... the complete design space for data-movement primitives supports the following conclusions: (1) traditional assignment is fundamentally flawed, and (2) any other data-movement primitive would be better.
doi:10.1145/1639950.1640056 dblp:conf/oopsla/PikeHABKW09 fatcat:qn5rd4ac2jgq3hoyutbh4qybz4

The 1st Verified Software Competition: Experience Report [chapter]

Vladimir Klebanov, Peter Müller, Natarajan Shankar, Gary T. Leavens, Valentin Wüstholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Rod Chapman, Ernie Cohen, Mark Hillebrand, Bart Jacobs (+10 others)
2011 Lecture Notes in Computer Science  
Team Resolve (Derek Bronish) Resolve is a tool-supported programming and specification language for fullfunctional verification of imperative component-based programs [13] .  ... 
doi:10.1007/978-3-642-21437-0_14 fatcat:vkjleltbkrdchok44arrshxfua

Incremental Benchmarks for Software Verification Tools and Techniques [chapter]

Bruce W. Weide, Murali Sitaraman, Heather K. Harton, Bruce Adcock, Paolo Bucci, Derek Bronish, Wayne D. Heym, Jason Kirschenbaum, David Frazier
Lecture Notes in Computer Science  
This paper proposes an initial catalog of easy-to-state, relatively simple, and incrementally more and more challenging benchmark problems for the Verified Software Initiative. These benchmarks support assessment of verification tools and techniques to prove total correctness of functionality of sequential object-based and object-oriented software. The problems are designed to help evaluate the state-of-the-art and the pace of progress toward verified software in the near term, and in this
more » ... , they are just the beginning. They will allow researchers to illustrate and explain how proposed tools and techniques deal with known pitfalls and well-understood issues, as well as how they can be used to discover and attack new ones. Unlike currently available benchmarks based on "real-world" software systems, the proposed challenge problems are expected to be amenable to "push-button" verification that leverages current technology.
doi:10.1007/978-3-540-87873-5_10 fatcat:t4rjp5iqf5apfmnyovckokgcz4