Model and program repair via sat solving
| dc.contributor.author | Attie, Paul C. | |
| dc.contributor.author | Albab, Kinan Dak | |
| dc.contributor.author | Sakr, Mouhammad | |
| dc.contributor.department | Department of Computer Science | |
| dc.contributor.faculty | Faculty of Arts and Sciences (FAS) | |
| dc.contributor.institution | American University of Beirut | |
| dc.date.accessioned | 2025-01-24T11:22:56Z | |
| dc.date.available | 2025-01-24T11:22:56Z | |
| dc.date.issued | 2017 | |
| dc.description.abstract | We consider the subtractive model repair problem: given a finite Kripke structure M and a CTL formula η, determine if M contains a substructure M' that satisfies η. Thus, M can be repaired to satisfy η by deleting some transitions and states. We map an instance M, η of model repair to a Boolean formula repair (M, η) such that M, η has a solution iff repair (M, η) is satisfiable. Furthermore, a satisfying assignment determines which states and transitions must be removed from M to yield a model M of η. Thus, we can use any SAT solver to repair Kripke structures. Using a complete SAT solver yields a complete algorithm: it always finds a repair if one exists. We also show that CTL model repair is NP-complete. We extend the basic repair method in three directions: (1) the use of abstraction mappings, that is, repair a structure abstracted from M and then concretize the resulting repair to obtain a repair of M, (2) repair concurrent Kripke structures and concurrent programs: we use the pairwise method of Attie and Emerson to represent and repair the behavior of a concurrent program, as a set of concurrent Kripke structures, with only a quadratic increase in the size of the repair formula, and (3) repair hierarchical Kripke structures: we use a CTL formula to summarize the behavior of each box, and CTL deduction to relate the box formula with the overall specification. © 2017 ACM. | |
| dc.identifier.doi | https://doi.org/10.1145/3147426 | |
| dc.identifier.eid | 2-s2.0-85041434813 | |
| dc.identifier.uri | http://hdl.handle.net/10938/25561 | |
| dc.language.iso | en | |
| dc.publisher | Association for Computing Machinery | |
| dc.relation.ispartof | ACM Transactions on Embedded Computing Systems | |
| dc.source | Scopus | |
| dc.subject | Model checking | |
| dc.subject | Model repair | |
| dc.subject | Program repair | |
| dc.subject | Temporal logic | |
| dc.subject | Abstracting | |
| dc.subject | Boolean algebra | |
| dc.subject | Formal logic | |
| dc.subject | Boolean formulae | |
| dc.subject | Concurrent program | |
| dc.subject | Kripke structure | |
| dc.subject | Repair methods | |
| dc.subject | Sat solvers | |
| dc.subject | Satisfying assignments | |
| dc.subject | States and transitions | |
| dc.subject | Repair | |
| dc.title | Model and program repair via sat solving | |
| dc.type | Article |
Files
Original bundle
1 - 1 of 1