The MONA Project
Massimo Dentico
m.dentico@galactica.it
Fri, 15 Sep 2000 01:47:25 +0200
The MONA Project homepage:
- http://www.brics.dk/mona/
Excerpt from “Introduction to MONA”:
- http://www.brics.dk/mona/introduction.html
==================================================================
Introduction to MONA
In practice, the fundamental concept of regularity (finite-state
acceptance of strings) is often exceedingly hard to express. For
example, regular expressions (as used in scanners, text editors
and UNIX shell programming) are elegant when expressing simple
patterns, but often unreadable for patterns of even modest
complexity.
For trees, it is even harder to express regular sets, since the
only means used in practice are tedious programming of the
information flow up and down the tree (in terms of attributes or
recursive procedures).
The aim of the MONA project is to devise new practical means of
describing finite-state systems in formal logics that naturally
capture informal requirements.
We are pursuing the use of the massive combinatorial calculations
behind these logics in verification, software engineering,
programming languages, and theorem proving.
What is MONA?
MONA is a logic-based programming language and a tool that
translates programs, that is, formulas, to finite-state automata.
The formulas may express search patterns, temporal properties of
reactive systems, parse tree constraints, etc. MONA analyses the
automaton resulting from the compilation, and it either prints out
"valid" or a counter-example to the statement of the program.
MONA implements decision procedures for the Weak Second-order
Theory of One or Two succesors. The theory of one successor, known
as WS1S, is a fragment of arithmetic augmented with second-order
quantification over finite sets of natural numbers. Its first-
order terms denote just natural numbers. The theory has no
addition, since that would make it undecidable, but it has a unary
operation +1, known as the successor function. Since the theory is
a monadic second-order logic, we call our tool MONA.
[...]
==================================================================
Here papers on MONA:
- http://www.brics.dk/mona/papers.html
In particular these two on program verification:
“Automatic Verification of Pointer Programs using Monadic Second-
order Logic”
“Compile-Time Debugging of C Programs Working on Trees”
--
Massimo Dentico