We propose a dynamic logic DLb called “dynamic logic with branching modalities”, which extends the temporal dynamic logic DLT with a “branching modality” for specifying safety properties of regular programs with tests (simply “regular programs”). Compared to the trace modality of DLT for while programs that do not abort, branching modality of DLb does not exclude aborting traces introduced by regular programs, thus is able to capture a type of safety properties which are important for systems with failure behaviors. Moreover, it is congruent to the compositionality of regular programs so that the proof system naturally extended from that of DLT is proved to be complete for DLb. In this paper, we build the theory of DLb on both propositional and first-ordered levels, defining two logics: propositional DLb (PDLb) and first-ordered DLb (FODLb). PDLb forms the theoretical basis of DLb while FODLb is useful for practical verification. We propose the proof systems for PDLb and FODLb, and analyze their decidability, soundness and (relative) completeness in a formal way, through comparing their expressiveness and deduction capabilities with propositional dynamic logic (PDL) and first-order dynamic logic (FODL) respectively. We show that FODLb is actually an extension of DLT, and illustrate the motivations of using the branching modality through an example.
Read full abstract