0_tutorial_AI/6.book(保存済みの内容) … 編集へ / ファイル一覧へ
prop/thm ¬Exi𝕍 <- `¬ Exi 𝕍` --| ax_s prf ¬Exi𝕍 -| ax_s[C_:=`𝕍0`] p; ¬Exi𝕍 --| ax_s h;ax_s[C_:=`𝕍0`] は、ax_s の自由なクラス変数 C_ に 𝕍0 を代入した実例 ∃ X \, 𝕍0 ⊂_ X ⟹ Exi 𝕍0 です。prop のクラス変数への代入は、段の sos に直接書けます(名前を付けて Le := ax_s[C_:=`𝕍0`] ; としても同じ)。名前の無い式の項にも書けます:`x ∈_ A_`[A_:=`|B_`](式は名前の無い prop として扱います。0_tutorial_jp/3.book)。実例は代入で作るので、証明器に示させる段は要りません。結論の段 ¬Exi𝕍 --| ax_s h;(thm が --| なので最後の段も --|。-| の段をまたいでつなぐので確かめ直しが入る)では、主張の sos に ax_s があるので、Hyperion がそれを ax_s の実例と認めます(主張の sos に無い公理の実例は認めません)。本で定義した prop を主張の sos に置いた場合も同じです。例外は、証明済みのクラス変数の Thm(自由なクラス変数が1つで、それが自分の sos に現れないもの。articles2/word_set.book の帰納法 INDC など)で、主張の sos に無くても実例を使えます。prop/thm(表示しないなら !prop/thm)で立てます。let/thm の名前には代入できず、「let/thm の名前には代入できません」で落ちます。C_ := `\{ cls B | … \}` ; と置いてから ax_s[C_:=`C_`] と書くと、:= の左の C_(ax_s の変数)をラベルと取り違えるので、その Thm の査読エラーになります。ラベルを別の名前(K_ など)にして ax_s[C_:=`K_`] と書きます。ax_r[??p^:=…])も同じように段の sos に直接書けます(下の置換公理の節)。ただし主張(thm 行)の sos には書けません。| 書く所 | 実例 〇[V:=`θ`](クラス変数・述語変数への代入) | 素の名前(∀ の述語変数を持つ prop・schema) |
|---|---|---|
| thm 行の sos | 書けない | 書く(実例の出所。無いと結論の段が通らない) |
| p; v; の段の sos | 書ける(実例の式が証明器に渡る) | 書くと査読エラー(証明器に渡らない) |
| s; の段の sos | 書ける | satallax+ predicate:all の本の --| … s; だけ、高階の公理として渡る(既定では査読エラー) |
| h の段の sos | — | 書く(thm 行と同じ) |
prop ax_s' <- `∀ ?R^ ( ∀ X Exi \{ cls x ∈ X | ?R^ (x) \} )` thm `∀ X Exi \{ cls x ∈ X | ?R^ (x) \}` ◀ ax_s prf goal --| ax_s v;\{ cls x ∈ X | ?R^ (x) \} を入れるだけの一階の推論です。thm ax_s ◀ ax_s' prf ax_s --| ax_s'[?R^:=`x ∈_ C_`] v; ax_s ◀ ax_s' h;x ∈_ C_ を代入した実例を使います(代入する式には、引数 x 以外の自由変数 C_ もそのまま書けます)。P^・?R^ は、その Thm の中で1つの決まった命題・述語を表すだけです。どの投げ先(p・v・s)でも同じで、例えば ⊥ ◀ P^ は成り立ちません(P が真なら反例)。「どの述語についても成り立つ」ことを前提として使いたいときは prop 名 <- `∀ ?R^ ( … )` と書いて、代入 名[?R^:=θ] で実例を作ります。thm ax_∅ ◀ ax_s prf ax_∅ --| ax_s v;|Y を付けて使い回すと、式が短くなり速くなります。名前は仮定ラベル |Y =_ θ(θ は c-Form)で置きます。最後の h[fix]; で、θ が集合になる根拠があれば hyperion がこの仮定を消します(∃除去)。prf |Y_ := `\{ cls x | x ∈ |a and x ∈ |b \}` ; … c-Form に Form 名を付ける hyY <- `|Y =_ |Y_` ; … 集合の定数 |Y がそのクラスと等しい、という仮定ラベル LYs <- `|Y_ ⊂_ |a` -| O p; … 根拠:θ が集合 |a に含まれる `∃ y ∀ x \, ( x ∈ y ⟺ ( x ∈ |a and x ∈ |b ) )` -| hyY p; … |Y を使って示す goal -| W. , ax_s h[fix]; … hyY を消し、|a・|b の bar を外すExi θ)からです。根拠は、前の段で示した Exi θ か、θ ⊂_ σ(このとき主張の sos に ax_s が要る=分出公理で Exi θ)です。|Y =_ θ の形。|Y は集合の定数、θ に |Y も自由変数(束縛されていない bar の無い文字)も含めないExi θ か θ ⊂_ σ)を、h[fix]; より前に示す。根拠の段に消す仮定 hyY を使わない\{ cls x | x {/}∈ x \} に |Y を等しいとおくと矛盾が出ますが、集合になる根拠が無いので h[fix]; は FAIL します。上の例でも LYs の段を抜くと「exists-elimination: no set justification for hyY」で FAIL します。prop 名 <- `∀ ??p^ ( ψ )`ax_r[??p^:=`θ`] … ψ の ??p^ に θ を入れた実例(無限個の公理のうちの1つ)。段の sos に直接書くか、!prop 名 <- ax_r[??p^:=`θ`] で名前を付けて使う… ◀ ax_r h; で「ax_r から導かれる」形にまとめるx ??p^ y にならって x、y と書きます(ψ の中の ??p^ の出現は、どれも同じ引数の名前でなければなりません)。θ のそれ以外の自由変数(C_ など)はそのまま残せます。同じ意味を schema ax_r(??p^;x,y;C_,s,t,u,v) := `ψ`(引数の名前と残してよい変数を宣言する公理図式)でも書けます(7.book)。thm ax_s ◀ ax_r prf ax_s --| ax_r[??p^:=`x ∈_ C_ and y = x`] v; ax_s ◀ ax_r h;ax_s ◀ ax_r h; で「ax_r から導かれる」という形のThmにまとめます。代入する式に x と y の両方が現れる必要はありません(例えば !prop 名 <- ax_r[??p^:=`y = ∅`] で「X の各元を ∅ に送った像は集合」が示せます)。prop/thm le_set2 <- `∃ C \, [ ∃* s ; t ([ s ; t col ∈ C ]) ]` ◀ W. prf le_set2 -| ℘. , ∅. , ⊂. p; le_set2 -| W. h;!prop で名前を付けて使っています(直接書いても同じ)。!prop ax_r_atST <- ax_r[??p^:=`(x = s and y = u) or (x = t and y = v)`] thm ax_set2 ◀ ax_r , le_set2 prf ax_set2 --| ax_r_atST , le_set2 v; ax_set2 ◀ ax_r , le_set2 h;ページ 4 / 4 … ← 前のページ
イベント 97 件