Counterexample generation for program verification based on ownership refinement types

Author(s):  
Hideto Ueno ◽  
John Toman ◽  
Naoki Kobayashi ◽  
Takeshi Tsukada

2019 ◽  
Vol 29 ◽  
Author(s):  
ALEJANDRO AGUIRRE ◽  
GILLES BARTHE ◽  
MARCO GABOARDI ◽  
DEEPAK GARG ◽  
PIERRE-YVES STRUB

AbstractRelational program verification is a variant of program verification where one can reason about two programs and as a special case about two executions of a single program on different inputs. Relational program verification can be used for reasoning about a broad range of properties, including equivalence and refinement, and specialized notions such as continuity, information flow security, or relative cost. In a higher-order setting, relational program verification can be achieved using relational refinement type systems, a form of refinement types where assertions have a relational interpretation. Relational refinement type systems excel at relating structurally equivalent terms but provide limited support for relating terms with very different structures. We present a logic, called relational higher-order logic (RHOL), for proving relational properties of a simply typed λ-calculus with inductive types and recursive definitions. RHOL retains the type-directed flavor of relational refinement type systems but achieves greater expressivity through rules which simultaneously reason about the two terms as well as rules which only contemplate one of the two terms. We show that RHOL has strong foundations, by proving an equivalence with higher-order logic, and leverage this equivalence to derive key meta-theoretical properties: subject reduction, admissibility of a transitivity rule, and set-theoretical soundness. Moreover, we define sound embeddings for several existing relational type systems such as relational refinement types and type systems for dependency analysis and relative cost, and we verify examples that were out of reach of prior work.





1975 ◽  
Author(s):  
Larry K. Whipple ◽  
Mark A. Pitts
Keyword(s):  




2009 ◽  
Vol 44 (6) ◽  
pp. 223-234 ◽  
Author(s):  
Saurabh Srivastava ◽  
Sumit Gulwani


2013 ◽  
Vol 48 (6) ◽  
pp. 73-84
Author(s):  
Colin S. Gordon ◽  
Michael D. Ernst ◽  
Dan Grossman
Keyword(s):  


2010 ◽  
Vol 45 (1) ◽  
pp. 495-508 ◽  
Author(s):  
Naoki Kobayashi ◽  
Naoshi Tabuchi ◽  
Hiroshi Unno


2016 ◽  
Vol 51 (6) ◽  
pp. 522-538 ◽  
Author(s):  
Nadia Polikarpova ◽  
Ivan Kuraj ◽  
Armando Solar-Lezama


1996 ◽  
Vol 2 (4) ◽  
pp. 295-302 ◽  
Author(s):  
BRUCE W. WATSON

Finite automata and various extensions of them, such as transducers, are used in areas as diverse as compilers, spelling checking, natural language grammar checking, communication protocol design, digital circuit simulation, digital flight control, speech recognition and synthesis, genetic sequencing, and Java program verification. Unfortunately, as the number of applications has grown, so has the variety of implementations and implementation techniques. Typically, programmers will be confused enough to resort to their text books for the most elementary algorithms. Recently, advances have been made in taxonomizing algorithms for constructing and minimizing automata and in evaluating various implementation strategies Watson 1995. Armed with this, a number of general-purpose toolkits have been developed at universities and companies. One of these, FIRE Lite, was developed at the Eindhoven University of Technology, while its commercial successor, FIRE Engine II, has been developed at Ribbit Software Systems Inc. Both of these toolkits provide implementations of all of the known algorithms for constructing automata from regular expressions, and all of the known algorithms for minimizing deterministic finite automata. While the two toolkits have a great deal in common, we will concentrate on the structure and use of the noncommercial FIRE Lite. The prototype version of FIRE Lite was designed with compilers in mind. More recently, computation linguists and communications protocol designers have become interested in using the toolkit. This has led to the development of a much more general interface to FIRE Lite, including the support of both Mealy and Moore regular transducers. While such a toolkit may appear extremely complex, there are only a few choices to be made. We also consider a ‘recipe’ for making good use of the toolkits. Lastly, we consider the future of FIRE Lite. While FIRE Engine II has obvious commercial value, we are committed to maintaining a version which is freely available for academic use.



Sign in / Sign up

Export Citation Format

Share Document