Skip to Main Content
Self-checking programs are programs which meet the following condition. For any legal input, either they return the correct output or they return a message indicating that the output may be incorrect. Self-checking programs are capable of recognizing irregular conditions in their state space and reporting it. Self-stabilizing programs are programs which, in addition to (or instead of) reporting irregular conditions in their state space, take action to recover from them. This correspondence describes how to formally verify that a program is self-checking or self-stabilizing and discusses the relationship between the thoroughness of recovery actions in a self-stabilizing program and the overall quality of the program.