PCalc ver.1

PCalc(ピーカルク)は「論理パズルとパズルの論理」第6章の○×判定ゲームのアルゴリズムを使って、 論理パズルを自動的に解くJavaアプレットです。 「論理パズルとパズルの論理」の論理パズルのほとんどはこのソフトで解けます。

このアルゴリズムは、アメリカの論理学者 H. Wang(ハオ・ワン)が考えたアルゴリズムで、 専門用語では、ワンのアルゴリズムといい、初期の人工知能の研究の代表的アルゴリズムです。

PCalc の作者は神戸大学大学院の住友亮翼さんです。 PCalcは林晋研究室の証明アニメーションプロジェクトで住友さんが開発している ProofWorks という ソフトを元に作られています。

まずは使ってみましょう。 現在使用できるのは、Windows 95 の Internet Explorer Ver.4.0 専用版です。 Ver.3.0 でも使えないことはありません。バグ情報・更新計画を見てください。

PCalcが起動されると、サンプルとして「論理パズルとパズルの論理」p.28 の「赤い手袋」を少し変えたものが入っています。

定義
定義の欄には、使う命題記号を登録します。最初に入っているサンプルの場合は、 IR と IIR です。登録するには、上の方の欄に入力して「加える」のボタンを押します。 いらないものは取り除くこともできます。
仮定
仮定の欄にはパズルの仮定を登録します。 論理記号のついたボタンを押すと、その記号を入力できます。 論理記号は全角の記号文字¬, ∨, ∧, ⇒ですが、 "でない"、"または"、"かつ"、"ならば"や、 "not", "and", "or", "implies"も使えます。 チャンポンで使っても大丈夫です。

ただし、現在のバージョンは、まだバグが多いので、命題記号も、 論理記号も、すべて、半角で入力する方が無難です。

論理記号は、IME やATOK の記号入力を使って入力しても同じことです。 もちろん、別な場所に書いておいて、カットアンドペーストしてもかまいません。

結論
パズルの結論を入力します。
入力が終わって"解け"ボタンを押すと、 仮定から結論が導けるかどうか判定してくれます。

「論理パズルとパズルの論理」から例をいくつか書いておきます。 試してみてください。

天気の日は?

「論理パズルとパズルの論理」p.15の問題ですが、 ホームページのパズル3題にもあります

お母さんは、

  雨が降ってる ⇒ 早く帰える
といっているので、これを仮定にします。 ただし、
   雨が降ってる   早く帰える
が命題記号ですから、これを定義の欄に入力しておきます。

この仮定は、

    雨が降ってる ならば   早く帰える
と書いても同じです。ただし、"ならば"の両側の空白は忘れずに入れましょう。

これを聞いて、お父さんは、

    ¬ 雨が降ってる ⇒ ¬ 早く帰える
といったのです。こちらが結論です。これも、
    雨が降ってる でない ならば 早く帰える でない
と書けます。

さあ,PCalc は、お父さんの屁理屈に勝てるでしょうか?





猫の健康



「論理パズルとパズルの論理」p.91の問題です。 「賢い猫は健康だ」と信じている人がいます。つまり,猫 について

(*)賢い ならば 健康である

ということです。さて,下記の(l),(2),(3)のうち,(*) から導かれるのはどれでしょうか?(これらはすべて猫についての命題です。)

 (1)(健康である でない) または 賢い
 (2)健康である または (賢い でない)
 (3)賢い または 健康である
バグ情報、更新計画
現在の version は、Ver.3.0でも使えないことはありませんが、 論理記号と clear のボタンはうまく働きません。 現在、Version 3.0 にも対応するように作業中です。

また、左上のボタンの load, save は、登録したり、読み込んだりのためですが、 今のバージョンでは使えません。clear は今のバージョンでも使えます。


Susumu Hayashi
Department of Computer and Systems Engineering
Kobe University
hayashi@pascal.seg.kobe-u.ac.jp