Towards Abstraction for DynAlloy Specifications

  • Authors:
  • Nazareno M. Aguirre;Marcelo F. Frias;Pablo Ponzio;Brian J. Cardiff;Juan P. Galeotti;Germán Regis

  • Affiliations:
  • Department of Computer Science, FCEFQyN, Universidad Nacional de Río Cuarto and CONICET, Argentina;Department of Computer Science, FCEyN, Universidad de Buenos Aires and CONICET, Argentina;Department of Computer Science, FCEFQyN, Universidad Nacional de Río Cuarto and CONICET, Argentina;Department of Computer Science, FCEyN, Universidad de Buenos Aires and CONICET, Argentina;Department of Computer Science, FCEyN, Universidad de Buenos Aires and CONICET, Argentina;Department of Computer Science, FCEFQyN, Universidad Nacional de Río Cuarto and CONICET, Argentina

  • Venue:
  • ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

DynAlloy is an extension of the Alloy language to better describe state change via actions and programs, in the style of dynamic logic. In this paper, we report on our experience in trying to provide abstraction based mechanisms for improving DynAlloy specifications with respect to SAT based analysis. The technique we employ is based on predicate abstraction, but due to the context in which we make use of it, is subject to the following more specific improvements: (i)since DynAlloy's analysis consists of checking partial correctness assertions against programs, we are only interested in the initial and final states of a computation, and therefore we can safely abstract away some intermediate states in the computation (generally, this kind of abstraction cannot be safely applied in model checking), (ii)since DynAlloy's analysis is inherently bounded, we can safely rely on the sole use of a SAT solver for producing the abstractions, and (iii)since DynAlloy's basic operational unit is the atomic action, which can be used in different parts within a program, we can reuse the abstraction of an action in different parts of a program, which can accelerate the convergence in checking valid properties.We present the technique via a case study based on a translation of a JML annotated Java program into DynAlloy, accompanied by some preliminary experimental results showing some of the benefits of the technique.