kirancodes.me
To Proof Maintenance & Beyond!

Kato: A Program Slicing Tool for Declarative Specifications

Engin Uzuncaova, Sarfraz Khurshid

Abstract

This paper presents Kato, a tool that implements a novel class of optimizations that are inspired by program slicing for imperative languages but are applicable to analyzable declarative languages, such as Alloy. Kato implements a novel algorithm for slicing declarative models written in Alloy and leverages its relational engine KodKodfor analysis. Given an Alloy model, Kato identifies a slice representing the model's core: a satisfying instance for the core can systematically be extended into a satisfying instance for the entire model, while unsatisfiability of the core implies unsatisfiability of the entire model. The experimental results show that for a variety of subject models Kato's slicing algorithm enables an order of magnitude speed-up over Alloy's default translation to SAT.

BibTeX
@inproceedings{Uzuncaova-Khurshid:ICSE07,
  author    = {Engin Uzuncaova and
               Sarfraz Khurshid},
  title     = {Kato: A Program Slicing Tool for Declarative Specifications},
  booktitle = {ICSE},
  pages     = {767--770},
  publisher = {{IEEE} Computer Society},
  year      = {2007},
}

Related papers