2006
DOI: 10.1007/11804192_17
|View full text |Cite
|
Sign up to set email alerts
|

Boogie: A Modular Reusable Verifier for Object-Oriented Programs

Abstract: A program verifier is a complex system that uses compiler technology, program semantics, property inference, verification-condition generation, automatic decision procedures, and a user interface. This paper describes the architecture of a state-of-the-art program verifier for object-oriented programs.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
579
0
3

Year Published

2012
2012
2023
2023

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 648 publications
(583 citation statements)
references
References 45 publications
1
579
0
3
Order By: Relevance
“…free from assertion failures) then the kernel is guaranteed to be free from data races. The sequential program is checked using the Boogie verifier [2].…”
Section: Race Analysis Using Gpuverifymentioning
confidence: 99%
“…free from assertion failures) then the kernel is guaranteed to be free from data races. The sequential program is checked using the Boogie verifier [2].…”
Section: Race Analysis Using Gpuverifymentioning
confidence: 99%
“…We annotated the loop of Figure 1 with this predicate as a candidate loop invariant and gave it to the Boogie [7] program checker. Boogie was successfully able to prove that I was indeed a loop invariant and was able to show that the assertion holds.…”
Section: Finding Invariants For the Examplementioning
confidence: 99%
“…In particular, if L ≡ while E do S is a while program, then to check {P }L{Q}, Hoare logic tells us that we need a predicate I such that P ⇒ I, {I ∧ E}S{I}, and I ∧ ¬E ⇒ Q. Such a predicate I is called an inductive invariant or simply an invariant of the loop L. Once we have obtained invariants for all the loops, then standard techniques can generate program proofs [7]. We first focus our attention on invariants in the theory of linear arithmetic:…”
Section: Preliminariesmentioning
confidence: 99%
See 1 more Smart Citation
“…We use two-dimensional arrays to encode the heap. This representation is particularly useful for encoding frame conditions [4] and is used in Verl [25]. The heap is made explicit in field read and image expressions, read(h, u, f ) for u.f and img(h, r , f ) for r 'f .…”
Section: Preliminariesmentioning
confidence: 99%