From Philosophical to Industrial Logics ⋆ Moshe Y. Vardi ⋆⋆ Rice University, Department of Computer Science, Rice University, Houston, TX 77251-1892, U.S.A., Email: vardi@cs.rice.edu, URL:http://www.cs.rice.edu/∼vardi Abstract. One of the surprising developments in the area of program verification is how ideas introduced by logicians in the early part of the 20th Century ended up yielding by the 21 Century industrial-standard property-specification languages. This development was enabled by the equally unlikely transformation of the mathematical machinery of au- tomata on infinite words, introduced in the early 1960s for second-order logic, into effective algorithms for model-checking tools. This paper at- tempts to trace the tangled threads of this development. 1 Thread I: Classical Logic of Time 1.1 Monadic Logic In 1902, Russell send a letter to Frege in which he pointed out that Frege’s log- ical system was inconsistent. This inconsistency has become known as Russell’s Paradox. Russell, together with Whitehead, published Principia Mathematica in an attempt to resolve the inconsistency, but the monumental effort did not con- vince mathematicians that mathematics is indeed free of contradictions. This has become know as the “Foundational Crisis.” In response to that Hilbert launched what has become known as “Hilbert’s Program.” (See [1].) One of the main points in Hilbert’s program was the decidability of mathe- matic. In 1928, Hilbert and Ackermann published “Principles of Mathematical Logic”, in which they posed the question of the Decision Problem for first-order logic. This problem was shown to be unsolvable by Church and Turing, inde- pendently, in 1936; see [2]. In response to that, logicians started the project of classifying the decidable fragments of first-order logic [2, 3]. The earliest decid- ability result for such a fragment is for the Monadic Class, which is the fragment of first-order predicate logic where all predicates, with the exception of the equal- ity predicate, are required to be monadic. This fragment can express the classical sylogisms. For example the formula ((∀x)(H (x) → M (x)) ∧ (∀x)(G(x) → H (x))) → (∀x)(G(x) → M (x)) ⋆ A earlier version of this paper, under the title “From Church and Prior to PSL”, appeared in the Proc. 2006 Workshop on 25 Years of Model Checking, Lecture Notes in Computer Science, Springer. ⋆⋆ Supported in part by NSF grants CCR-9988322, CCR-0124077, CCR-0311326, and ANI-0216467, by BSF grant 9800096, and by a gift from the Intel Corporation.