計算機科学のブログ

命題論理 論理式の真偽 恒真と恒偽 充足可能

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

a

pqp ∨ ¬ (p ∧ q)
TTT
TFT
FTT
FFT

恒真

b

pq(p ∧ q) ∧ ¬ (p ∨ q)
TTF
TFF
FTF
FFF

恒偽

c

pqr(p ⇒ q) ⇒ (q ⇒ r)
TTTT
TTFF
TFTT
TFFT
FTTT
FTFF
FFTT
FFFT

恒真でも恒偽でもない。真なのが一通り以上、6通りあるので充足可能。

コード(Wolfram Language)

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