Automatic Addition of Conflicting Properties

The problem of model/program repair focuses on revising an existing model/program to satisfy new properties. These properties can be safety, liveness, availability, or fault-tolerance requirements. Existing solutions focus on adding compatible properties, i.e., properties that can be satisfied while preserving the existing properties. In other words, they try to generate programs that satisfy the existing properties as well as the new desired properties. It follows that if one were to add a conflicting property, i.e., a property that cannot be satisfied while preserving existing properties, then the previous solutions declare failure to obtain the desired program. However, adding conflicting properties arises when one replaces an existing requirement with another– e.g., replacing fairness requirement with priority to some process. In this paper, we focus on the problem of adding conflicting properties. We present an algorithm for explicit addition of properties that adds new desired properties while preserving only an explicitly specified subset of existing properties. In turn, we use it to develop an algorithm for adding conflicting properties. We illustrate our algorithms with an example of job scheduling.

[1]  Mats Per Erik Heimdahl,et al.  Complete Traceability for Requirements in Satisfaction Arguments , 2016, 2016 IEEE 24th International Requirements Engineering Conference (RE).

[2]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[3]  A. Pnueli,et al.  On the Synthesis of an Asynchronous Reactive Module , 1989, ICALP.

[4]  Bernd Finkbeiner,et al.  Bounded synthesis , 2012, International Journal on Software Tools for Technology Transfer.

[5]  Sandeep S. Kulkarni,et al.  Lazy Repair for Addition of Fault-Tolerance to Distributed Programs , 2016, 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[6]  Sandeep S. Kulkarni,et al.  Stabilization and fault-tolerance in presence of unchangeable environment actions , 2015, ICDCN.

[7]  Ali Ebnenasir,et al.  On the Hardness of Adding Nonmasking Fault Tolerance , 2015, IEEE Transactions on Dependable and Secure Computing.

[8]  Sandeep S. Kulkarni,et al.  Automatic Generation of Graceful Programs , 2012, 2012 IEEE 31st Symposium on Reliable Distributed Systems.

[9]  Borzoo Bonakdarpour,et al.  SMT-Based Synthesis of Distributed Self-Stabilizing Systems , 2014, SSS.

[10]  Jyotirmoy V. Deshmukh,et al.  Automatic Generation of Local Repairs for Boolean Programs , 2008, 2008 Formal Methods in Computer-Aided Design.

[11]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[12]  Roderick Bloem,et al.  Program Repair as a Game , 2005, CAV.

[13]  Scott A. Smolka,et al.  Abstract Model Repair , 2012, NASA Formal Methods.

[14]  Fuad Abujarad,et al.  Symbolic synthesis of masking fault-tolerant distributed programs , 2012, Distributed Computing.

[15]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[16]  Ali Ebnenasir,et al.  Complexity results in revising UNITY programs , 2009, TAAS.

[17]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[18]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.