2007
DOI: 10.1007/978-3-540-71316-6_7
|View full text |Cite
|
Sign up to set email alerts
|

Using History Invariants to Verify Observers

Abstract: Abstract. This paper contributes a technique that expands the set of object invariants that one can reason about in modular verification. The technique uses history invariants, two-state invariants that describe the evolution of data values. The technique enables a flexible new way to specify and verify variations of the observer pattern, including iterators. The paper details history invariants and the new kind of object invariants, and proves a soundness theorem.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
18
0

Year Published

2008
2008
2023
2023

Publication Types

Select...
6
2

Relationship

1
7

Authors

Journals

citations
Cited by 21 publications
(18 citation statements)
references
References 22 publications
(21 reference statements)
0
18
0
Order By: Relevance
“…The two most common forms of monotonicity are initialization (a variable goes from the uninitialized state to the initialized state but never back) [Fähndrich and Xia 2007] and immutability (a variable is not updated at all after its initialization) ]. More general forms of monotonicity are explored in type states [Fähndrich and Leino 2003;Pilkiewicz and Pottier 2009], object relations [Leino and Schulte 2007;Cohen et al 2010], and concurrency [Jones 1983;Cohen et al 2010]. …”
Section: Module Invariantsmentioning
confidence: 99%
“…The two most common forms of monotonicity are initialization (a variable goes from the uninitialized state to the initialized state but never back) [Fähndrich and Xia 2007] and immutability (a variable is not updated at all after its initialization) ]. More general forms of monotonicity are explored in type states [Fähndrich and Leino 2003;Pilkiewicz and Pottier 2009], object relations [Leino and Schulte 2007;Cohen et al 2010], and concurrency [Jones 1983;Cohen et al 2010]. …”
Section: Module Invariantsmentioning
confidence: 99%
“…Several more recent specification languages are now making their way into practical and educational use, including JML [31], Spec [5], Dafny [32] and Whiley [51]. Our approach builds upon these fundamentals, particularly Leino & Shulte's formulation of two-state invariants [33], and Summers and Drossopoulou's Considerate Reasoning [58]. In general, these approaches assume a closed system, where modules can be trusted to cooperate.…”
Section: Related Workmentioning
confidence: 99%
“…These patterns often make use of complicated aggregate structures. Class invariant-based approaches, such as Spec , require significant extensions to handle these structures and their use (Leino and Schulte 2007). Early experiments suggest that our approach-using separation logic and abstract predicate familiesrequires no extensions to handle aggregate structures.…”
Section: Conclusion and Related Workmentioning
confidence: 99%