(述語論理の応用)

http://www.sw.it.aoyama.ac.jp/2017/Math1/lecture7.html

© 2005-17 Martin J. Dürst Aoyama Gakuin University

- Summary and homework from last lecture
- Applications of predicate logic
- Examples for various laws
- Quantifiers and variables
- Quantifiers and sums/products

- There are many different kinds of symbolic logic: Propositional logic, predicate logic,...
- Predicates take arguments (propositions do not take arguments)
- Predicate logic allows more general statements and inferences than propositional logic
- Predicate logic uses universal quantifiers (∀) and existential quantifiers (∃)

- Bound variable:
- Variable quantified by a quantifier

Example: the`x`in: ∀`x`: (P(`x`)∧Q(`y`)) - Free variable:
- Variable not quantified by a quantifier

Example: the`y`in: ∀`x`: (P(`x`)∧Q(`y`)) - Closed formula:
- A formula without free variables.
- Scope:
- The part of a formula where a bound variable (or a quantifier) is
active.

All occurrences of a bound variable within its scope can be exchanged by another variable.

Example: ∀`s`: (age(`s`)≤30 ∧ college(`s`)=CSE) ⇔ ∀`u`: (age(`u`)≤30 ∧ college(`u`)=CSE)

Using a bound variable outside its scope is an error.

Example: (∀`x`: P(`x`))∧Q(`x`)

∀`s`: age(`s`)≤30) ∧ (∀`t`:
college(`t`)=CSE) = ∀`u`:
(age(`u`)≤30∧college(`u`)=CSE)

is the same as

∀`s`: age(`s`)≤30) ∧ (∀`s`: college(`s`)=CSE) = ∀`s`: (age(`s`)≤30∧college(`s`)=CSE)

There are three `different` variables `s` in the last
statement.

Advice:

- It is better to use
*different*variable names with each quantifier, but - You have to understand formuæ that repeatedly used
*the same*variable name. - Bound variables are similar to
*local variables*in programming languages.

(∃`y`: ∀`x`: P(`x`, `y`)) →
(∀`x`: ∃`y`: P(`x`, `y`))

(∀`x`: ∃`y`: P(`x`, `y`)) ↛
(∃`y`: ∀`x`: P(`x`, `y`))

The number of prime numbers is infinite.

(This means that whatever big number `x` we choose, there will
always be a bigger prime number `y`.)

∀`x`: ∃`y`: (`y` > `x` ∧
prime(`y`))

Reversing the order of the quantifiers changes the meaning:

∃`y`: ∀`x`: (`y` > `x` ∧
prime(`y`))

(There is a prime number `y` that is bigger than any (natural
number) `x`. This statement is obviously false.)

- Assume there is a largest prime number
`z`:

∃`z`: prime(`z`) ∧ ∀`y`: prime(`y`) →`y`≤`z` - Calculate a new number
`t`= 1 + ∏^{z}_{p}_{=2}(prime(`p`))`p`

Example: z=7; t = 1 + 2·3·5·7 = 211 - ∀
`x`≤`z`: prime(`x`)→`t`mod`x`=1 ⇒∃

`s`: (`z``<``s`≤`t`∧ prime(`s`)) ⇒∃

`y`: (`y`>`x`∧ prime(`y`))

Notation: `n`!

Definition: `n`! = 1 · 2 · ... (`n`-1) · `n` =
∏^{n}_{i=1} `i`

(∏ is called *product*)

Question:

1! = 1

0! = 1

(also *unit element*, *identity element*,
*identity*)

For an operation △, the neutral element `e` satisfies

∀`x`: `e`△`x` = `x` =
`x`△`e`

- Neutral element of addition: 0
- Neutral element of multiplication: 1
- Neutral element of conjunction:
`true`

(this is the reason why ∀`x`∈{}:`R`(`x`) =`true`) - Neutral element of disjunction:
`false` - Neutral element of substraction:

does not exist, but 0 is a rigth identity (satisfying only ∀`x`:`x`=`x`△`e`)

Concrete example (sum):

int sum = 0; for (i=0; i<end; i++) sum += array[i];

In programming language C:

typeresult =neutral element; for (i=0; i<end; i++) result = resultoperatorarray[i];

In programming language Ruby:

array.inject(neutral element) do |memo, next| memooperatornext end

Sum: ∑^{∞}_{i}_{=1}
1/`i`^{2} = 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 | ∃/⋁ |

∀`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:

- ¬∀
`x`: P(`x`)

= ¬(P(`x`_{1})∧P(`x`_{2})∧P(`x`_{3})∧P(`x`_{4})∧...)

= (¬P(`x`_{1})∨¬P(`x`_{2})∨¬P(`x`_{3})∨¬P(`x`_{4})∨...)

= ∃`x`: ¬P(`x`) - ¬∃
`x`: P(`x`)

= ¬(P(`x`_{1})∨P(`x`_{2})∨P(`x`_{3})∨P(`x`_{4})∨...)

= (¬P(`x`_{1})∧¬P(`x`_{2})∧¬P(`x`_{3})∧¬P(`x`_{4})∧...)

= ∀`x`: ¬P(`x`)

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".

- Propositional logic does not need application knowledge except for the truth value of each proposition.
- Predicate logic combines axioms/theorems/knowledge of logic with the axioms/theorems/knowledge of one or more application areas.
- Example: Predicate logic on natural numbers: Peano axioms,...
- Example: Predicate logic for sets: Laws for operations on sets,...
- Example: Size of sets: Knowledge about set operations and arithmetic with natural numbers
- Concrete example:
∀

`s`: (male(`s`) ∨ female(`s`)) [all students are either male or female]∀

`s`: ¬(male(`s`) ∧ female(`s`)) [no student is both male and female]∀

`s`∈`S`: (∃`k`∈`K`: native(`s`,`k`) ∧(∀`h`∈`K`:`h`=`k`∨¬native(`s`,`h`))) [all students are native of exactly one prefecture]

Deadline: November 16, 2017 (Thursday), 19:00.

Format: Handout, easily readable **handwriting**

Where to submit: Box in front of room O-529 (building O, 5th floor)

Problems: See handout

(no need to submit)

In preparation for next week's lecture, using your high school books/materials or other sources, research the following terms related to sets, and write a definition and short explanation for each of them:

- Set
- Element
- Set union
- Set intersection
- Set difference
- Subset
- Proper subset
- Empty set
- Universal set
- Power set

(高校の本・資料や他の情報を活用して、上記の集合に関連する概念を調査し、定義と簡単な説明を書きなさい。)

- inference
- 推論
- College of Science and Engineering
- 理工学部
- native of ...
- ...出身
- bound variable
- 束縛変数
- free variable
- 自由変数
- local variable
- 局所変数
- closed formula
- 閉論理式
- scope
- 作用領域、スコープ
- sum
- 総和
- product
- 総積
- prime number
- 素数
- infinite
- 無限 (な)
- set
- 集合
- element
- 元、要素
- (set) union
- 和集合
- (set) intersection
- 積集合
- (set) difference
- 差集合
- subset
- 部分集合
- proper subset
- 真 (しん) の部分集合
- empty set
- 空 (くう) 集合
- power set
- べき (冪) 集合