http://www.sw.it.aoyama.ac.jp/2011/Math1/lecture4.html
© 2005-11 Martin J. Dürst 青山学院大学
論理関数と論理式を操る
1. 自分で四個の元の集合を作る
例: {猫, 牛, 犬, 馬}
2. 1. のベキ集合を作る
例: {{}, {猫}, {牛}, {犬}, {馬}, {猫,牛}, {猫,犬}, {猫,馬}, {牛,犬}, {牛,馬}, {犬,馬}, {猫,牛,犬}, {猫,牛,馬}, {猫,犬,馬}, {牛,犬,馬}, {猫,牛,犬,馬}}
3. 元の数がゼロ個から六個までの集合のベキ集合の大きさの表を作る。
|A| |P(A)| 0 1 1 2 2 4 3 8 4 16 5 32 6 64
4. ある集合の大きさとそのベキ集合の大きさの関係を式で表し、その式の根拠について簡単に説明する。
|P(A)| = 2|A| で、|A| 個の元をそれぞれ部分集合に入れるかどうかで違う部分集合ができ、元が一個増えると部分集合の数が倍になる
5. ゼロ個から五個の元の集合の同じ大きさの部分集合の数 (|{B|B⊂Aかつ|B|=n}|, *) を数えて表にまとめる。
|A| n * |A| n * 0 0 1 4 0 1 1 0 1 4 1 4 1 1 1 4 2 6 2 0 1 4 3 4 2 1 2 4 4 1 2 2 1 5 0 1 3 0 1 5 1 5 3 1 3 5 2 10 3 2 3 5 3 10 3 3 1 5 4 5 5 5 1
(Pascal's triangle)
一行目の (0 ... 0) 1 (0 ... 0)
からスタートし、左上と右上の数を足し合わせると出来る。
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
インドで紀元前から知られ、多くの性質が知られている
ここで次の関係や性質を証明:
(factorial)
書き方: n!
定義: n! = 1 · 2 · ... (n-1) · n = ∏ni=1 i
問題:
1! = 1
0! = 1
(unit element, identity element, neutral element)
具体例 (合計):
int sum = 0; for (i=0; i<end; i++) sum += array[i];
C プログラム言語の場合:
type result = 単位元; for (i=0; i<end; i++) result = result 演算子 array[i];
Ruby の場合:
array.inject(単位元) do |memo, next| memo 演算子 next end
(proposition 又は statement)
正しいか正しくないかが客観的に決められる文
(正しいものでも正しくないものでも良い)
命題ではないのは主観的な記述、質問、一部が決定されてない、代名詞や変数を含む場合など
例:
反例 (命題ではない):
命題は正しいか正しくないかである。
「正しい」は「真」(しん、true) と言い、T、⊤ や 1 と書く
「正しくない」は「偽」(ぎ、false) と言い、F、⊥ や 0 と書く
真と偽はともに真理値 (truth value) という
プログラム言語によって取り扱いが違う
0
は偽に相当0
以外の整数 (特に 1
)
は真に相当false
、真は true
int
) と真理値 (boolean
)
は完全に別の型false
、真は true
false
と nil
(空や無を表現)
は偽、それ以外の値は真二つの命題 A と B から次の命題が作成可能:
A かつ B (A and B)
「A ∧ B」、「A·B」や「A B」と書く
A ∧ B は A とも B
とも真の場合だけ真、
その他の場合は偽
関数としても考えられる: AND(A, B)
(truth table)
命題の真偽を定義、証明などには真理表をよく使用:
A | B | A ∧ B |
F | F | F |
F | T | F |
T | F | F |
T | T | T |
論理演算子は一つ以上の命題から複合命題を作る。
一番よく使われる基本的な論理演算子は次:
二つの命題 A と B から次の命題が作れる: A 又は B
「A 又は B」 (A or B) は A ∨ B (又はA+B) と書く。
A ∨ B は A とも B とも偽の場合だけ偽。
真理表で表すと次になる:
A | B | A ∨ B |
F | F | F |
F | T | T |
T | F | T |
T | T | T |
「A ではない」(not A) は ¬A と書く。A', A, ~A と書くこともある。
¬A は A が真の場合に偽、偽の場合に真。
真理表で表すと次になる:
A | ¬A |
F | T |
T | F |
論理演算子と命題 (変数) で論理式が作られる。
例: (A ∨ (¬B)) ∧ C
優先度と括弧の省略:
論理演算子の優先度は「¬」が「∧」より優先、「∧」が「∨」より優先
(well-formed formula, WFF)
目的: 論理式の構成 (文法を) を明確化
次のものは整論理式:
この定義に合わないものは整論理式でない
(注: 授業の後半に新たな論理演算子が追加)
例: (A ∨ (¬B)) ∧ B
(¬B) の括弧が必要ない: (A ∨ ¬B) ∧ B
真理表で評価
A | B | ¬B | A ∨ ¬B | (A ∨ ¬B) ∧ B |
F | F | T | T | F |
F | T | F | F | F |
T | F | T | T | F |
T | T | F | T | T |
(ブール関数、Boolean function)
0 個以上の論理引数 (ブール引数 (ひきすう), boolean argument) から真偽値を返す関数
すなわち:
論理引数は真と偽の値しか取らないので論理関数は少ない