We concentrate on automated synthesis of multitolerant programs, i.e., programs that tolerate multiple classes of faults and provide a (possibly) different level of fault-tolerance to each class. We consider three levels of fault-tolerance: (1) failsafe, where in the presence of faults, the synthesized program guarantees safety, (2) nonmasking, where in the presence of faults, the synthesized program recovers to states from where its safety and liveness are satisfied, and (3) masking where in the presence of faults the synthesized program satisfies safety and recovers to states from where safety and liveness are satisfied. We focus on the automated synthesis of multitolerant programs in high atomicity where the program can read and write all its variables in an atomic step. We show that if one needs to add failsafe (respectively, nonmasking) faulttolerance to one class of faults and masking fault-tolerance to another class of faults then such addition can be done in polynomial time in...
Sandeep S. Kulkarni, Ali Ebnenasir