English

Model and Program Repair via SAT Solving

Logic in Computer Science 2008-04-15 v4

Abstract

We consider the following \emph{model repair problem}: given a finite Kripke structure MM and a specification formula η\eta in some modal or temporal logic, determine if MM contains a substructure MM' (with the same initial state) that satisfies η\eta. Thus, MM can be ``repaired'' to satisfy the specification η\eta by deleting some transitions. We map an instance (M,η)(M, \eta) of model repair to a boolean formula \repfor(M,η)\repfor(M,\eta) such that (M,η)(M, \eta) has a solution iff \repfor(M,η)\repfor(M,\eta) is satisfiable. Furthermore, a satisfying assignment determines which transitions must be removed from MM to generate a model MM' of η\eta. Thus, we can use any SAT solver to repair Kripke structures. Furthermore, using a complete SAT solver yields a complete algorithm: it always finds a repair if one exists. We extend our method to repair finite-state shared memory concurrent programs, to solve the discrete event supervisory control problem \cite{RW87,RW89}, to check for the existence of symmettric solutions \cite{ES93}, and to accomodate any boolean constraint on the existence of states and transitions in the repaired model. Finally, we show that model repair is NP-complete for CTL, and logics with polynomial model checking algorithms to which CTL can be reduced in polynomial time. A notable example of such a logic is Alternating-Time Temporal Logic (ATL).

Keywords

Cite

@article{arxiv.0710.3332,
  title  = {Model and Program Repair via SAT Solving},
  author = {Paul C. Attie and Jad Saklawi},
  journal= {arXiv preprint arXiv:0710.3332},
  year   = {2008}
}

Comments

29 pages, new repair features

R2 v1 2026-06-21T09:33:11.512Z