
Cent. Eur. J. Comp. Sci. • 2(3) • 2012 • 194-213 DOI: 10.2478/s13537-012-0027-3 Central European Journal of Computer Science Satisfiability in composition-nominative logics Review Article Mykola S. Nikitchenko∗, Valentyn G. Tymofieiev† Department of Theory and Technology of Programming, Taras Shevchenko National University of Kyiv, 64, Volodymyrska Street, 01601 Kyiv, Ukraine Received 14 February 2012; accepted 17 August 2012 Abstract: Composition-nominative logics are algebra-based logics of partial predicates constructed in a semantic-syntactic style on the methodological basis, which is common with programming. They can be considered as generaliza- tions of traditional logics on classes of partial predicates that do not have fixed arity. In this paper we present and investigate algorithms for solving the satisfiability problem in various classes of composition-nominative logics. We consider the satisfiability problem for logics of the propositional, renominative, and quantifier levels and prove the reduction of the problem to the satisfiability problem for classical logics. The method developed in the pa- per enables us to leverage existent state-of-the-art satisfiability checking procedures for solving the satisfiability problem in composition-nominative logics, which could be crucial for handling industrial instances coming from domains such as program analysis and verification. The reduction proposed in the paper requires extension of logic language and logic models with an infinite number of unessential variables and with a predicate of equality to a constant. Keywords: partial predicates • partial logics • first-order logics • satisfiability • validity • compositionality • nominativity • compostion-nominative logics © Versita Sp. z o.o. 1. Introduction The satisfiability problem is one of the classical problems in logic [17]. Lately, interest in this problem has increased due to the practical value it has obtained in such areas as program verification, synthesis, analysis, testing, etc. [13, 15, 19]. In this paper we address the satisfiability problem in the context of the composition-nominative approach [20], which aims to construct a hierarchy of logics of various abstraction and generality levels on the methodological basis, which is common with programming. The main principles of the approach are principles of development from abstract to concrete, priority of semantics, compositionality, and nominativity. These principles specify a hierarchy of new logics that are semantically based on algebras of predicates. Predicates are considered as partial mappings from a certain class of data Dt into the class of Boolean values Bool. Operations over ∗ E-mail: [email protected] (Corresponding author) † E-mail: [email protected] 194 Mykola S. Nikitchenko, Valentyn G. Tymofieiev predicates are called compositions. They are treated as predicate construction tools. Data classes are considered on various abstraction levels but the main attention is paid to the class of nominative data. Such data consist of name-value pairs. In the simplest case nominative data can be considered as partial mappings from a certain set of names (variables) V V into a set of basic (atomic) values A. These data are called nominative sets; their class is denoted A. Nominative sets represent program states for simple programming languages (see, for example, [18, 20, 27, 30]). Partial predicates V V ;A V p V ;A V p and functions over A are called quasiary, their classes are denoted Pr = A −→ Bool and Fn = A −→ A V p V respectively. Partial mappings of type A −→ A are called bi-quasiary. Such mappings represent program semantics V ;A for simple programming languages; therefore their class is denoted Prg . From this follows that semantic models of programs and logics are mathematically based on the notion of nominative set (nominative data in general case). This fact permits the integration of models of programs and logics representing them as a hierarchy of composition-nominative models [22, 23]. Logics developed within such approach are called composition-nominative logics (CNL) because their predicates and functions are defined on classes of nominative data, and logical connectives and quantifiers are formalized as predicate compositions. CNL can be considered as a generalization of classical predicate logic but for all that many methods developed within classical logic can also be applied to CNL. In the paper we confirm this statement for the satisfiability problem in CNL. We consider three levels of CNL - propositional, renominative, and quantifier levels - and construct the algorithms that reduce the satisfiability problem to classical cases, respectively, to the same problem in classical propositional logic, quantifier-free predicate logic, and classical first-order predicate logic. In the latter case the logic language should be extended with an infinite number of unessential variables and with additional predicate of equality to a constant. The paper is structured as follows: In Section 2 we give an introduction to the composition-nominative approach, its main motivation, ideas, and notions taking into consideration that the literature on CNL is available primarily in Russian/Ukrainian. In Section 3 we give an overview of the composition-nominative logics hierarchy; then in Section 4 we give formal definitions of logics considered in this paper, and define the satisfiability problem in Section 5. In Sections 6-8 we discuss and prove reduction methods for solving the satisfiability problem on propositional, renominative, and quantifier levels respectively. We discuss related work in Section 9. Finally, in Section 10 we summarize our results and formulate directions for future investigations. 2. Composition-nominative approach to software system formalization Mathematical logic proposes a powerful instrument for studying properties of software systems. Still, the application of existing or modified logics to software system domain is not easy. An analysis can demonstrate certain discrepancies between a problem to be solved and a logic being used. For example, in the development of software systems (later simply referred to as programs) we have to admit the following discrepancies: • semantics of programs is adequately represented by partial functions whereas in traditional logic total functions and predicates are usually considered; • programming languages have a developed system of data types whereas traditional logic prefers to operate with simple unstructured types (sorts); • semantic aspects of programs prevail over syntactic aspects whereas in traditional logic we have an inverse situation. These types of discrepancies complicate the usage of logic for program development, analysis, and verification. Therefore we advocate another scheme of relationship between mathematical logic and programming. Namely, we propose to take program models as an initial point and to construct logics based directly on such models. Thus, instead of adaptation of logic to program models we will “extract” logics from such models. To realize this idea we should first construct adequate models of programs. To tackle this problem we use composition- nominative approach to program formalization [20], which aims to construct a hierarchy of program models of various abstraction and generality levels. The main principles of the approach are the following. • Development principle (from abstract to concrete): program notions should be introduced as a process of their development that starts from abstract understanding, capturing essential program properties, and proceeds to more concrete considerations. 195 Satisfiability in composition-nominative logics • Principle of priority of semantics over syntax: program semantic and syntactic aspects should be first studied separately, then in their integrity in which semantic aspects prevail over syntactic ones. • Compositionality principle: programs can be constructed from simpler programs (functions) with the help of special operations, called compositions, which form a kernel of program semantics structures. • Nominativity principle: nominative (naming) relations are basic ones in constructing data and programs. Here we have formulated only principles relevant to the topic of the article; a richer system of principles is developed in [22]. The above-stated principles specify program models as composition-nominative systems (CNS) [20, 22]. Such a system may be considered as a triple of simpler systems: composition, description, and denotation systems. A composition system defines semantic aspects of programs, a description system defines program descriptions (syntactic aspects), and a denotation system specifies meanings (referents) of descriptions. We consider semantics of programs as partial functions over a class of data processed by programs; compositions are n-ary operations over functions. Thus, composition system can be specified as two algebras: data algebra and function algebra. Function algebra is the main semantic notion in program formalization. Terms of this algebra define syntax of programs (descriptive system), and ordinary procedure of term interpretation gives a denotation system. CNS can be used to construct formal models of various programming, specification, and database languages [3, 20, 22]. Program models represented by CNS are mathematically simple, but specify program semantics rather adequately; program models are highly parametric and can represent programs of various abstraction and generality levels in a natural way; on the
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages20 Page
-
File Size-