Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Meaning (philosophy of language) wikipedia , lookup

Semantic holism wikipedia , lookup

Sloppy identity wikipedia , lookup

Propositional formula wikipedia , lookup

Interpretation (logic) wikipedia , lookup

Transcript
ประพจน์ (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 FORLL 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(pq))q เป็ นพื ้นฐานของกฎการ
อนุมานที่เรี ยกว่า โมดัสโพเน็น (Modus ponens) ที่เขียนอยูใ่ นรูป
p
pq
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
pq
q
T
F
T
F
T
T
T
T
F
F
T
T
ตัวอย่ ำง Modus ponens
• ตัวอย่ างที่ 1 ประพจน์แบบมีเงื่อนไข “ถ้ าฝนตกวันนี ้ทาให้ รถติด”
สมมุติฐาน p คือ “ถ้ าฝนตกวันนี ้” เป็ นจริง ดังนันโดย
้
modus
ponens ก็จะสรุป q ว่า “รถติด” ก็จะเป็ นจริง นัน่ คือ
(p(pq))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
pq
p
Modus Tollens example
• สมมุติวา่ เหตุการณ์ที่เกิดขึ้นเป็ นไปตามประพจน์ต่อไปนี้:
– “คุณไม่ได้เกรดวิชานี้”
– “ถ้าคุณลงทะเบียนเรี ยนวิชานี้ กจ็ ะได้เกรดใดเกรดหนึ่ ง”
• กาหนดให้ p = “คุณลงทะเบียนเรี ยนวิชานี้”
• กาหนดให้ q = “คุณจะได้เกรด”
• ตามการให้เหตุผลแบบ Modus Tollens, ก็สามารถสรุ ปได้วา่ คุณได้
ได้ลงทะเบียนเรี ยนวิชานี้
q
pq
p
Modus Ponens & Tollens
p
pq
q
Rule of modus ponens
(a.k.a. law of detachment)
(p  ( p  q))  q
“the mode of affirming”
q
pq
p
Rule of modus tollens
(q  (p  q))  p
“the mode of denying”
ตำรำงกฎกำรอนุมำน
p
Modus ponens
pq
q
pq
Hypothetical
qr
syllogism
pr
Addition
p
pq
Conjunction
p
q
pq
Modus tollens
Disjunctive
syllogism
Simplification
Resolution
q
pq
p
pq
p
q
pq
p
pq
 p  r
qr
ตัวอย่างการพิสูจน์
• สมมุติฐานที่จะพิสูจน์คือ:
– “ลินดาเป็ นนักศึกษาในห้องนี้, ลินดามีความ
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),