* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download 3.1.3 Subformulas
Meaning (philosophy of language) wikipedia , lookup
Modal logic wikipedia , lookup
Truth-bearer wikipedia , lookup
Cognitive semantics wikipedia , lookup
Curry–Howard correspondence wikipedia , lookup
Combinatory logic wikipedia , lookup
Structure (mathematical logic) wikipedia , lookup
Sequent calculus wikipedia , lookup
Quantum logic wikipedia , lookup
Law of thought wikipedia , lookup
First-order logic wikipedia , lookup
Boolean satisfiability problem wikipedia , lookup
Canonical normal form wikipedia , lookup
Laws of Form wikipedia , lookup
History of the function concept wikipedia , lookup
Intuitionistic logic wikipedia , lookup
Principia Mathematica wikipedia , lookup
76 CHAPTER 3. PROPOSITIONAL LOGIC 3.1.3 Subformulas In the following, we will repeatedly use the concept of a subformula. Informally speaking, a subformula of a propositional formula H is a string occurring in H which itself is a propositional formula. Definition 3.8 Let F be a propositional formula. The set of subformulas of F is the smallest set S(F ) satisfying the following conditions: 1. F ∈ S(F ). 2. If ¬G ∈ S(F ) , then G ∈ S(F ). 3. If (G1 ◦ G2 ) ∈ S(F ) , then G1 , G2 ∈ S(F ). It will be shown in Exercise 3.4 that such a smallest set exists. As an example, let F be the formula ¬((p1 → p2 ) ∨ p1 ). Then we have S(F ) = {¬((p1 → p2 ) ∨ p1 ), ((p1 → p2 ) ∨ p1 ), (p1 → p2 ), p1 , p2 } (see also Exercise 3.5). Consider now the set {¬((p1 → p2 ) ∨ p1 ), ((p1 → p2 ) ∨ p1 ), (p1 → p2 ), p1 , p2 , (p3 ∨ p2 ), p3 }. This set satisfies all three conditions in Definition 3.8. However, it is not the smallest set satisfying these conditions because it contains S(F ) as a proper subset. One should also observe that the set {¬((p1 → p2 ) ∨ p1 ), ((p1 → p2 ) ∨ p1 ), (p1 → p2 ), p1 , p2 , (p3 ∨ p2 )} does not meet the third condition in Definition 3.8. At the end of Section 3.1 I would like to comment on the use of parentheses in propositional logic formulas. In arithmetic expressions not all parentheses are usually written. For example, we often write 14 ÷ 2 + 5 × 3 instead of ((14 ÷ 2) + (5 × 3)). We can do this because there is a common understanding that multiplication and division bind stronger than addition and subtraction. Such binding convention are also often used in logic. Unfortunetely, there is no world-wide standard and every author fixes such conventions to his or her likings. I have decided not to establish any binding conventions in this book, but to always write all paranthesis. On the other hand, we will later learn that conjunction and disjunction are commutative and associative. In analogy to write 3 + 7 + 5 + 8 instead of (((3 + 7) + 5) + 8) we will then allow to write &p1 , p2 , p3 , p4 ' instead of (((p1 ∧ p2 ) ∧ p3 ) ∧ p4 ) and [p1 , p2 , p3 , p4 ] instead of (((p1 ∨ p2 ) ∨ p3 ) ∨ p4 ) . So far, we have defined a formal language whose elements or sentences are the formulas of propositional logic. According to this, the string ((p∧(p → q)) → q) 3.2. SEMANTICS 77 is an example of a formula. But what does this formula mean? What does it represent? In contrast to many programming languages, logic has always been intended to establish a close connection between formulas and their meaning, i. e. between syntax and semantics. It will turn out that the meaning of a formula depends solely on the structure of the formula. 3.2 Semantics Atoms are the simplest statements in propositional logic. What meaning can they have? Recall the statement “the cow is violet” from the beginning of the previous Section 3.1. In the easiest case, which we want to consider here, the statement can either be true or false. We do not allow any other possibility, for instance a “don’t know”. For this reason, we speak of a two-valued logic. Atoms and more complex formulas as well are thus interpreted as true or false. Before defining the notion of an interpretation formally, we will turn again to arithmetic expressions. What is the meaning or what is the value of the expression (3 × (18 ÷ 6) + 7)? Most readers will answer immediately: 16. How is this answer computed? How can a computer calculate the answer? Make a little experiment: Take your favorite editor and type in the string (3 × (18 ÷ 6) + 7). Can your editor calculate it’s value? Most editors cannot do this. Strictly formally, (3 × (18 ÷ 6) + 7) is a string over the alphabet Σ = Q ∪ {+, −, ×, ÷, (, )}. To calculate it’s value, we must specify a function, which maps each arithmetic expression to a rational number. Such a function can be recursively defined on the structure of arithmetic expressions. Before being able to this, however, we need to have a more closer look at the set rational numbers and the function defined over this set. A structure consists of a set of individuals and a set of functions defined over the set of individuals. Here we consider as the set of individuals the rational numbers. There are various functions defined over it like, for example: • Addition +∗ : Q2 → Q , • Subtraction −∗ : Q2 → Q , • Multiplication ×∗ : Q2 → Q , • Division ÷∗ : Q × Q \ {0} → Q . One should observe that there is a difference between the operator +/2 and the function +∗ . +/2 is a symbol occurring in Σ , whereas +∗ /2 is a function mapping two rational numbers to a rational number. The same holds for the operators −/2, ×/2, ÷/2 and the functions −∗ /2, ×∗ /2, ÷∗ /2. 78 CHAPTER 3. PROPOSITIONAL LOGIC Now we can recursively define a function ·I which maps each arithmetic expression to a value as follows: Let T be an arithmetic expression. ! T if T ∈ Q, [T ]I = [T1 ]I ◦∗ [T2 ]I if T is of the form (T1 ◦ T2 ). Hence, we obtain: [((3 × (18 ÷ 6)) + 7)]I = ((3 ×∗ (18 ÷∗ 6)) +∗ 7) = 16. Please observe again the difference between ((3 × (18 ÷ 6)) + 7) and ((3 ×∗ (18 ÷∗ 6)) +∗ 7). The former is a string over Σ , whereas the latter is an expression specifying the application of various functions to rational numbers; it can evaluated – by using a calculator – and we obtain – if the calucator makes no error – the number 16 as value. Let us reconsider the editor mentioned above. What must we tell the editor such that it can evaluate arithmetic expressions? Well, we must specify the structure consisting of the set of rational numbers and the set of functions defined thereof. In addition, we must specify the function ·I defined above. In a computer or a calculator this knowledge is indeed encoded. For example, rational numbers – as long as they are not too big – and the functions defined thereof are often represented and calculated within a mathematical coprocessor. The distinction between ◦/2 and ◦∗ /2, ◦ ∈ {+, −, ×, ÷}, is usually not made explicit and we use ◦/2 to denote both, the symbol of Σ and the function Q × Q → Q . For didactic reasons, I do not want to give up this distinction in this book. After these preliminary considerations we can now turn to the semantics of propositional logic formulas and discuss first the structure of truth values. 3.2.1 The structure of truth values As mentioned above, a structure consists of a set of individuals and a set of functions defined on it. The set of truth values W is the set {+, ⊥}. Here, + denotes true and ⊥ denotes false. We can define a number of functions over this set. There are four different unary functions of type W → W . The only one we are interested in is the negation ¬∗ , and we have ¬∗ (+) = ⊥ and ¬∗ (⊥) = +. The remaining three functions are the identity function as well as the projections on the truth values + and ⊥. There are 16 different binary functions of type W × W → W . They are presented in Figure 3.3. ∧∗ /2 is the conjunction, ∨∗ /2 the disjunction, →∗ /2 the implication, ↑∗ /2 the so-called NAND, ↓∗ /2 the so-called NOR, and ↔∗ /2 the equivalence. Some of these functions additionally exist in a negated version or with swapped operands. The remaining binary functions will not play 79 3.2. SEMANTICS w1 + + ⊥ ⊥ w1 + + ⊥ ⊥ w2 + ⊥ + ⊥ w2 + ⊥ + ⊥ ∧∗ + ⊥ ⊥ ⊥ ↔∗ + ⊥ ⊥ + ∨∗ + + + ⊥ 1↔∗ ⊥ + + ⊥ →∗ + ⊥ + + w∗ + + + + ←∗ + + ⊥ + f∗ ⊥ ⊥ ⊥ ⊥ ↑∗ ⊥ + + + w1 + + ⊥ ⊥ ↓∗ ⊥ ⊥ ⊥ + ¬∗ w1 ⊥ ⊥ + + 1→∗ ⊥ + ⊥ ⊥ w2 + ⊥ + ⊥ 1←∗ ⊥ ⊥ + ⊥ ¬∗ w2 ⊥ + ⊥ + Figure 3.3: The 16 different binary functions over the set W of truth values. any role here and are only presented for completeness. These are the projections on + and ⊥ ( +∗ resp. ⊥∗ ), the projection on the first argument ( w1 ), the negation of the projection on the first argument ( ¬∗ w1 ), the projection on the second argument ( w2 ), and the negation of the projection on the second argument ( ¬∗ w2 ). Not all unary and binary functions over the set W of truth values are usually required. In this book, mainly negation, conjunction, disjunction, implication, and equivalence will play a role. Before we focus on the interpretation of propositional formulas, we will briefly reflect upon implication. Informally, (p →∗ q) represents the statement p implies q. But isn’t it strange that such a statement is true, even if p is false? In everyday life, we generally expect that such a statement only makes sense if we know that p is true. In everyday life, this may indeed be the case, but mathematically viewed, this is problematic. Consider the following statement: if an arbitrary natural number n is odd, then n + 2 is odd as well. This statement seems to be correct. But what happens, if we assign n the value 2 ? Then it says: 2 is odd implies 4 is odd. This sounds peculiar. But still, we should accept this statement being true, because it is an instance of a true and more general statement. 3.2.2 Interpretations We can now formally define a semantics for the language of propositional logic by assigning a truth value to every formula. Definition 3.9 A (propositional logic) interpretation I = (W, ·I ) consists of 80 CHAPTER 3. PROPOSITIONAL LOGIC the set W of truth values and a mapping ·I from the set L(R) of propositional formulas to W satisfying the following conditions: if F ∈ R, w∈W ¬∗ [G]I if F is of the form ¬G, [F ]I = ([G1 ]I ◦∗ [G2 ]I ) if F is of the form (G1 ◦ G2 ). In other words, the connectives are interpreted as the corresponding functions over W . Besides that, we do not impose any further restrictions upon an interpretation. In particular, we do not define how propositional variables are to be interpreted, except that they must be mapped to a truth value. Indeed, different interpretations differ only in the assignment of the propositional variables. The converse holds as well: Consider the propositional variables p1 , . . . , pn . As soon as the assignment of these variables is fixed, the interpretation of any propositional formula containing only the variables p1 , . . . , pn is uniquely defined: Proposition 3.10 For each mapping g from the set of propositional variables to the set W of truth values, there is an interpretation I = (W, ·I ) such that for all propositional variables A we have: g(X) = [A]I .2 Proof Given g : R → W we construct: if F ∈ R, g(F ) ¬∗ [G]I if F is of the form ¬G, [F ]I = ([G1 ]I ◦∗ [G2 ]I ) if F is of the form (G1 ◦ G2 ). According to this construction we find for all A ∈ R : g(A) = [A]I . Following Theorm 3.7, I = (W, ·I ) is uniquely determined and maps all F ∈ L(R) to a truth value. Consequently, I is an interpretation. ! ! Proposition 3.11 Let two interpretations I = (W, ·I ) and I " = (W, ·I ) be ! given. If for all propositional variables A ∈ R we have: [A]I = [A]I , then for I I! all propositional formulas F we have: [F ] = [F ] . The proof of this proposition can easily be obtained by induction on the structure of propositional formulas (see Exercise 3.8). The two propositions make an elegant specification of interpretations possible: It is enough to define to which truth values the propositional variables are mapped. As an example, we consider a function g mapping the propositional variable p1 to + and all 2 I do not know about any formal definition specifying whether a certain statement should be called proposition or theorem. Here, a proposition is a kind of auxiliary statement which follows directly from the definitions, while a theorem is a statement where the proof is more involved. 81 3.2. SEMANTICS other propositional variables to ⊥. By Proposition 3.10 there is an interpretation I = (W, ·I ) with [p1 ]I = + and [A]I = ⊥ for all other propositional variables A. By Proposition 3.11 there is exactly one such interpretation. For the formula ((p1 ∧ (p1 → p2 )) → p2 ) we get: [((p1 ∧ (p1 → p2 )) → p2 )]I = = = = = = = [((p1 ∧ (p1 → p2 ))]I →∗ [p2 ]I ) (([p1 ]I ∧∗ [(p1 → p2 )]I ) →∗ [p2 ]I ) (([p1 ]I ∧∗ ([p1 ]I →∗ [p2 ]I )) →∗ [p2 ]I ) ((+ ∧∗ (+ →∗ ⊥)) →∗ ⊥) ((+ ∧∗ ⊥) →∗ ⊥) (⊥ →∗ ⊥) + Because of these propositions interpretations can be represented compactly. It suffices to record those propositional variables, which are mapped to + by an interpretation. In other words, the interpretation I = (W, ·I ) can be represented by {A | [A]I = +}. Usually, the representation of I is also denoted by I . For example, let R = {pi | i ∈ N} and I = {p2 , p3 , p5 }. Then, we find: ! + if i ∈ {2, 3, 5}, I [pi ] = ⊥ otherwise. This representation has the advantage that we apply set operations to different interpretations. Consider the formula F = ((p∨¬q)∧r). There are 8 different possibilities to assign truth values to the propositional variables p, q and r. Hence, we obtaine 8 different representations of interpretations: ∅, {p}, {q}, {r}, {p, q}, {p, r}, {q, r} and {p, q, r}. Among these, only {r}, {r, p} and {p, q, r} map F to +. One should observe that {r} ⊆ {r, p} ⊆ {p, q, r}. Hence, {r} is the smallest interpretation mapping F to +. One should also observe that {r, p, q}∩{p, r} is again a set of propositional variables and, hence, the representation of some interpretation. In other words, we can compute the intersection of the representation of interpretations. We will come back to this in Chapter 5. According to our notational convention, the 8 interpretations mentioned above map all propositional variables occurring in R \ {p, q, r} to the truth value ⊥. There are many interpretations which do not map all propositional variables occurring in R \ {p, q, r} to ⊥. Obviously, the particular assignment of the variables occurring in R \ {p, q, r} is not important for determining the semantics of F = ((p ∨ ¬q) ∧ r) (see Exercise ??). Consequently, I will restrict interpretations to the variables occurring in F in the sequel. For notational convenience we will often write F I instead of [F ]I . Another remark regarding the notation: I distinguished very clearly between the connectives ¬, ∧, . . . in the language of propositional logic and the functions ¬∗ , ∧∗ , . . . over the set of truth values. Connectives and functions at first have nothing to do with each other. Connectives are syntactic objects. If I enter the character sequence (p ∧ ¬p) on my computer keyboard, the computer 82 CHAPTER 3. PROPOSITIONAL LOGIC does not have any idea of what I mean by this. To the computer, this is really just a character sequence and nothing more. But if I call the mathematical function ∧∗ with arguments ⊥ and +, then I receive the value ⊥. Only the interpretation establishes a connection between connectives and functions, that is between ¬ and ¬∗ , ∧ and ∧∗ , and so on. Beause we always interprete ¬ as ¬∗ , ∧ as ∧∗ , and so on, one often speaks of a standard interpretation. And many authors do without a clear distinction between connectives and functions by denoting them in the same way and simply omitting the “ ∗ ”. Definition 3.12 Let F be a propositional formula. • F is called satisfiable if there is an interpretation I = (W, ·I ) with F I = +. • F is called valid (or F is a tautology) if for all interpretations I = (W, ·I ) we have: F I = +. • F is called falsifiable if there is an interpretation I = (W, ·I ) with F I = ⊥. • F is called unsatisfiable if for all interpretations I = (W, ·I ) we have: F I = ⊥. Consider for example the propositional formula F = (p ∨ q). It is satisfiable, because for the interpretation I with pI = + we have: F I = (pI ∨∗ q I ) = (+∨∗ q I ) = +. But at the same time, F is falsifiable, because for the interpretation I with pI = q I = ⊥ we have: F I = (pI ∨∗ q I ) = (⊥ ∨∗ ⊥) = ⊥. 3.2.3 Truth Tables The formula G = ((p ∧ (p → q)) → q) is valid. To prove this, we would have to consider all interpretations. Because there are infinitely many propositional variables in the alphabet of propositional logic, and because an interpretation is uniquely characterized by the assignment of the propositional variables, there are infinitely many interpretations. Do we really have to consider all of these interpretations in order to decide whether G is valid? Fortunately not. As discussed before, the truth value assigned to a formula F by an interpretation I depends exclusively on the truth values assigned by I to the propositional variables occurring in F . In the example, these are only the variables p and q. Because we consider a two-valued logic, there are 22 = 4 different interpretations I for which we have to prove that GI = + holds. The reader may convince herself or himself that this is the case for each of the four interpretations in our example. Thus G is indeed valid. In this context, we often speak of creating or computing a truth table for G. The procedure is defined in detail in Figure 3.4. 83 3.2. SEMANTICS 1. Let m = |S(F )| the number of subformulas of F . 2. Let n = |{p ∈ R | p ∈ S(F )}| the number of propositional variables occurring in F . 3. Form a table with 2n rows and m columns, where the first n columns are marked by the n propositional variables occurring in F and the last column is marked by F . 4. Fill in the first n columns with + und ⊥ as follows: In the first column fill in alternating downwards +⊥+⊥ . . . , in the second column ++⊥⊥ . . . , in the third column ++++⊥⊥⊥⊥ . . ., etc. 5. Calculate the values in the remaining columns using the known functions on the set of truth values. Figure 3.4: The computation of a truth table T (F ) for a propositional formula F . As an example consider the propositional formula F = ((p ∨ ¬q) ∧ r). We compute the following steps: 1. m = |S(F )| = |{((p ∨ ¬q) ∧ r), (p ∨ ¬q), p, ¬q, q, r}| = 6 . 2. n = |{p | p ∈ R ∩ S(F )}| = 3 . 3. With 23 = 8 we obtain the following table: 1 2 3 4 5 6 7 8 p q r ¬q (p ∨ ¬q) ((p ∨ ¬q) ∧ r) 84 CHAPTER 3. PROPOSITIONAL LOGIC 4. After filling in the first n = 3 columns we obtain: 1 2 3 4 5 6 7 8 p + ⊥ + ⊥ + ⊥ + ⊥ q + + ⊥ ⊥ + + ⊥ ⊥ r + + + + ⊥ ⊥ ⊥ ⊥ ¬q (p ∨ ¬q) ((p ∨ ¬q) ∧ r) 5. After filling in the remaining columns we obtain: 1 2 3 4 5 6 7 8 p + ⊥ + ⊥ + ⊥ + ⊥ q + + ⊥ ⊥ + + ⊥ ⊥ r + + + + ⊥ ⊥ ⊥ ⊥ ¬q ⊥ ⊥ + + ⊥ ⊥ + + (p ∨ ¬q) ((p ∨ ¬q) ∧ r) + + ⊥ + + + + + + + ⊥ ⊥ + + + + With the help of such a truth table T (F ) we can now decide the questions concerning satisfiability, validity, falsifiability and unsatisfiability as follows: • F is satisfiable if and only if T (F ) contains a row with entry + in the last column. • F is valid if and only if all rows in T (F ) have the entry + in the last column. • F is falsifiable if and only if T (F ) contains a row with entry ⊥ in the last column. • F is unsatisfiable if and only if all rows in T (F ) have the entry ⊥ in the last column. Strictly speaking, all these propositions must be proven (see Exercise ??). Because of the second item, truth tabling, i. e. the computation of a truth table, is sound and complete in the following sense: It is sound because whenever in a truth table T (F ) all rows have the entry + in the last column, then F is known to be valid. It is complete because whenever F is valid, then all rows in the truth table T (F ) have the entry + in the last column. Truth tabling can be readily implemented on a computer. Hence, we have a first link between the semantic concept of validity and the operational mechanism of truth tabling. We will come to this in Section 3.4. 85 3.2. SEMANTICS 3.2.4 Models Definition 3.13 An interpretation I = (W, ·I ) is called model for a propositional formula F , in symbols I |= F , if F I = +. We want to introduce a further notational abbreviation: If the interpretation I is not a model for the formula F , i. e. if F I = ⊥ , then we write I 1|= F . If all interpretations are models for F , i. e. if F is valid, then we write |= F . The notions of being satisfiable, valid, falsifiable, and unsatisfiable are not independent of each other. The following theorem may serve as an example for this. Theorem 3.14 A propositional formula F is valid ( |= F ), if and only if ¬F is unsatisfiable. Proof |= F iff iff iff 3 all interpretations are models for F no interpretation is model for ¬F ¬F is unsatisfiable. ! This theorem will be of great importance later because many computer-aided methods for proving validity of a formula F negate this formula and then prove that ¬F is unsatisfiable. Sometimes it is more natural to speak about a set of formulas instead of a conjunction of formulas. With this notion in mind, concepts like satisfiability and model can immediately be extended to sets of formulas. Definition 3.15 Let F be a set of propositional formulas. • F is satisfiable, if there is an interpretation mapping each element G ∈ F to +. • An interpretation I is called model for F , in symbols I |= F , if I is model for all G ∈ F . 3.2.5 Logical Consequence The central notion of a logic is the logical consequence. Consider the statement “who says A must say B”. If now a not further specified person actually says “A”, then we can conclude based on the statement that this person must say “B” as well. This conclusion is completely independent of what “says A” and “says B” really means. “Says A” could stand for “buys car” and “says B” for “has to pay”. For the conclusion drawn, this is completely irrelevant. It follows simply from the structure. 3 iff is an abbreviation for “if and only if”. 86 CHAPTER 3. PROPOSITIONAL LOGIC Definition 3.16 A propositional formula G is a (propositional) consequence of a set of propositional formulas F , in symbols F |= G, if and only if for every interpretation I we have: if I models F , then I models G as well. If the propositional variable p represents the statement “says A” and q represents the statement “says B”, then the sentence “who says A must say B” can be represented as implication (p → q). Assume further that a not further specified person actually says “A”, which we represent by p. We can easily decide that {p, (p → q)} |= q holds: We only have to consider all interpretations satisfying p as well as (p → q) and then check whether these interpretations also model q. We can do so by generating the following table: p + ⊥ + ⊥ q + + ⊥ ⊥ (p → q) + + ⊥ + With the help of this table we can now check whether all interpretations which are a model for p and are a model for (p → q), are also models for q. In this example only the interpretation {p, q} maps p as well as (p → q) to +. Because q ∈ {p, q}, this interpretation maps also q to +. Hence, we conclude: {p, p → q} |= q. Consider as second example the question whether {(p ∨ q) |= q} holds. Again, we compute a corresponding table: p q + + ⊥ + + ⊥ ⊥ ⊥ (p ∨ q) + + + ⊥ The interpretations {p, q}, {q} and {p} are models for (p ∨ q). But one of them, {p}, is not a model for q. Hence, {(p ∨ q)} |= q does not hold. As a final example consider the question whether {(p ∧ ¬p)} |= q holds. We generate a corresponding table: p q + + ⊥ + + ⊥ ⊥ + ¬p ⊥ + ⊥ + (p ∧ ¬p) ⊥ ⊥ ⊥ ⊥ In this example there is no model for (p ∧ ¬p). According to Definition 3.16 we learn that q is a logical consequence of {(p ∧ ¬p)}, if for each interpretation 3.3. EQUIVALENCE AND NORMAL FORMS 87 I we find: if I is a model for {(p ∧ ¬p)}, then I is a model for q . The statement “if I is a model for {(p ∧ ¬p)}, then I is a model for q” is an implication, whose precondition “ I is a model for {(p ∧ ¬p)}” is always false. According to our definition of the implication →∗ over the set of truth values, the implication is true. Hence, q follows logically from {(p ∧ ¬p)}. Indeed, an unsatisfiable set of formulas allows to conclude everything. There is a close connection between the concept of logical consequence and validity: Theorem 3.17 Let F, F1 , . . . , Fn be propositional formulas. {F1 , . . . , Fn } |= F holds if and only if |= ((. . . (F1 ∧ F2 ) ∧ . . . ∧ Fn ) → F ) holds. For the proof I refer to Exercise 3.9. As to the example mentioned above, this theorem states that, in order to prove {p, (p → q)} |= q, it suffices to prove the validity of ((p ∧ (p → q)) → q). 3.3 Equivalence and Normal Forms In a language, there are normally many different possibilities to express one and the same fact. This is the same in the language of logic. For example, based on the given semantics, there is no reason to distinguish the formulas ¬¬F and F . They are evaluated equally under any interpretation. We want to consider such pairs of formulas in more detail in the next section. Furthermore, in a class of formulas all having the same meaning, we will distinguish certain forms. These forms are called normal forms, and we will introduce algorithms transforming formulas into a normal form with equivalent meaning. 3.3.1 Semantic Equivalence First of all, we consider here formulas which are evaluated equally under all interpretations. Definition 3.18 Two propositional formulas F and G are semantically equivalent, in symbols F ≡ G , if for all interpretations I we have: I |= F if and only if I |= G . Theorem 3.19 Let F , G , and H be propositional formulas. The following