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
Logic in Computer Science Chapter 3 Propositional Logic 3.1. The syntax Transparency No. 3.1-1 Propositional Logic: syntax Key contents Vocabulary: Syntax: wffs(合法句式) subformulas occurrences of subformulas Semantics:(語意) Interpretations Truth conditions models, logical equivalence, logical consequence validity, satisfiability. Properties of PL0 Normal forms: CNF, DNF, [clausal forms] Axiomatics: (公設化) Calculus An axiom system for PL0 Soundness(正確性) Completeness(完備性) Compactness (緻密性) [Proof methods: Analytic tableaux method resolution ] deduction theorem, substitution theorem some equivalences functional completeness Transparency No. 3.1-2 Propositional Logic: syntax Propositional Logic PL0 (The language) the logic of 'or', 'and', 'not', 'if' (material implication) and ‘iff’ etc. Vocabulary: (S = PV LC where) 1. PV= {p1,p2,...}: a (countable) set of symbols, each called a propositional variable. used to represent propositions of domains of interest. e.g., p1 = "It is raining now"; p2 = " A1 is the father of A2"; etc. 2. (LC is ) logical connectives: 1. ∧ (and), ∨ (or), ~ (not), (if), (iff; if and only if; or equivalence), [2. and more (XOR, NAND, NOR, False, True etc.) if needed ] 3. Parentheses: (, ). Transparency No. 3.1-3 Propositional Logic: syntax Syntax: well-formed formulas(wff) Wff is a subset of S* and is defined inductively as follows: 1. Every propositional variable (also called atom) pi is a (wellformed) formula. 2. If A, B are wffs, then so are (A ∧ B), (A∨B), (A B), (A B) and ~A. Some wffs and some non-wffs: 1. (p1 ∨ (p2 ∧ p1)), 2. (p1 (p2 ∨(p3 ( ~p1 ∧ p2))) 3. (p1 ∨ q), 4. (p1), 5. (~(p1 ∧ p2) ) Problem: Which of the above strings are wffs ? Notes: 1. We use A,B,C,… for wffs and p,q,r, for propositional variables. Transparency No. 3.1-4 Propositional Logic: syntax Abbreviations and conventions about wffs Conventions: wffs are also called sentences or simply formulas. Wffs which are not atoms are called compound formulas. use A,B, C,... to represent arbitrary wffs use p, q, r,... to represent arbitrary propositional variables Parentheses are omitted if ambiguity cannot occur. A\/B\/C abbreviates ((A\/B)\/C) precedence of connectives: ~ > ∧>∨> > e.g., 1. p ∧ q ∨ r means ((p ∧ q) ∨ r) 2. p ∨ q ∧ ~ r p q ∨ s means ((p ∨(q ∧ ~r)) (q ∨ s)) Transparency No. 3.1-5 Propositional Logic: syntax Immediate subformulas and primary connecive Def: I-sub(A) = immediate subformulas of A, and pconn(A) = primary connective of A are defined as 1. I-sub(p) = {}, I-sub( (B @ C) ) = {B, C}, I-sub( ~B ) = {B}. 2. pconn(p) is undefined, pconn((B@C)) = @, pconn(~B) = ~. where @ is /\, \/,-> or <->. Any wff in I-sub(A) is called an immediate subformula of A. Example: What about ((p->(q->r))->((p->q)->(p->r))) ? Theorem: [Unique readability of wffs:] Every compound wff has a unique primary connective and [a unique set of] immediate subformulas. Transparency No. 3.1-6 Propositional Logic: syntax Some lemmas about Wffs 1. Every wff has the same number of ‘(‘ and ‘)’. Pf: by structural ind. base case: A = p is an atom: then #l(A) = 0 = #r(A). ind. step: case 1. A = (B @C). #l(A) = 1 + #l(B) + #l(C) = 1 + #r(B) + #r(C) --- by ind. hyp. = #r(A). case 2. A = ~B. Similar to case 1. Def: a, b: two strings. a is a prefix of b iff $ g s.t. b = a g. a is a proper prefix of b iff a b and a is a prefix of b. Transparency No. 3.1-7 Propositional Logic: syntax some lemmas about wffs (cont’d) 2. If A is a wff and a is a proper prefix of A, then a either is a (possibly empty) sequence of ~ or has more left parentheses than right parentheses. Pf: A = p. trivial. A = ~B. Suppose a = ~ b and B = bg, where g e. => (by ind. hyp) b is either a seq of ~ or #l(b) > #r(b). => a is either a seq of ~ or #l(a) > #r(a). A = (B @ C). Four cases need to be considered. 1. a = ‘(‘. ok! 2. a = ‘(b’. where b is a prefix of B. 3. a = ‘(B@’. 4. a = ‘(B@ b’, where b is a prefix of C. qed Corollary: If A is a wff and a is a proper prefix of A, then a is not a wff. Transparency No. 3.1-8 Propositional Logic: syntax Proof of unique readability Pf: 1. [existence:] induction on the structure of wff A. Base case: A = p is an atom. Ok. Since A is not a compound wff. Ind. step: case 1: A = (B @ C), where @ is /\,\/,-> or <->. Then {B, C} is a set of immediate subformulas of A, and @ is the primary connective of A. case 2: A = ~B, then {B} is a set of immediate subformula of A and ~ is a primary connective of A. qed 2. [uniqueness:] base case: A = p. trivial. A is compound. case analysis: 1. A = ~B = ~C. => B = C. ok. 2. A = (B1 @1 C1) = (B2 @2 C2). if B1 B2, then B1 is a proper prefix of B2 or vice versa. => either B1 or B2 is not a wff. if B1 = B2 => @1 = @2 and C1 = C2. 3. A = ~B = (C @ D). impossible! since ~ (. qed Transparency No. 3.1-9 Propositional Logic: syntax Subformula Given a formula, we may need to know not only its immediate subformula but also all immediate subformula of of its immediate subformula and so on. Ex: The formula ((p \/ (q /\ ~r)) -> (q \/ s)) has subformula ((p \/ (q /\ ~r)), (q \/ s)), which have subformula p, (q/\~r); q, s, respectivey. And (q/\~r) has subformula q and ~r, where ~r has subfomula ~r. As a result, A = ((p \/ (q /\ ~r)) -> (q \/ s)) has subformulas: 1. A, 2. ((p \/ (q /\ ~r)), (q \/ s)), 3. p, (q/\~r), q, s, 4. q, ~r, r Transparency No. 3.1-10 Propositional Logic: syntax The Subformulas of wffs Recursive Definition: [subformulas] For each wff A, the set sub(A) of all subformulas of A is defined inductively as follows: 1. If A = p, where p is a propositional variable, then sub(p) = {p}. 2. If A = B @ C, where @ is either /\,\/,-> or , then sub(A) = sub(B) U sub(C) U {A}. 3. If A = ~B, then sub(A) = sub(B) U {A}. If B sub(A), we say B is a subformula of A. If B sub(A) but B A, we say B is a proper subformula of A. If G is a set of wffs, define sub(G) = U A G sub(A) Ex: What is the relationship between sub(A) and I-sub(A) ? Ans: Let A i-sub B means B i-sub(A). Then B sub(A) iff A i-sub* B. Transparency No. 3.1-11 Propositional Logic: syntax Tree representation of wffs How to quickly find all subformula? display the formula in a tree format. Examples: (x + 3) / (2 + 1) * y ((p \/ q) /\ ~ ( ~q /\ r)) Transparency No. 3.1-12 Propositional Logic: syntax (x + 3) / (2 + 1) *y (x+3)/(2+1) (x+3) x y 2+1 3 * 2 / y + 1 x + 3 2 1 parse tree for arithmetic expression Transparency No. 3.1-13 Propositional Logic: syntax root (p \/ q) /\ ~ ( ~q /\ r) leaf internal node (immediate)predecessor (p \/ q) ~ ( ~q /\ r) -- (parent) ancestor (immediate)successor -- (child) descendant p (~q /\ r) q degree, branch [factor] n-ary tree ~q r path depth (of a tree) level (of a node) q Formula tree for the formula (p\/q)/\~(~q /\ r) Transparency No. 3.1-14 Propositional Logic: syntax Assign addresses (id codes) to nodes of a tree e (p \/ q) /\ ~ ( ~q /\ r) (p \/ q) p 00 q 01 0 1 ~ ( ~q /\ r) (~q /\ r) 10 100 ~q r q 1000 101 Transparency No. 3.1-15 Propositional Logic: syntax Formal definition of a Tree [domain] define [n] =def {0,1,…, n-1}. [n]* =def {0,1,…,n-1}* be the set of all n-digit strings. Any subset D of [n-1]* is a tree [domain] iff 1. e D, which is the root (address) of the tree. 2. for all string x and digit i < n, xi D implies xj D for all j < i. 3. for all string x, and for all prefix y of x, x D implies y D. Notes: 1. Every member of D is called a position (or place). 2. Tree domains can be infinite sets. Transparency No. 3.1-16 Propositional Logic: syntax More terminology for tree domain Some definitions: depth(D) = max{ |x| | x D }; degree(x) = |{i | xi D}|; level(x) = |x|. arity(D) = branching(D) = max{ degree(x) | x D}. Arity(D) < 3 => binary tree domain. leaf(x) iff x D but x0 D. root(x) iff ? internal(x) iff ? Transparency No. 3.1-17 Propositional Logic: syntax Some more definitions about tree domains D: a tree domain. A path of D is a possibly infinite sequence of nodes x1, x2,…xn, s.t. xi+1 is an immediate successor of xi for all i = 1,2,… A branch of D is a miximal path of D. Exercise: Every branch of a tree must begins at the root node. Theorem 1.4: (Konig’s lemma): If a finitely branching tree T is infinite, it has an infinite path. pf: An infinite path x0,x1,x2,… is generated as follows: 1. let x0 = e. let n = 0. 2. since xn has infinitely many successors and has only finitely many immediate successors, it must has one child which has infinitely many successors. let xn+1 be any such child. 3. increase n by 1, goto 2. Obviously the procedure never terminates and we can generate an infinite path. Transparency No. 3.1-18 Propositional Logic: syntax The pseudo program for producing an infinite path 1. k = 0; 2. let xk =e; 3. while true { // precondition: xk has infinitely many successors. 3.1 choose a child j of xk which has infinitely many successors. 3.2 let x k+1 = xk j ; 3.3 k = k+1; // postcondition: xk has infinitely many successors. } Note: This program will not terminate and would produce an infinite path. Transparency No. 3.1-19 Propositional Logic: syntax unlabeled trees and labeled trees An unlabeled tree is (or can be represented as ) a tree domain. A labeled tree is a tree in which every node is associated with a label, which can be anything of interest. S: a nonempty (label) set. An n-ary S-tree is a function T : DT --> S , where DT is a tree domain with arity < n+1. Example: A formula tree is a Binary Wff-tree T:DT-> Wff where DT is a binary tree domain. Transparency No. 3.1-20 Propositional Logic: syntax Formula trees for wffs Def: A formula tree is a finite binary wff-tree T:DT Wff, whose node labeling satisfies the following conditions: for all node d DT: 1. if T(d) is an atom => d is a leaf. 2. T(d) = (A @ B), => d has two immediate successors d0 and d1 and T(d0) = A and T(d1) = B. 3. T(d) = ~A => d has one immediate successor d0 and T(d0) = A. A formula tree for a wff A is a formula tree TA with TA(e) = A. Transparency No. 3.1-21 Propositional Logic: syntax Def: 1. depth of a wff: depth(A) = depth of the formula tree for A. 2. support(A) = the set of atoms appearing in A. Exercise: Give an inductive definition for the depth and support of a wff Example: What is the formula tree for (~(p/\q)->r) ? Theorem 2.4: Every wff has a unique formula tree for it. pf: left as an exercise. Def: For each wff A, let its formation tree be the unique tree TA: DA-> sub(A) with TA(e) = A. Transparency No. 3.1-22 Propositional Logic: syntax Subtrees of a formula tree T:DWff a formula tree for A (i.e., T(e) = A) x : a node (place, address) of D Notation: T(x) is the subformula of A at place x. T|x is the subformula tree of T rooted at place x. Ex: if T is a formula tree for a binary compound formula. Then T(0) = left i-sub(A ) T|0 = subformula tree for T(0) Note: Instead fo usign T|x, we may also use T(x) to denote a subformula or a subformula tree depending on the context. Transparency No. 3.1-23 Propositional Logic: syntax Assign addresses (id codes) to nodes of a tree T: e (p \/ q) /\ ~ ( ~q /\ r) T(0) (p \/ q) p 00 T|0 q 01 0 1 ~ ( ~q /\ r) (~q /\ r) 10 100 ~q r q 1000 101 Transparency No. 3.1-24 Propositional Logic: syntax Occurrence and subformulas Each subformula B of a wff A may occur many times: Ex: In A = ( p /\ q) \/ (~p -> (p /\ q)), the subformula (p /\ q) occurs twice, one at place 0 and one at 11 at the formation tree TA for A. (i.e., TA(1)=TA(11) = (p /\ q) p occurs ? times, and ~p occurs ? time. Definition: A: a wff, B: a wff formula. A subformula occurrence of B in A is a subtree rooted at place x in the formation tree TA for A s.t. TA(x) = B. Namely we can identify a subformula occurrence as a subtree of A. Sometimes we may need to distinguish between subformulas and occurrences of subformulas. Transparency No. 3.1-25 Propositional Logic: syntax Substitution operations on formula trees Substitution: T : D Wff a formula tree, S: a formula tree, x a non-root place ==> let T[x/S] denote the resulting tree obtained by substituting S for the subformula tree of T rooted at x. Ex: if A = (p \/ q) /\ ~(~p \/ r). S = (q/\ ~r) Then A[10/S] = ? Sol: Note A[10] is (p \/ q) /\ ~ (~p \/ r). Hence A[10/S] = (p \/ q) /\ ~ (q/\ ~r). Ex: If B = p q \/ r /\ ~q, then B[01/S] = ? Transparency No. 3.1-26