A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2020; you can also visit the original URL.
The file type is application/pdf
.
Filters
Why Just Boogie? Translating Between Intermediate Verification Languages
[article]
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]
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]
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]
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
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]
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]
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
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]
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
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]
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]
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]
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
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]
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