命題論理 論理式の真偽 恒真と恒偽 充足可能
情報系のための離散数学 (猪股 俊光 (著)、南野 謙一 (著)、共立出版 )の第1章(命題論理)、1.3(論理式の真偽)、1.3.4(恒真と恒偽)、問題1.10の解答を求めてみる。
a
p | q | p ∨ ¬ (p ∧ q) |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | T |
恒真
b
p | q | (p ∧ q) ∧ ¬ (p ∨ q) |
---|---|---|
T | T | F |
T | F | F |
F | T | F |
F | F | F |
恒偽
c
p | q | r | (p ⇒ q) ⇒ (q ⇒ r) |
---|---|---|---|
T | T | T | T |
T | T | F | F |
T | F | T | T |
T | F | F | T |
F | T | T | T |
F | T | F | F |
F | F | T | T |
F | F | F | T |
恒真でも恒偽でもない。真なのが一通り以上、6通りあるので充足可能。
コード(Wolfram Language)
Flatten[
Table[Table[p || !(p && q), {q, {True, False}}],
{p, {True, False}}]
]
Flatten[
Table[
Table[
(p && q) && ! (p || q),
{q, {True, False}}
],
{p, {True, False}}
]
]
Flatten[
Table[
Table[
Table[
Implies[
Implies[p, q],
Implies[q, r]
],
{r, {True, False}}
],
{q, {True, False}}
],
{p, {True, False}}
]
]