About this book
A common approach in software engineering is to apply during the design phase a variety of structured techniques like top-down design, decomposition and abstraction, while only subsequently, in the implementation phase, is the design tested to ensure reliability. But this approach neglects that central aspects of software design and program development have a strong formal character which admits tool support for the construction of reliable and correct computer systems based on formal reasoning. This monograph provides much information both for theoreticians interested in algebraic theories, and for software engineers building practically relevant tools. The author presents the theoretical foundations needed for the verification of reactive, sequential infinite-state systems. Two new algorithms are introduced allowing for automatic verification of important aspects such as safety or liveness properites of a given infinite-state system. The formal framework developed involves recent results from various theoretical areas like process algebras, fixpoint theory, modal logics and model checking.
concurrency design development formal methods infinite-state systems model checking program verification software software engineering verification