(述語論理の応用)
http://www.sw.it.aoyama.ac.jp/2018/Math1/lecture8.html
© 2005-18 Martin J. Dürst Aoyama Gakuin University
Sorry, it was removed! :)
Sorry, it was removed! :)
Sorry, it was removed! :)
Sum: ∑∞i=1 1/i2 = 1 + 1/4 + 1/9 + 1/16 + 1/25 + ...
Product: ∏∞i=1 1+1/(-2)i = ...
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
(∏ is called product)
Question:
1! = 1
0! = 1
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
∀i (i<0⋀i>5): odd(i) = T (because the unit element of conjunction is T)
∃i (i<0⋀i>5): odd(i) = F (because the unit element of disjunction is F)
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".
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)
Deadline: November 22, 2018 (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: By using formula manipulation, show that the Wolfram axiom of Boolean logic (((A⊼B)⊼C)⊼(A⊼((A⊼C)⊼A))=C) is a tautology. For each simplification step, indicate which law(s) you used.
Hints: Simplify the left side to obtain the right side. There should be between 15 and 20 steps.
Problem 2: 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.
Deadline: November 29, 2018 (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)
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)