Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Classical Predicate Logic Daniel Bonevac March 26, 2012 Aristotle’s theory of syllogisms, the first real logical theory, took predicates—expressions that are not true or false in themselves, but true or false of objects—as its basic units of analysis. It thus examined a finer level of structure than propositional logic. It looked inside the structure of what propositional logic would call atomic sentences. The Stoics and medieval philosophers developed propositional logic, even while Aristotelian logic remained the central logical theory. These two schools of thought stood side-by-side for centuries, with only a few analogical connections between them. In the nineteenth century, however, George Boole and others tried to unify them by seeing them as reflecting a single underlying algebraic structure. In 1879, Gottlob Frege and Charles Sanders Peirce independently combined them to develop what has become known as classical first-order logic. 1 Syntax Classical first-order logic, also known as predicate logic or quantification theory, adds to propositional logic several new vocabulary items. We will add a set of constants, a set of variables, a set of n-ary predicate symbols, and the quantifiers. We define formulas: 1. A constant or variable is a term. 2. If t1 ...tn are terms, and P is an n-ary predicate symbol, then P(t1 , ..., tn ) is a(n atomic) formula. 3. If A and B are formulas, so are ¬A, ¬B, (A ∧ B), (A ∨ B), (A ⊃ B), and (A ≡ B). 4. If A is a formula and v a variable, ∀vA and ∃vA are formulas. A variable x is bound if it occurs in the scope of a quantifier on that variable; otherwise it is free. A formula with no free variables is closed. A x (c) is the formula obtained by substituting c for each free occurrence of x throughout A. 2 Semantics An interpretation or model is a structure M =< D, v >, where D is a nonempty set known as the domain, v a function from constants into D and from n-ary relation symbols to n-place relations on D. 1 There are various ways of writing truth conditions. A common one uses the concept of an assignment, a function that takes variables into objects of the domain. An assignment u is an x − variant of assignment v iff v and u agree on all variables except perhaps the variable x. Then the truth conditions for quantified statements ∀xA and ∃xA talk about all or some x-variants. Priest does it differently, as do I. Extend the language L to L(M), so that every object in the domain has a name. Then, for every d ∈ D, there is a constant kd such that v(kd ) = d. Our truth definition uses the usual clauses for the connectives, plus: v(Pa1 ...an ) = 1 ⇔ < v(a1 ), ..., v(an ) > ∈ v(P); otherwise it is 0. v(∀xA) = 1 ⇔ for all d ∈ D, v(A x (kd )) = 1; otherwise it is 0. v(∃xA) = 1 ⇔ for some d ∈ D, v(A x (kd )) = 1; otherwise it is 0. If, on model M, v(A) = 1, we can write M |= A. Similarly, if on M v(B) = 1 for every B ∈ X, we can write M |= X. We define implication as before: X |= A ⇔ every model of X is a model of A. (That is, X |= A ⇔ for all M (M |= X ⇒ M |= A).) In every model, • v(¬∃xA) = v(∀x¬A) • v(¬∀xA) = v(∃x¬A) • v(¬∃x(Px ∧ A)) = v(∀x(Px ⊃ ¬A)) • v(¬∀x(Px ⊃ A)) = v(∃x(Px ∧ ¬A)) • v(∀xA) = 1 ⇔ for all c ∈ C, v(A x (c)) = 1 • v(∃xA) = 1 ⇔ for some c ∈ C, v(A x (c)) = 1 The last two could have been taken as defining the truth conditions of quantified sentences. That approach is known as substitutional quantification. When all objects in the domain have names, it agrees with objectual quantification. If there are objects without names, they can diverge. What if there are names without objects? That question leads to free logic. 3 Tableau Completeness We can define tableau rules for quantifiers in the standard way. Where X is finite, X ` A means that there is a closed tableau with the initial list X, ¬A. Open branches induce countermodels: for each constant b appearing on the branch, add an object δ(b) to D, and let v(P) be the set of n-tuples < δb1 , ..., δbn > such that Pb1 ...bn appears on the branch. Note that some tableau may be infinite. (Consider one showing that ∃x∀yS xy is not valid.) Soundness Lemma: Suppose M makes every formula on the initial list of a tableau true. Applying a rule of inference to the branch b produces at least one extension b0 of 2 the branch such that there is a model M 0 of b0 . We must consider each rule. This is trivial in the propositional and negated quantification cases, so the only interesting cases are those for ∀ and ∃. Say we apply the rule that takes us from ∀xA to A x (a) for each constant a on b. Since M |= ∀xA, M |= A x (kd ) for each d ∈ D. Let d be such that v(a) = v(kd ). Then M |= A x (a). So, we can take M 0 = M. Say we apply the rule taking us from ∃xA to A x (c). This is the trickiest rule, since, considered all by itself, it does not appear to be sound; it allows us to move from ∃xF x to Fc, and that is not a valid inference! But its presence in the system does no harm, because the constant c has to be new to the tableau. It cannot have appeared in any premise or in the conclusion. In the tableau, then, it acts to introduce an arbitrary name for an object assumed to exist. The rule encodes the common mathematical practice of introducing a name in such contexts, e.g., in Brouwer’s fixed-point theorem: “Every continuous function f from a closed disk to itself has at least one fixed point. So, if f from closed disk d to d is continuous, there is a point—call it x0 —at which f (x0 ) = x0 .” That does no harm as long as we make no other assumptions about x0 as such. Since M |= ∃xA, there is a d ∈ D such that M |= A x (kd ). Let M 0 = M except that v0 (c) = d. Since c does not occur in A x (kd ) (since it was new to the branch), M 0 |= A x (c). Since v0 (c) = d = v0 (kd ), M 0 |= A x (c). Also, since c was new, no other formula on the branch is affected by the switch from M to M 0 ; they all still come out true. Soundness Theorem: For finite X, X ` A ⇒ X |= A. Suppose X |= / A. Then there is an M such that M |= X and M |= / A. Consider a completed tableau with the initial list X, ¬A. Whenever we apply a rule to an open branch, there is a model M 0 that makes every formula on the extension true, including the initial list. So, we can find a model M∗ for the entire branch. It follows that the branch must be open; if it were closed, there would be a formula B such that both B and ¬B were on the branch, and no model could make both true. So, the tableau is open; X 0 A. It is quite easy to extend our proof of the completeness of our propositional system to cover full predicate logic. Completeness Lemma: Induced interpretations are faithful. Let b be a completed open branch of a tableau and let M be induced by b. Then for any assignment v, if A is on b, v(A) = 1, and, if ¬A is on b, v(A) = 0. Proof. We proceed by induction on the complexity of A. The atomic case is obvious from the definition of being induced by a branch; the propositional cases are exactly as for the propositional lemma. So, the only interesting cases are quantificational. Case 1: ∀xA is on b. Since b is complete, the rule for universal formulas has been applied in every possible case, so, for every constant c on b, A x (c) is on b. By inductive hypothesis, then, v(A x (c)) = 1 for every constant c on b. Since D is just the set of objects named by those constants, however, v(∀xA) = 1. 3 Case 2: ∃xA is on b. Since b is complete, the rule for existential formulas has been applied, so there is a constant c on b such that A x (c) is on b. By inductive hypothesis, then, v(A x (c)) = 1 for some constant c on b. Since D is just the set of objects named by the constants on the branch, however, v(∃xA) = 1. Completeness Theorem: For finite X, X |= A ⇒ X ` A. Proof : Say X 0 A. Then the tableau with initial list X, ¬A is open. There is then an interpretation induced by an open branch making X true and A false. So, X /|= A. We can extend these theorems to arbitrary sets X by going through the premises of an infinite set in order. As a quick corollary to the completeness theorem, we obtain: Compactness: X |= A ⇔ there is a finite X0 ⊆ X such that X0 |= A. In an alternate form, a set is satisfiable iff every finite subset of it is satisfiable. Proof : Set up a tableau with initial list X, ¬A. Since X |= A, it closes. Each branch closes after a finite number of steps; the whole tableau, therefore, closes after a finite number of steps. (This relies on König’s Lemma: a tree with an infinite number of nodes has an infinite branch.) Lowenheim-Skolem Theorem: Every set of formulas with a model has a countable model. Proof : Set up a tableau for the set; it remains open. Choose an open branch; it induces a model. Construct the domain by adding any an object for any constant in the first formula, the second, and so on. Even if the branch is infinite, there can be at most countably many objects that are in the domain. If we have identity in the language, the proof of completeness is slightly more complicated; we build equivalence classes of constants, and correlate objects not with constants but with equivalence classes of constants. This affects the Lowenheim-Skolem theorem, for countably many variables might constitute only finitely many equivalences classes. (Consider the set of formulas consisting solely of ∀x∀y x = y.) In a language with identity as a logical symbol, therefore, we must say only that any set of formulas with an infinite model has a countable model. This leads to Skolem’s paradox: First-order theories of uncountable domains have countable models. A theory of the real numbers, for example, might allow us to prove Cantor’s theorem that there are uncountably many reals. In ZF, we can prove the existence of an uncountable set. Nevertheless, these theories have countable models. “There are uncountably many sets” can be true even in a countable domain! 4