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
ประพจน์ (Propositions) • ประโยคที่สามารถกาหนดค่าความจริ ง (Truth Values) ได้ ในตรรกคณิตศาสตร์ จะเรี ยกประโยค ประเภทนี ้ว่า “ข้ อความ (statement)” หรื ออาจจะ เรี ยกว่า “ประพจน์(Proposition)” • ประโยคที่ไม่มีคา่ ความจริ งจะไม่เป็ นประพจน์ เช่นประโยค คาถาม ประโยคขอร้ อง ประโยคคาสัง่ Propositional Logic George Boole (1815-1864) • Propositional Logic เป็ นตรรกของข้ อความหลายๆ ข้ อความที่เกี่ยวเนื่องกัน (compound statements) โดย จะเรี ยกตรรกนี ้ว่า Boolean connectives. นิยาม: ประพจน์ใดๆ (มักจะแทนด้ วย p, q, r, …) ก็คือ: • ข้ อความ (ส่วนใหญ่แล้วจะอยู่ในรู ปของประโยค) ที่มีความหมาย บางอย่างและความหมายจะต้ องมีความชัดเจน • และประพจน์จะต้ องมีคา่ ความจริง (Truth value) โดยค่า ความจริงนี ้จะมีคา่ เป็ นจริง (true: T) หรื อไม่ก็เท็จ (false: F) Truth table • The connective | is called the Sheffer stroke. The connective ↓ is called the Peirce arrow. • The values of the compound propositions obtained by using the binary connectives are given in the following table: In the conditional p → q, p is the antecedent and q is the consequent. The conditional p → q is often read informally as “p implies q”. ตัวดำเนินกำรบูลนี โดยทัว่ ไป Formal Name Nickname Arity Symbol Negation operator NOT Unary ¬,~ Conjunction operator AND Binary Disjunction operator OR Binary Exclusive-OR operator XOR Binary Implication operator IMPLIES Binary Biconditional operator IFF Binary ↔ Examples: 1. “x > 5” is not a proposition, because its truth value cannot be determined unless the value of x is known. 2. ให้ แสดงลาดับการทางานของสเตจเม็นต์ตอ่ ไปนี ้ด้ วยวงเล็บ 1.1.2 EQUIVALENCES, IDENTITIES, AND NORMAL FORMS • Tautology เป็ นประพจน์เชิงประกอบที่เป็ นจริ งเสมอ • contradiction (or self-contradiction) เป็ นประพจน์เชิงประกอบที่เป็ นเท็จ เสมอ • A compound proposition P logically implies a compound proposition Q, written P -> Q, if Q is true whenever P is true. In this case, P is stronger than Q, and Q is weaker than P. • Compound propositions P and Q are logically equivalent, written P ≡ Q, P ⇔ Q, or P iff Q, if they have the same truth values for all possible truth values of their variables. • A logical equivalence that is frequently used is sometimes called a logical identity. Proof by truth table Proof by series of logical equivalences: Predicate Logic • Predicate logic is an extension of propositional logic that permits concisely reasoning about whole classes of entities. • Propositional logic (recall) treats simple propositions (sentences) as atomic entities. • In contrast, predicate logic distinguishes the subject of a sentence from its predicate. – Remember these English grammar terms? Subjects and Predicates • In the sentence “The dog is sleeping”: – The phrase “the dog” denotes the subject the object or entity that the sentence is about. – The phrase “is sleeping” denotes the predicate- a property that is true of the subject. • In predicate logic, a predicate is modeled as a function P(·) from objects to propositions. – P(x) = “x is sleeping” (where x is any object). Universes of Discourse (U.D.s) • The power of distinguishing objects from predicates is that it lets you state things about many objects at once. E.g., let P(x)=“x+1>x”. We can then say, “For any number x, P(x) is true” instead of (0+1>0) (1+1>1) (2+1>2) ... • The collection of values that a variable x can take is called x’s universe of discourse. Quantifier Expressions • Quantifiers provide a notation that allows us to quantify (count) how many objects in the univ. of disc. satisfy a given predicate. • “” is the FORLL or universal quantifier. x P(x) means for all x in the u.d., P holds. • “” is the XISTS or existential quantifier. x P(x) means there exists an x in the u.d. (that is, 1 or more) such that P(x) is true. Free and Bound Variables • An expression like P(x) is said to have a free variable x (meaning, x is undefined). • A quantifier (either or ) operates on an expression having one or more free variables, and binds one or more of those variables, to produce an expression having one or more bound variables. Example of Binding P(x,y) has 2 free variables, x and y. x P(x,y) has 1 free variable, and one bound variable. [Which is which?] “P(x), where x=3” is another way to bind x. An expression with zero free variables is a actual proposition. An expression with one or more free variables is still only a predicate: e.g. let Q(y) = x P(x,y) กฎกำรอนุมำนในรู ปแบบทัว่ ไป นิยาม กฎการอนุมานเป็ นการสร้ างรูปแบบ เมื่อเรารู้วา่ เซตของข้ อความที่เป็ น เหตุ (Antecedent) มีรูปแบบที่แน่นอนเป็ นจริงทังหมด ้ ดังนันเราจะเชื ้ ่อ ได้ วา่ ส่วนของผลที่สมั พันธ์อยูก่ บั เหตุ (Consequent) เป็ นจริง สัจนิรันดร์ (Tautology) (p(pq))q เป็ นพื ้นฐานของกฎการ อนุมานที่เรี ยกว่า โมดัสโพเน็น (Modus ponens) ที่เขียนอยูใ่ นรูป p pq q เพราะฉะนัน้ antecedent 1 antecedent 2 … antecedent n consequent Modus Ponens • Consider (p (p→q)) → q p T T F F q T F T F p→q p(p→q)) (p(p→q)) → q p pq q T F T F T T T T F F T T ตัวอย่ ำง Modus ponens • ตัวอย่ างที่ 1 ประพจน์แบบมีเงื่อนไข “ถ้ าฝนตกวันนี ้ทาให้ รถติด” สมมุติฐาน p คือ “ถ้ าฝนตกวันนี ้” เป็ นจริง ดังนันโดย ้ modus ponens ก็จะสรุป q ว่า “รถติด” ก็จะเป็ นจริง นัน่ คือ (p(pq))q สมมุติฐาน p: วันนี ้ฝนตก if p then q q is True Conclusion: q is True Modus Tollens • Assume that we know: ¬q and p → q – Recall that p → q ¬q → ¬p • Thus, we know ¬q and ¬q → ¬p • We can conclude ¬p q pq p Modus Tollens example • สมมุติวา่ เหตุการณ์ที่เกิดขึ้นเป็ นไปตามประพจน์ต่อไปนี้: – “คุณไม่ได้เกรดวิชานี้” – “ถ้าคุณลงทะเบียนเรี ยนวิชานี้ กจ็ ะได้เกรดใดเกรดหนึ่ ง” • กาหนดให้ p = “คุณลงทะเบียนเรี ยนวิชานี้” • กาหนดให้ q = “คุณจะได้เกรด” • ตามการให้เหตุผลแบบ Modus Tollens, ก็สามารถสรุ ปได้วา่ คุณได้ ได้ลงทะเบียนเรี ยนวิชานี้ q pq p Modus Ponens & Tollens p pq q Rule of modus ponens (a.k.a. law of detachment) (p ( p q)) q “the mode of affirming” q pq p Rule of modus tollens (q (p q)) p “the mode of denying” ตำรำงกฎกำรอนุมำน p Modus ponens pq q pq Hypothetical qr syllogism pr Addition p pq Conjunction p q pq Modus tollens Disjunctive syllogism Simplification Resolution q pq p pq p q pq p pq p r qr ตัวอย่างการพิสูจน์ • สมมุติฐานที่จะพิสูจน์คือ: – “ลินดาเป็ นนักศึกษาในห้องนี้, ลินดามีความ C(Linda) ขยัน” R(Linda) – “ทุกคุณที่มีความขยันก็จะสอบไดระดับคะแนน x (R(x)→T(x)) ที่ดี” • สามารถสรุ ปได้หรื อไม่วา่ : “บางคนที่ในชั้น เรี ยนนี้สอบได้ระดับคะแนนดี”? x (C(x)T(x)) Example of proof 1. 2. 3. 4. 5. 6. 7. x (R(x)→T(x)) R(Linda) → T(Linda) R(Linda) T(Linda) C(Linda) C(Linda) T(Linda) x (C(x)T(x)) 3rd hypothesis Universal instantiation using step 1 2nd hypothesis Modes ponens using steps 2 & 3 1st hypothesis Conjunction using steps 4 & 5 Existential generalization using step 6 จากการพิสจู น์ได้ แสดงให้ เห็นว่า “บางคนที่ในชันเรี ้ ยนนี ้สอบได้ ระดับคะแนนดี” 1.6 AXIOMATIC PROGRAM VERIFICATION Axiomatic program verification is used to prove that a sequence of programming instructions achieves its specified objective. • Semantic axioms for the programming language constructs are used in a formal logic argument as rules of inference. 1.6.1 ASSERTIONS AND SEMANTIC AXIOMS • The correctness of a program can be argued formally based on a set of semantic axioms that define the behavior of individual programming language constructs. Definitions: • • • • • • • An assertion is a program comment containing a logical statement that constrains the values of the computational variables. These constraints are expected to hold when execution flow reaches the location of the assertion. A semantic axiom for a type of programming instruction is a rule of inference that prescribes the change of value of the variables of computation caused by the execution of that type of instruction. The assertion false represents an inconsistent set of logical conditions. A computer program cannot meet such a specification. Given two constraints A and B on computational variables, a statement that B follows from A purely for reasons of logic and/or mathematics is called a logical implication. The postcondition for an instruction or program fragment is the assertion that immediately follows it in the program. The precondition for an instruction or program fragment is the assertion that immediately precedes it in the program. The assertion true represents the empty set of logical conditions. Notation: • To say that whenever the precondition {Apre} holds, the execution of a program fragment called “Code” will cause the postcondition {Apost} to hold, the following notation styles can be used: Semantic axioms A->B 1.6.2 NOP, ASSIGNMENT, AND SEQUENCING AXIOMS • Formal axioms of pure mathematical consequence (no operation, from a computational perspective) and of straight-line sequential flow are used as auxiliaries to verify correctness, even of sequences of simple assignment statements. – assignment instruction X := E; – logical assertion A(X) 1.6.3 AXIOMS FOR CONDITIONAL EXECUTION CONSTRUCTS • A conditional assignment construct is any type of program instruction containing a logical condition and an imperative clause such that the imperative clause is to be executed if and only if the logical condition is true. An if-then-else instruction 1.6.4 AXIOMS FOR LOOP CONSTRUCTS 1.6.5 AXIOMS FOR SUBPROGRAM CONSTRUCTS Definitions: • A procedure is a sequence of instructions that lies outside the main sequence of instructions in a program. It consists of a procedure name, followed by a procedure body. • A call instruction call ProcName is executed by transferring control to the first executable instruction of the procedure ProcName. • A return instruction causes a procedure to transfer control to the executable instruction immediately following the most recently executed call to that procedure. An implicit return is executed after the last instruction in the procedure body is executed. It is good programming style to put a return there. Axiom of Procedure (parameterless),