計算機科学のブログ

命題論理 論理式の真偽 論理式の同値 真理表の作成

情報系のための離散数学 (猪股 俊光 (著)、南野 謙一 (著)、共立出版 )の第1章(命題論理)、1.3(論理式の真偽)、1.3.5(論理式の同値)、問題1.11の解答を求めてみる。

a

pqp ⇒ q¬p¬p ∨ q(p ⇒ q) ⇒ ¬p ∨ q(p ⇒ q) ⇐ ¬p ∨ q(p ⇒ q) ⇔ ¬p ∨ q
TTTFTTTT
TFFFFTTT
FTTTTTTT
FFTTTTTT

よって論理式は成り立つ。

b

pqp ∧ q¬(p ∧ q)¬p¬q¬p ∨ ¬q¬(p ∧ q) ⇒ ¬p ∨ ¬q¬(p ∧ q) ⇐ ¬p ∨ ¬q¬(p ∧ q) ⇔ ¬p ∨ ¬q
TTTFFFFTTT
TFFTFTTTTT
FTFTTFTTTT
FFFTTTTTTT

よって論理式は成り立つ。

c

pqp ∨ q¬(p ∨ q)¬p¬q¬p ∧ ¬q¬(p ∨ q) ⇒ ¬p ∧ ¬q¬(p ∨ q) ⇐ ¬p ∧ ¬q¬(p ∨ q) ⇔ ¬p ∧ ¬q
TTTFFFFTTT
TFTFFTFTTT
FTTFTFFTTT
FFFTTTTTTT

よって論理式は成り立つ。

コード(Wolfram Language)

Flatten[
    Table[
        Table[
            Implies[
                Implies[p, q],
                !p || q
            ] && Implies[
                !p || q,
                Implies[p, q]
            ],
            {q, {True, False}}
        ],
        {p, {True, False}}
    ]
]
Output
Flatten[
    Table[
        Table[
            Implies[
                !(p && q),
                !p || !q
            ] && Implies[
                !p || !q,
                !(p && q)
            ],
            {q, {True, False}}
        ],
        {p, {True, False}}
    ]
]
Output
Flatten[
    Table[
        Table[
            Implies[
                !(p || q),
                !p && !q
            ] && Implies[
                !p && !q,
                !(p || q)
            ],
            {q, {True, False}}
        ],
        {p, {True, False}}
    ]
]
Output