(述語論理の応用)
https://www.sw.it.aoyama.ac.jp/2019/Math1/lecture8.html
© 2005-19 Martin J. Dürst Aoyama Gakuin University
Create formulæ for the statements below about numbers, students, and pets. Use the quantifiers and operators that we used in the lecture. The set of (all) Students is denoted with S, the set of (all) pets with P. The fact that student s likes pet p is written like(s, p). The age of student s is written age(s). You can use any operators generally used in this lecture. Do not introduce any new functional predicates.
Example: All natural numbers are greater than -5.
∀n∈ℕ: n > -5
There is no food that all students like.
Solution given in lecture: ¬∃f∈F: ∀s∈S: like(s, f)
Alternative (question by students): ∀f∈F: ∃s∈S: ¬like(s, f)
Using laws to show that these are the same:
¬∃f∈F: ∀s∈S: like(s, f) [law 2]
= ∀f∈F: ¬∀s∈S: like(s, f) [law 1]
= ∀f∈F: ∃s∈S: ¬like(s, f)
There is no greatest natural number.
¬∃m∈ℕ: ∀n∈ℕ: n≦m [law 2]
= ∀m∈ℕ: ¬∀n∈ℕ: n≦m [law 1]
= ∀n∈ℕ: ∃m∈ℕ: ¬n≦m [arithmetic]
= ∀n∈ℕ: ∃m∈ℕ: n>m
Law 1:
¬∀x: P(x) = ∃x: ¬P(x)
Concrete example:
Not all students are from Kanagawa means that there is at least one student who
is not from Kanagawa, and the other way round.
¬∀s∈S: native(s, Kanagawa) = ∃s∈S: ¬native(s, Kanagawa)
The examples all are about the students taking Discrete Mathematics I.
Sets, predicates and functions used:
S: Set of students
age(s): A student's age (fully completed years)
college(s): A student's faculty or college (example: College of Science and Engineering, CSE)
female(s), male(s): Predicates for a student's gender.
native(s, k): True if student s is a native of prefecture k (using "abroad" for students from outside Japan)
Law 5:
(∃x: P(x)) ∧ Q(y) = ∃x:
(P(x)∧Q(y))
Concrete example:
There exists a student from Shizuoka, and a student is older than 20 ⇔ There is a case where there is a student from Shizuoka and a student is older than 20.
(∃s∈S: native(s, Shizuoka)) ∧ age(y)>20 = ∃s∈S: (native(s, Shizuoka)∧age(y)>20)
Law 8:
(∀x: P(x)) ∧ (∀x: R(x)) =
∀x: P(x)∧R(x)
Concrete example:
All students are less that 30 years old, and all students belong to the College
of Science and Engineering. = All students are less than 30 years old and
belong to the College of Science and Engineering.
(∀s∈S: age(s)≤30) ∧ (∀t∈S: college(t)=CSE) = ∀u∈S: (age(u)≤30 ∧ college(u)=CSE)
Law 11:
(∃x: P(x)) ∧ (∃x: R(x)) ⇐
∃x: P(x) ∧ R(x)
Example of how the left side follows from the right:
There is a student who is a native of Hiroshima and who is male. ⇒ There is a
student who is a native of Hiroshima, and there is a student who is male.
(∃s∈S: native(s, Hiroshima)) ∧
(∃s∈S: male(s)) ⇐
∃s∈S: (native(s, Hiroshima) ∧
male(s))
Example of how the right side does not follow from the left side:
There is a student who is a native from Hokkaido, and there is a student who is
female. However, this does not imply that there is a student who is a native
from Hokkaido and is female.
(∃s∈S: native(s, Hokkaido)) ∧
(∃s∈S: female(s)) ⇏
∃s∈S: (native(s, Hokkaido) ∧
female(s))
Law 12:
(∃y: ∀x: P(x, y)) ⇒
(∀x: ∃y: P(x, y))
Example of how the left side follows from the right:
There is an age y (e.g. 30) so that for all students,
their age is below y. From this follows that for each
student, there is an age for which the student's age is lower.
(∃y: ∀s∈S:
age(s)<y) ⇒
(∀s∈S: ∃y:
age(s)<y)
Example of how the right side doesn't follow from the left side:
All students are native of some prefecture (or abroad). But this does not mean
that there is a single prefecture of which all students are native.
(∀s∈S: ∃y: native(s, y)) ⇏ (∃y: ∀s∈S: native(s, y))
Quantifiers are similar to sums and products:
Sum: ∑∞i=1 1/i2 = 1 + 1/4 + 1/9 + 1/16 + 1/25 + ...
Product: ∏∞i=1 1+1/(-2)i = 0.5 · 1.25 · 0.875 · 1.0625 · ...
Universal quantification: (∀i ∈ℕ+: i>0) = ⋀∞i=1 i>0 = 1>0 ∧ 2>0 ∧ 3>0 ∧...
Existential quantification: (∃i ∈ℕ+: odd(i)) = ⋁∞i=1 odd(i) = odd(1)∨odd(2)∨odd(3)∨...
Quantification is a generalization of conjunction/disjunction to more than
two operands,
in the same way that sum and product are a generalization of
addition/multiplication to more than two operands.
two operands | many operands | ||
---|---|---|---|
name | symbol | name | symbol(s) |
addition | + | sum | ∑ |
multiplication | * | product | ∏ |
conjunction | ∧ | universal quantification | ∀/⋀ |
disjunction | ∨ | existential quantification | ∃/⋁ |
Notation: n!
Definition: n! = 1 · 2 · ... (n-1) · n = ∏ni=1 i
Question:
1! = 1
0! = 1
∀i (i<0⋀i>5): odd(i) = T (because the neutral element of conjunction is T)
∃i (i<0⋀i>5): odd(i) = F (because the neutral element of disjunction is F)
Concrete example (sum):
int sum = 0; for (i=0; i<end; i++) sum += array[i];
In programming language C:
type result = neutral element; for (i=0; i<end; i++) result = result operator array[i];
In programming language Ruby:
array.inject(neutral element) do |memo, next| memo operator next end
Laws 1 and 2 introduced in the last lecture are generalizations of DeMorgans' laws:
Simplify ¬(∃x: P(x) → ∀y: ¬Q(y))
¬(∃x: P(x) → ∀y: ¬Q(y)) [removing implication]
= ¬(¬∃x: P(x) ∨ ∀y: ¬Q(y)) [deMorgan's law]
= ¬¬∃x: P(x) ∧ ¬∀y: ¬Q(y) [law 1 of last lecture]
= ¬¬∃x: P(x) ∧ ∃y: ¬¬Q(y) [double negation]
= ∃x: P(x) ∧ ∃y: Q(y)
Actual example:
Let P(x) mean "it is raining in x", and Q(y) "it is snowing y"
Then the original formula says "It's wrong that if it rains somewhere, then it snows nowhere". The final formula says "There is a place where it rains and there is a place where it snows".
(There has to be a place where it rains because otherwise the implication is automatically true.)
Start with a single 1
in the first row, surrounded by zeroes
((0 ... 0) 1 (0 ... 0)
).
Create row by row by adding the number above and to the left and the number
above and to the right.
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1
(prove it as a homework, problem 2)
Deadline: November 28, 2019 (Thursday), 19:00.
Format: A4 single page (using both sides is okay; NO cover page), easily readable handwriting (NO printouts), name (kanji and kana) and student number at the top right
Where to submit: Box in front of room O-529 (building O, 5th floor)
Problem 1: For ternary (three-valued) logic, create defining truth tables for conjunction, disjunction, and negation. The three values are T, F, and ?, where ? stands for "unknown" (in more words: "maybe true, maybe false, we don't know").
Hint: What's the result of "?∨T"? ? can be T or F, but in both cases the result will be T, so ?∨T=T.
Problem 2: Prove nCm
= n!/(m! (n-m)!) for
0≦n, 0≦m≦n using
nCm =
n-1Cm-1 +
n-1Cm
(Hint: Prove first for m=0 and m=n, then for
0<m<n)