前回 http://d.hatena.ne.jp/propella/20090717/p1 ブール論理に使う基本的な用語について書いたが、せっかくブール関数計算器 http://languagegame.org/pub/booltable/booltable.html を作ったので、今後記法はそれに合わせてブール関数式にする。目的はある命題がを証明する事。証明とは、あるブール式がいつでも成り立つ(valid である)事を言う。
- 0 : false 偽
- 1 : true 真
- A + B : A or B, A かつ B
- A * B : A and B, A または B
- -A : not A, A では無い
- A => B : A implies B, 含有 A ならば B, B は A を含む
valid と consistent について復習
ブール式は真か偽の値を示す式の事だが、特に変数が含まれる時にある式がの返す値の組み合わせと考える事も出来る。(リンクをクリックすると真理表が出るよ)
- 答えがいつも真の時を valid、答えに偽が含まれる時を invalid と言う。
- 答えに真が含まれる時を consistent、答えがいつも偽の時を inconsistent と言う。
imply と refutation theorem
論理の性質を現すのに imply がよく使われる。A=>B は、「A の時に B である」の他に、「B が A を含む」と解釈出来る。
A=>B だからといって B=>A とは限らない。A=>B と B=>A の両方が成り立つ時を A=B と書く。次の真理表で確認出来る。
A=>B を直接証明しにくい場合に、代わりに A*-B が inconsistent である事を証明しても良い。これを refutation theorem (背理法)という。次の真理表で確かめられる。