0_tutorial_AI/4.book(保存済みの内容) … 編集へ / ファイル一覧へ
/common/word_logic.bookprop ⊂. <- `X ⊂ Y ⟺ [ ∀ x ∈ X . x ∈ Y ]`(X の元はすべて Y の元)、prop =. <- `X = Y ⟺ ∀ x \, (x ∈ X ⇔ x ∈ Y)`(元が同じなら等しい。⟸ は外延性公理と呼ばれることが多い)。= は一階論理の等号のままで、=. は「元が同じなら等しい」を ∈ についての前提として置く prop です。定義のように W. に入れて使えるので便利です。prop/thm =.. ◀ W.、prf =.. -| W. p;。=.. は DB に登録された prop で、中身は X = Y ⟺ X ⊂ Y and Y ⊂ X(「等しい ⟺ 互いに含む」)です。W. を sos に置いて Prover9 に投げ、length:37 で示されます。W. の代わりに ⊂. , =. を sos に置いても示せます(thm の主張は ◀ W. なので、最後に =.. -| W. h; でつなぎます)。-| W. p; とは書けません。X ⊂ Y / W. → [∀ w1 [⇒ [∈ w1 X] [∈ w1 Y]]][⇔ [∀ w1 [⇔ [∈ w1 X] [∈ w1 Y]]] [and [∀ w1 [⇒ [∈ w1 X] [∈ w1 Y]]] [∀ w1 [⇒ [∈ w1 Y] [∈ w1 X]]]]](= も ⊂ も開く)prf =.. / W. -| O p;、続けて =.. -| W. h;。1段目は「展開した式 ◀ O」を Prover9 に投げます(この例では展開した式が前提なしで示せるので sos は O。一般には、定義以外の前提が要れば sos に残します)。goal は長くなりますが length:28 に減ります。2段目の h; は、1段目の Thm と、展開に使った W. から、thm の =.. ◀ W. を組み立てます(3.book の h;)。この形(/ の段を h; で戻す)では h; の段も -| で書きます。1段目は -| の Thm で、しかも slash を含むので多ソートで確かめ直せず、◀ h; では使えないからです(3.book「h; の段の関係」)。=.. ◀ W. h; にすると「conclusion: no derivation found (4 thms are in another relation)」で FAIL します(実測)。A ◀ W. のとき)prf A / W. -| O p; … 定義で展開した式を、前提なしで証明器に投げる A -| W. h; … 1段目と、展開に使った W. から thm を組み立てる(この段は ◀ でなく -|)t ∈ f(…) なら、右側の語 f の定義を使います。定義の形に合わなければそのまま)。書き換えでできた式は、その回ではもう書き換えません。新しく現れた定義できる語は、次の / で開きます。X = Y ⟹ Y ⊂ X は / W. でも // W. でも同じ [⇒ [∀ w1 [⇔ [∈ w1 X] [∈ w1 Y]]] [∀ w1 [⇒ [∈ w1 Y] [∈ w1 X]]]]。X ∩ Y ⊂ X ◀ W. は、1回目の / で ⊂ が開いて w1 ∈ X ∩ Y が新しく現れ、2回目の / でそれが ∩ の定義で開きます。そのため / W. -| O p; では FAIL、// W. -| O p; では OK です(∩ の定義を使うにはクラス版の定義の紹介も要るので、この Book では扱いません)。W.!〇.(空白を入れずに書く)は W. から 〇. を除いた列です。例:=.. / W.!=. → [⇔ [= X Y] [and [∀ w1 [⇒ [∈ w1 X] [∈ w1 Y]]] [∀ w1 [⇒ [∈ w1 Y] [∈ w1 X]]]]](= だけ開かない)。X = Y ⟹ Y ⊂ X は [⇒ [= X Y] [⊂ Y X]] なので、/1 W. → [⇒ [∀ w1 [⇔ [∈ w1 X] [∈ w1 Y]]] [⊂ Y X]]、/2 W. → [⇒ [= X Y] [∀ w1 [⇒ [∈ w1 Y] [∈ w1 X]]]]。-| W. p;(定義を sos に置く)でも / W. -| O p;(先に展開する)でも示せることが多いです。定義が増えて sos が大きくなると、先に展開する方が有利になります。ページ 1 / 3 … 次のページ →