MONA: Monadic Second-Order Logic in Practice
Jesper G. Henriksen
The purpose of this article is to introduce Monadic Second-order Logic as a practical means of specifying regularity. The logic is a highly succinct alternative to the use of regular expressions. We have built a tool Mona, which acts as a decision procedure and as a translator to finite-state machines. The tool is based on new algorithms for minimizing finite-state machines that use binary decision diagrams (BDD's) to represent transition functions in compressed form. A byproduct of this work is a new bottom-up algorithm to reduce BDD's in linear time without hashing.
The potential applications are numerous. We discuss text processing, Boolean circuits, and distributed systems.
Our main example is an automatic proof of properties for the ``Dining Philosophers with Encyclopedia'' example by Kurshan and MacMillan. We establish these properties for the parameterized case without the use of induction.