JKelloy: A proof assistant for relational specifications of Java programs

4Citations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Alloy is a relational specification language with a built-in transitive closure operator which makes it particularly suitable for writing concise specifications of linked data structures. Several tools support Alloy specifications for Java programs. However, they can only check the validity of those specifications with respect to a bounded domain, and thus, in general, cannot provide correctness proofs. This paper presents JKelloy, a tool for deductive verification of Java programs with Alloy specifications. It includes automatically-generated coupling axioms that bridge between specifications and Java states, and two sets of calculus rules that (1) generate verification conditions in relational logic and (2) simplify reasoning about them. All rules have been proved correct. To increase automation capabilities, proof strategies are introduced that control the application of those rules. Our experiments on linked lists and binary graphs show the feasibility of the approach. © 2014 Springer International Publishing.

Cite

CITATION STYLE

APA

El Ghazi, A. A., Ulbrich, M., Gladisch, C., Tyszberowicz, S., & Taghdiri, M. (2014). JKelloy: A proof assistant for relational specifications of Java programs. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8430 LNCS, pp. 173–187). Springer Verlag. https://doi.org/10.1007/978-3-319-06200-6_13

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free