Abstract. MOSEL is a new tool-set for the analysis and verification in Monadic Second-order kogic. In this paper we concentrate on the system's design: MOSEL is a tool-set to include a flexible set of decision procedures for several theories of the logic complemented by a variety of support components for input format translations, visualization, and interfaces to other logics and tools. The main distinguishing features of MOSEL are its layered approach to the logic, based on a formal semantics for a minimal subset, its modular design, and its integration in a heterogeneous analysis and verification environment.
Introduction and BackgroundAlready 30 years ago Alonzo Church proposed monadic second-order logic on strings (M2L(Str)) as an appropriate specification formalism for reasoning about sequences of bitvectors [9]. This logic is among the most succinct decidable logics known to capture finite state systems. It is decidable, however, only in nonelementary time: the worst-case complexity is a stack of exponentials of height proportional to the size of the formula, a good reason for it having been considered impractical for a long time. Known almost exclusively to theoreticians for a long time, recently this logic celebrates a certain renaissance: despite the worstcase computational 'intractability' of this logic, relevant practical problems are usually far better behaved and can be solved automatically in reasonable time. Fields of application have been the specification, verification, and synthesis, in a fully automatic manner, of relevant classes of parametric systems. In particular, the logic can be used profitably as a description language for model-based analysis of software [17] as well as hardware systems [2,16,18,19] and is therefore a good candidate formalism for hardware/software codesign. Some examples of distributed systems have been addressed too [14,15]. From an application point of view this logic conveniently combines two important features in a single formalism: It is both an abstract specification language and an effective programming language. Every specification can be translated into executable behaviour in the form of an equivalent finite state automaton.In this paper we present MOSEL, a new system for the automatic analysis and verification in Monadic Second-order [ogic. The accent here is put primarily on the system's design, rather than on individual algorithms: MOSEL is a