Towards Reusing Formal Proofs for Verification of Fault-Tolerance 1

In this paper, we concentrate on mechanical verification of synthesis algorithms that add multitolerance to fault-intolerant programs using the theorem prover PVS. Multitolerance is desirable when a program is subject to different classes of faults and for each class, a different level of fault-tolerance has to be guaranteed. With this verification, we formally prove the correctness of the synthesis algorithms, which in turn shows that that any program synthesized by them is indeed correct-by-construction. We effectively reuse formal proofs of our previous work on a fixpoint theory on finite sets and a fault-tolerance theory developed for the case where programs are subject to a single class of faults. We believe manual reuse of proofs may suggest ways to automate them for verification of similar types of synthesis algorithms.

[1]  Edsger W. Dijkstra,et al.  Self-stabilizing systems in spite of distributed control , 1974, CACM.

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

[3]  Anthony S. Wojcik,et al.  Formal Verification of Fault Tolerance Using Theorem-Proving Techniques , 1989, IEEE Trans. Computers.

[4]  Anish Arora,et al.  Closure and Convergence: A Foundation of Fault-Tolerant Computing , 1993, IEEE Trans. Software Eng..

[5]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[6]  Steven D. Johnson,et al.  Verification of an optimized fault-tolerant clock synchronization circuit , 1996 .

[7]  Natarajan Shankar,et al.  Verifying a self-stabilizing mutual exclusion algorithm , 1998, PROCOMET.

[8]  Anish Arora,et al.  Detectors and correctors: a theory of fault-tolerance components , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[9]  Natarajan Shankar,et al.  A case-study in component-based mechanical verification of fault-tolerant programs , 1999, Proceedings 19th IEEE International Conference on Distributed Computing Systems.

[10]  Felix C. Freiling,et al.  A case study in the mechanical verification of fault tolerance , 2000, J. Exp. Theor. Artif. Intell..

[11]  Anish Arora,et al.  Automating the Addition of Fault-Tolerance , 2000, FTRTFT.

[12]  Ali Ebnenasir,et al.  Enhancing the fault-tolerance of nonmasking programs , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[13]  Ali Ebnenasir,et al.  Mechanical Verification of Automatic Synthesis of Fault-Tolerant Programs , 2004, LOPSTR.

[14]  Ali Ebnenasir,et al.  Automated synthesis of multitolerance , 2004, International Conference on Dependable Systems and Networks, 2004.

[15]  Borzoo Bonakdarpour,et al.  Automatic Addition of Fault-Tolerance to Real-Time Programs , 2006 .