221 Hits in 5.6 sec

Why Just Boogie? Translating Between Intermediate Verification Languages [article]

Michael Ameri, Carlo A. Furia
2016 arXiv   pre-print
The verification systems Boogie and Why3 use their respective intermediate languages to generate verification conditions from high-level programs.  ...  Since the two systems support different back-end provers (such as Z3 and Alt-Ergo) and are used to encode different high-level languages (such as C# and Java), being able to translate between their intermediate  ...  This paper describes a translation between intermediate languages-Boogie and Why3-which belong to similar abstraction levels.  ... 
arXiv:1601.00516v2 fatcat:ep5h32oa55bqvik4wdbufhnxui

The Boogie Verification Debugger (Tool Paper) [chapter]

Claire Le Goues, K. Rustan M. Leino, Michał Moskal
2011 Lecture Notes in Computer Science  
BVD integrates with the programverification engine Boogie. Just as Boogie supports multiple language front-ends, BVD can work with those front-ends through a plug-in architecture.  ...  The Boogie Verification Debugger (BVD) is a tool that lets users explore the potential program errors reported by a deductive program verifier.  ...  A prevalent implementation technique for auto-active verifiers is to translate the source program and its user annotations into an intermediate verification language, like Boogie [1] or Why [5] .  ... 
doi:10.1007/978-3-642-24690-6_28 fatcat:stkuyghxqrbu7j4xmgf5dfakvy

Boogie: A Modular Reusable Verifier for Object-Oriented Programs [chapter]

Mike Barnett, Bor-Yuh Evan Chang, Robert DeLine, Bart Jacobs, K. Rustan M. Leino
2006 Lecture Notes in Computer Science  
To ensure soundness of the verification, Boogie additionally checks for error conditions defined by the programming methodology [BDF + 04,LM04,BN04,LM05,LM06].  ...  Source Language. The Spec# language is a superset of C# , adding specification features (i.e., contracts) such as pre-and postconditions and object invariants [BLS04] .  ...  We are especially grateful for the persistence and patience that Herman Venter has shown as he pioneers the use of Boogie in production code.  ... 
doi:10.1007/11804192_17 fatcat:dyxdg67drnar7ixtcpmhp3s2ve

Automatically Verifying Typing Constraints for a Data Processing Language [chapter]

Michael Backes, Cătălin Hriţcu, Thorsten Tarrach
2011 Lecture Notes in Computer Science  
We achieve this by translating programs into a standard while language and then using a general-purpose verification tool.  ...  We provide a prototype implementation using Boogie and Z3 that can already be used to efficiently verify a large number of test programs.  ...  Bemol (Intermediate Verification Language) We define a simple intermediate verification language (IVL) we call Bemol.  ... 
doi:10.1007/978-3-642-25379-9_22 fatcat:6v75kivkbzesdna4ajgrkd33ri


Stephan Arlt, Philipp Rümmer, Martin Schäf
2013 Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysis - SOAP '13  
We show that the translation, which is based on the Jimple language, can be used to analyze real-world programs, and discuss some issues that arise from differences between Java code and its bytecode.  ...  Compared to verification of correctness properties, the translation from source code to logic can be very simple and thus easy to solve by automated theorem provers.  ...  The Boogie Language Boogie [16] is an imperative intermediate verification language (IVL) that has been used to encode and analyse a range of highlevel programming languages.  ... 
doi:10.1145/2487568.2487570 dblp:conf/pldi/ArltRS13 fatcat:kpsmqlaijrcupd6jnx7j4nf3hy

Robustness Testing of Intermediate Verifiers [article]

Yu-Ting Chen, Carlo A. Furia
2018 arXiv   pre-print
We implemented our technique in a tool called "mugie", which operates on programs written in the popular Boogie language for verification-used as intermediate representation in numerous program verifiers  ...  The key idea is to generate many simple variants of a program that initially passes verification.  ...  Boogie is a socalled intermediate verification language, combining an expressive program logic and a simple procedural programming language, which is commonly used as an intermediate layer in many verification  ... 
arXiv:1805.03296v1 fatcat:37zu3viwgrafjivji7cebm3g7i

Fine-Grained Caching of Verification Results [chapter]

K. Rustan M. Leino, Valentin Wüstholz
2015 Lecture Notes in Computer Science  
The system has been implemented in the Boogie verification engine, which allows it to be used by different verification front ends that target the intermediate verification language Boogie; we present  ...  The caching system uses the program's call graph and controlflow graph to focus the verification effort on just the parts of the program that were affected by the user's most recent modifications.  ...  Like other verifiers, the Dafny verifier generates proof obligations by translating Dafny to an intermediate verification language (IVL), namely Boogie [2, 21] .  ... 
doi:10.1007/978-3-319-21690-4_22 fatcat:kppunm4xdbf3bmhpx2gdnbrye4

Will you still compile me tomorrow? static cross-version compiler validation

Chris Hawblitzel, Shuvendu K. Lahiri, Kshama Pawar, Hammad Hashmi, Sedar Gokbulut, Lakshan Fernando, Dave Detlefs, Scott Wadsworth
2013 Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2013  
For month-to-month comparisons, the validator achieves a false alarm rate of just 2.2%.  ...  The validator checks for semantically equivalent assembly language output from various versions of the compiler, including versions across a seven-month time period, across two architectures (x86 and ARM  ...  Boogie is a simple imperative language supporting assertions (e.g. preconditions, postconditions, loop invariants) that can be statically checked for validity using the Boogie verification generator.  ... 
doi:10.1145/2491411.2491442 dblp:conf/sigsoft/HawblitzelLPHGFDW13 fatcat:h7jht57iknc4bgjwacbnk5yspy

To Goto Where No Statement Has Gone Before [chapter]

Mike Barnett, K. Rustan M. Leino
2010 Lecture Notes in Computer Science  
The method is useful for program verification systems that take as input both programs and specifications after they have been compiled from a high-level language.  ...  This paper presents a method for deriving an expression from the lowlevel code compiled from an expression in a high-level language.  ...  We are connecting an existing program verifier to the Code Contracts framework by translating the compiled bytecode into an intermediate verification language, Boogie 2 [0, 15, 13] , and then generating  ... 
doi:10.1007/978-3-642-15057-9_11 fatcat:eae6pv2qrfghrn3p6snl3eqs64

Specification and verification

Mike Barnett, Manuel Fähndrich, K. Rustan M. Leino, Peter Müller, Wolfram Schulte, Herman Venter
2011 Communications of the ACM  
The Spec# language extends C# with contracts that allow programmers to express their design intent in the code.  ...  reflects on the six-year history of the Spec# project, scientific contributions it has made, remaining challenges for tools that seek to establish program correctness, and prospects of incorporating verification  ...  The gap between the two is bridged by translating the Spec# program into a much simpler program: we defined an intermediate language named Boogie [1] .  ... 
doi:10.1145/1953122.1953145 fatcat:lau4ydul6vaspatge73es4hnoq

Comparing Verification Condition Generation with Symbolic Execution: An Experience Report [chapter]

Ioannis T. Kassios, Peter Müller, Malte Schwerhoff
2012 Lecture Notes in Computer Science  
Our results show that verification via SE is roughly twice as fast as via VCG. It requires only a small fraction of the quantifier instantiations that are performed in the VCG-based verification.  ...  We have used the specification and programming language Chalice and compared the performance of its standard VCG verifier with a newer SE engine called Syxc, using the Chalice test suite as a benchmark  ...  We also like to thank Micha l Moskal for help on Boogie and Z3, Uri Juhasz for providing us with the AVL-tree example, and Alex Summers for many fruitful discussions.  ... 
doi:10.1007/978-3-642-27705-4_16 fatcat:kelqzpsu3rdsfjubcr25jsvhmu

Deductive Software Verification: From Pen-and-Paper Proofs to Industrial Tools [chapter]

Reiner Hähnle, Marieke Huisman
2019 Lecture Notes in Computer Science  
to highly automated proofs of complex library or system code written in mainstream languages.  ...  Deductive software verification aims at formally verifying that all possible behaviors of a given program satisfy formally defined, possibly complex properties, where the verification process is based  ...  Translation to intermediate languages is one way out, but makes it harder to provide feedback at the source level.  ... 
doi:10.1007/978-3-319-91908-9_18 fatcat:t3verkvbx5givfekzmbpiw6zla

Program Checking with Less Hassle [chapter]

Julian Tschannen, Carlo A. Furia, Martin Nordio, Bertrand Meyer
2014 Lecture Notes in Computer Science  
Part of the reason why non-specialists find writing good specification hard is that, when verification fails, they receive little guidance as to what the causes might be, such as implementation errors  ...  Two-step verification is implemented in AutoProof, our static verifier for Eiffel programs integrated in EVE (the Eiffel Verification Environment) and available online.  ...  In AutoProof, which translates Eiffel to Boogie to perform static proofs, implicit contracts are not added to the Eiffel code but are silently injected into the Boogie translation, so that the input code  ... 
doi:10.1007/978-3-642-54108-7_8 fatcat:oxdnmdid65antgsjhuhyfbjsiu

A machine-checked soundness proof for an efficient verification condition generator

Frédéric Vogels, Bart Jacobs, Frank Piessens
2010 Proceedings of the 2010 ACM Symposium on Applied Computing - SAC '10  
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a program with respect to a specification.  ...  However, modern verification condition generators (VCgens), including Spec and ESC/Java's VCgens, are based on an optimized version of this algorithm, that avoids an exponential growth of the VCs in the  ...  The Why/Krakatoa/Caduceus line of tools [8] is a very interesting competitor to the Boogie/Spec /VCC line of tools: both toolsets are similarly built around an intermediate verification language and  ... 
doi:10.1145/1774088.1774610 dblp:conf/sac/VogelsJP10 fatcat:ondkvfyo7zevbkiwnc7g52nol4

A Machine Checked Soundness Proof for an Intermediate Verification Language [chapter]

Frédéric Vogels, Bart Jacobs, Frank Piessens
2009 Lecture Notes in Computer Science  
In our approach, we define a formal operational semantics of the intermediate verification language, and we prove the soundness of two translations separately: (1) the translation of the intermediate verification  ...  Such verifiers split the generation of VCs in two (or even more) phases, using an intermediate verification language as the bridge between the programming language and logic.  ...  The Why/Krakatoa/Caduceus line of tools [12] is a very interesting competitor to the Boogie/Spec /VCC line of tools: both toolsets are built around a similar intermediate verification language and provide  ... 
doi:10.1007/978-3-540-95891-8_51 fatcat:h66mobvpxrh4pedsexmzfmtwle
« Previous Showing results 1 — 15 out of 221 results