論理的同値
論理的同値を例を使って考えてみる
友人と3人で一緒に山登りの約束をしていた。出発の日取りを決める際、雨天により出発日が決定できないので友人はこう言った
「たぶん出発は火曜日か水曜日だ」。それをもう一人の友人に伝える為、電話で君は「出発は火曜日でなければ水曜日だ」と伝えた
これは文章(シンタックス)は異なるが結局、同じ意味(セマンティクス)を伝えている事になる
これを論理式で同じ内容を伝えているか確かめてみる
とする
日本語を論理式に直すと
たぶん出発は火曜日か水曜日だ | \(T\vee W\) |
出発は火曜日でなければ水曜日だ | \(\neg T\rightarrow W\) |
となる
これを論理値分析の真理表にすると
T | W | \(T\vee W\) | \(\neg T\rightarrow W\) |
1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
0 | 1 | 1 | 1 |
0 | 0 | 0 | 0 |
表の赤色で示した部分が同値であるかが問題としていたところ。まったく同じ論理値の集合を出力している。これにより同じ意味(セマンティクス)である事が確認できた
このような論理的同値は様々な場面で登場する
この論理的同値を表現する表記をここで定義する
当サイトでは、ふたつの論理式\(A,B\)が論理的同値である事を「\(A\Leftrightarrow B\)」と表現する
この場合、それを構成する原子式\(A,B\)の真理値は同じ値を取る。これは論理式でない。あくまで日本語としての省略表現であり論理式にこんなものは無いので注意すること
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
-
-
!
|
|
|
-
!
|
|
|
!
!
| using UnityEngine;
using System.Collections;
using System;
public class Logic3 : MonoBehaviour
{
void Start ()
{
int t = Convert.ToInt32 ("1100", 2);
int w = Convert.ToInt32 ("1010", 2);
int mask = Convert.ToInt32 ("1111", 2);
print (Convert.ToString ((t | w) & mask, 2).PadLeft (4, '0'));
print (Convert.ToString ((~(~t) | w) & mask, 2).PadLeft (4, '0'));
}
}
|
双条件
双条件は同じ集合かどうかを判別できる
A | B | \(A\leftrightarrow B\) |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
つまり\(A=B\)なら真となる
ふたつの集合が同じ集合かどうかは、それらが同じ要素からなるかどうかであり、それがどのように定義されたかは問わない
この考えを集合は外延的であるという
例:
\(A=\left\{ x|xは5で割り切れる偶数の数である \right\}\)
\(B=\left\{ x|xは10の倍数である \right\} \)
とした時、\(A\)と\(B\)は集合の定義としては異なるが全て同じ要素\(\left\{ 10,20,30... \right\} \)からなるので同じ集合となる。つまり
\(\forall x(x\in A\leftrightarrow x\in B)\)であるとき集合の外延性により同一と判断出来る。従って\(A=B\)と言える
(tips:この数式の読み方が分らない時はこちらを参照>基礎/数学に関する暗黙と習慣)
双条件の \(\leftrightarrow \) と 上記の章で書いた論理的同値を表す \(\Leftrightarrow \) を混同して使用しないように注意!
双条件(\(\leftrightarrow \))は集合の同一性を真偽で判断する論理式の結合子。論理的同値(\(\Leftrightarrow \))はふたつの論理式が論理的同値であることを表現する日本語
(おおよそ日本の数学で利用されている慣習に従っている)
空集合
中身に何も含まない集まり、いかなる要素も持たない集合があると考え、それを空集合とする。この何も含まない集合\(\left\{ \quad \right\} \)が空集合である。「\(2\)で割り切れる奇数の集合」「火星まで旅行した事があるヒトの集合」「やまない雨という集合」は全て同じ空集合となる。集合を袋に例えると空集合は空の袋に相当する
例:
\(\phi =\left\{ x|x≠x \right\} \)は\(x≠x\)を満たすものが無いので空集合となる
同様に\(\phi =\left\{ x|Px\wedge \neg Px \right\} \)は論理的に矛盾式となり中身なし、つまり空集合となる
(\(\phi\)はファイと読む。空集合を指す時に使われる事が多いらしいが結構、他用途でも見かける・・・色即是空)