抽象化の技法2002


1 自動証明の参考文献

数理論理学(林晋著、コロナ社)

2 冠頭標準形と恒真性判定

まとめ

98年度八杉特研卒業研究論文 (布施田敏樹)

京都大学 高崎金久先生の論理学のページ
論理学一般についての講義内容が公開されています。高崎先生の
許可を得ていますので、参考にしてください。ただし無断引用
は厳禁です。あくまでも理解を助けるための参考です。


2002年度秋学期

講義要項にそって講義を進めます。
テーマはいくつかあります。どれもプログラミング科学の基礎に
なるものであり、できるだけ「使える」技術を目標にします。
つまり観念論ではありません。
要点は印刷して配布しますが、詳しい説明は授業中にしっかり聞いておいて ください。
配布物はこのページも貼ってあるので、無くしたりもらい損ねたときに みてください。

10月1日:まずは冠頭標準形から。 その1

述語論理の任意の論理式 A について、 A と同等な(意味が同じな)
論理式 A^p を構成する規則が与えられる。A^p は限量子がすべて
一番外に並んでいて、それらの中は命題論理の論理式になっている。
変形規則は各論理結合子について定義される。
今日は変形規則と標準形作成の演習。
問題 1. の3番目の式の変形を来週までに書いて提出すれば
みてあげます。(最後に多少成績に加算できます。)

質問用紙を渡すので、随時質問を書いてもってきてください。
用紙が必要になったら申し出てください。
もちろん講義の最中や後やほかのときにも質問してください。

Education Support System (課題出題・提出システム)というのがあります。
これを使って課題提出、評価をしてみたいと思います。
初めてなのでうまく使いこなせるかどうか分かりませんが、
慣れると便利なようです。皆さんの協力をお願いします。
とりあえず10月23日に課題が公開されるようにしてあります。
(受講登録終了しないと皆さんがログインできません。23日にもし
ログインできなかったら、2ー3日待ってください。
上のURLに入って、左下のHELPボタンをクリックすると使い方が書いてあります。
それを参考に課題の解答をしてください。
念のために自分の手元に解答を保存しておいてください:
もしうまくいかなかったら、ハードコピーで提出できるように!


10月8日:論理式Aと、その冠頭標準形A^pの(真理値に関する)同値性の証明
例として、⇒の変形の(1)で説明。これを理解すればよい。

「抽象化の技法 そのII」の1ページ目
冠頭標準形をSkolem標準形に変形する。(∀の記号の除去)
「その II」は ここ

A^pと、そのSkolem標準形A^sの同値性は、上とちがって、「恒真性について
同値である」ということである。詳しくは次回。


10月15日:Skolem 標準形からマトリックスを作る。一つのSkolem
標準形に対してマトリックスは無数にある。「マトリックス」とは
中心とか中身という意味で、Skolem標準形の中身、つまり存在記号を
を除いた中身、という意味です。定義は「そのII」の2ページを
みてください。

冠頭標準形 A^p と、そのSkolem標準形 A^s は「恒真性において同値」である。
これは、ある論理式と A と、そのSkolem標準形 A^s が「意味が同じ」という
意味での同値性とは異なることに注意。(証明は、簡単な例で。
十分条件の証明は終了。必要条件は来週。これは背理法による。肯定的に
証明しようと思って、この日は失敗!)


10月22日:述語論理の論理式の恒真性判定の、命題論理の
恒真性への還元。例題。

「そのIII」は は、ここ

レポートシステムが稼働始めました。試してみてください。
具合い悪ければ、知らせてください。



10月29日: プリント「そのIV」
述語論理の論理式の恒真性判定の例
これをよく理解できればだいじょうぶです。
練習問題 解答もついていますが、自分で手を動かして練習してください。
レポートシステムが使用可能になっているはずです。ぜひ使ってください。

次回からは「計算」についてのいくつかの考え方を始めます。


Report System による課題(試行)解答

∀xP(x)⇒¬∀y∃z(A(y,z)∨∀uR(z,u)) の冠頭標準形

∀xP(x)⇒¬∀y∃z∀u(A(y,z)∨R(z,u))
∀xP(x)⇒∃y∀z∃u¬(A(y,z)∨R(z,u))
∃x(P(x)⇒∃y∀z∃u¬(A(y,z)∨R(z,u)))
∃x∃y∀z∃u(P(x)⇒¬(A(y,z)∨R(z,u)))

注:∃xの位置は自由;∃y∀z∃uの順序は変えてはいけない。

今回は試運転で、協力をお願いしましたが、協力度はあまり高く
ありませんでした。協力者には協力点を2−5点配分しました。
次回からは正式にレポートにします。
このページの掲示を注意していkてください。


レポートシステムによる第一回(正式の)課題をだしました。
11月12日課題提出(皆さんが課題にアクセスできる)、
26日解答提出期限です。評価は期限後に一括して
行うので、期限以前ならばいつでも解答の修正ができます。
期限を過ぎるといっさい受け付けません。
何か不都合が見つかったら、19日の授業中か、またはメールで
知らせてください。yasugi@cc
11月12日:次のテーマは「計算論」。(一回ごとの)計算とは何か、
(自然数上の関数が)計算可能、とはどういうことか?を考えること。
そういえば、今までのテーマは「述語論理の恒真性の自動証明」、
すなわち、ある論理式が恒真ならば、そのことが自動的に示される。
計算論にはいろいろある。再帰関数論、Turing機械の理論、λ計算系、
レジスタ機械の理論、などなど。これらはすべて同値な理論であり、
どれも計算できる関数すべてを含む。再帰関数は「論理とプログラム」で
述べた。ここではまずTuring machineの解説をする。
配布物:「計算論理入門」(田中尚夫著、裳華房)pp.66-69.

11月26日: いくつかの基本的なTuringマシン 70-72ページ
プログラムの合成と考えればよい。先のマシンの停止状態を次のマシンの
初期状態とみなして合成する。停止状態が複数あるときには"if"文、
あるいは"cond"文などに相当する。71-72ページのマシンはプリントおよび
講義で定義したものを理解してください。自分で複雑なマシンを
定義できなくてもパニックにならないように。ρとスクリプト体のLを
自分で定義してみること。
第一回レポートシステムによる課題の提出は締め切りました。
採点は来週になります。解答を下にかきます。自分で大体採点 してください。
第二回は12月2日からです。

解答 1. A=∃x(P(x)∧∀yQ(y))⇒¬∃xR(x)
A^p = ∀x∃y∀z(P(x)∧Q(y)⇒¬R(z))
A^s = ∃y(P(c)∧Q(y)⇒¬R(f(y))
A^m = P(c)∧Q(α)⇒¬R(f(α)) すなわち、
¬P(c)∨¬Q(α)∨¬R(f(α))

2. B = ∃x(¬P(x)⇒¬∃yP(y))が恒真であること
B^m = P(α_i)∨¬P(f(α_i))
P(α_1)∨¬P(f(α_1))∨P(α_2)∨¬P(f(α_2))  
として、 α_1 = f(c), α_2 = c とおけば,
P(f(c))∨P(c)∨¬P(f(f(c)))∨¬P(f(c)).

P(f(c)) は正、負それぞれに出現。

注:1の限量記号の順序は、∀x∃yの順序は変えられません。
∀zは、上の位置でも、最初でもいいです。
もし、∀z を最初に置くのならば、A^m は
P(c)∧Q(α)⇒¬R(d) の形になります。

基本的には皆さん理解していたようですが、否定¬が
抜けている答案がいくつかありました。それでは意味が変わって
しまいます。もし¬記号が出せなかったらnotとか、〜とか、
で代用してもいいですから、無視しないこと。(?で代用した
人もいました。それでもいいです。)

なお、評価は、1、2それぞれ5点、合計10点です。
解答をみて、大体自分の評価をみつもってください。
成績は開示します。それを見て、答案を見たければ、
申し出てください。


本日(12月2日9)、レポートシステムによる第二回課題を公開しました。
提出期限は12月17日です。期限までは自由に修正できますから、
一度早めに見ておいてください。
注:q_0 は、初期状態を表す。q に、下付き添字 0 をつけたもの。
なお、第一回の採点は来週までには終わります。
12月3日:Turing計算可能な関数(pp73-75)
自然数上の関数が、Turing計算機で計算できる、とはどういうことか
が定義されている。結果として、再帰的関数とTuring計算可能な関数は
一致する。ともに、「計算とは何か」という問いに答えようとした結果
考えられた理論である。この講義では簡単な関数に対して、それを計算する
Turing計算機があることを例題で理解すればよい。

演習問題

1. 69ページ、問1のTuring計算機で、第二、第三の計算をしてみる。
解答は来週教室で。

2. (1) 次の初期状況から出発して、71-72ページの各計算機で、
(一回の)計算を実効せよ。ただし、K_n は K_2 で。
BB11B111q_0B11BB

(2) 74ページ、例5で、S(2)をM_2で計算せよ。

(3) 74ページ、例6で、+(2,3)をM_3で計算せよ。

注:(2)は最終的に B111B1111q_HB となる。
(3)は最終的に B111B1111B111111q_HB となる。
こうならなければ、相談にきてください。


これからソフトウエア仕様記述のための形式的言語Zの勉強をします。

参考文献は次の二つです。
ソフトウエア仕様記述の先進技法ーZ言語(ポター等著、田中訳、トッパン)
99年度八杉特研卒業研究論文 (岩瀬、大西、平井、平田)
この論文は多少の誤字、ミス記述などありますが、言語Zについて要領よく まとめてあります。
ZはOxford大学で開発された仕様記述言語です。インターネットで
Formal Methods, Z, などで検索すると、いろいろ情報が得られます。
とくに Oxfordのサイト
を探してください。


12月11日:プリントpp.30-31(2.2)
なぜ仕様記述言語の開発が必要とされたか、の説明
言語Zの特徴。型の重要性。述語論理の論理式の記法
問題の解答例。

形式的仕様記述言語・プリント・問題解答(例)
p.30 問題 2.12
(iii) パリはヨーロッパの首都のうちで最もロマンチックである。
「首都の集合」をCapitals、「x はヨーロッパにある」を inEurope(x)、
「x のロマンチック度」をrom(x)、cap を変数、パリを表す定記号を
Parisとする。

inEurope(Paris)∧∀cap:Capitals・(inEurope(cap)⇒romantic(Paris)>=romantic(cap))

ただし「以上」を>=と表している。あるいは、「ヨーロッパの首都の集合」をECとして、
inEuropeを略すこともできる。また、romantic(x)を「x はロマンチックである」という
述語とすることもできる。たとえば

Paris:EC・∀cap:EC・(romantic(cap)⇒romantic(Paris))

「ほかの都市がロマンチックならば、もちろんパリはロマンチック」によって
パリが最もロマンチックであることを表現している。
ただし、これではどの首都もロマンチックでないかもしれない。パリが実際に
ロマンチックであることを表すには、∃cap:EC・romantic(cap)を加えればよい。

(vi) 私のスペイン語の夜のクラスでは、最年長の学生は最年少の学生の4倍以上の年齢である
age(x) を、x の年齢、SEを「スペイン語の夜のクラス(の学生全体)」とおく。

∃x:SE・∃y:SE・(∀z:SE・age(x)>=age(z)>=age(y)∧age(x)>=4*age(y))

または、数学的に同値な式として

∃x:SE・∃y:SE・age(x)>=age(y)


12月17日:問題2.14(p.31)
第一の式:誰にでも親がいる。
第二の式:ある人はすべての人の親である。
注:式が真か偽かを問題にしているわけではない!
第二の式の bullet は、・ (黒丸)の間違い
集合の記法(「集合と論理」で学んだこととほとんど同じ)。集合の定義に==を使うことに 注意。
問題2.15(p.32): 自分でもいくつか集合を定義してみてください。

今後の予定:型の簡単な説明とスキーマの説明


第二回レポート解答:今回は大体よくできていました。
皆さんさすがに計算アルゴリズムは得意なのですね。
一応解答を書いておきます。なお、各問5点、合計10点。部分点あり。

1. B11q_01B→B111q_61B→B1111q_6B→B11111q_6B→・・・ ↑

2. B11q_01B→B1q_11B1B→Bq_111B1B→q_1B11B1B→q_2BB11B1B→
q_21B11B1B→q_H1B11B1B↓


第三回レポート課題をだしました。
締め切りは1月16日です。

1月7日:Zの型体系(プリント74--)
昨年度期末試験問題と解答 参考にしてください。
期末試験勉強のポイント

大きい問題が3題
1. (1) 与えられた述語論理の論理式 A の冠頭標準形、スコーレム標準形、
マトリックスの一つ、その和積標準形、を求める。(穴埋め問題)
(2) (1) の結果を使って、 A が恒真であることを示せ。

2. (1) ある Turing 機械 M の初期時点表示が与えられているとき、
M の動きの各時点における時点表示を表せ。
(2) (1) を参考にして、機械 M の働きを、ことばで記述せよ。

3. 簡単なスキーマの作成。(穴埋め問題)

以上、学期の間に学んだ事柄の基本がわかっていれば、できる問題です。


1月14日:公理的記述、略記的定義、総称的定義(プリント74-77)
スキーマの実例(図書館管理システム)
公理的記述:変数について、その型、満たすべき性質、を記述する。
Zではスキーマで記述。
略記的記述:集合等になまえをつける。(以後なまえを参照すればよい)
総称的定義:集合や写像の定義が、どの型にでも通用する形で書けるとき、
その定義をいう。

プリント問題解答例
問題4.24(ii) notgreen: グリーン以外の一色
| notgreen: Color
|____________________________
| nogreen =/ green
|
注:「グリーン以外の一色」の「一」は notgreen:Color で表現されている。
Color が、色の型を表すとすると、その型をもつオブジェクトは一つ一つの色である。

問題4.25(ii) bignumbers == {n:N|n>1000000}

問題4.27initialstock に属し、その在庫レベルが10より少ない在庫品すべての集合
initiallowlines の公理的記述。(簡単のため、縦線は省略)
initialstock: Stock
initiallowlines: Stock
---------------------------------- initiallowlines \subset initialstock
∀i:Item∀m:N・(i,m)εinitiallowlines <=> (i,m)εinitialstock ∧m=< 10
注:「A \subset B」は、A が B の部分集合(含まれる)を表す。
Item は品目を表す型、εは「要素」関係、<=>は両方向きの「ならば」
すなわち、同値性、=< は「以下」を表す。


問題と解答例
(i) 老舗とは、150年以上続いた店、とするとき、
京都の老舗の集合RouhoInKYotoの(略記的)定義えを与えよ。
店 の型を Miseとする。
RouhoInKyoto == {mise:Mise| mise is in Kyoto ∧ mise is at least 150 years old}

(ii) 双子素数の集合 TwinPrimes の略記的定義をあたえよ。
ただし、双子素数とは、二つの整数n,n+2の対で、両方とも素数であるもの。
Prime(x) (x は素数):x>1∧¬∃y,z:N・1 TwinPrimes == {a: N x N| ∃n:N・a=(n,n+2)∧Prime(n)∧Prime(n+2)

(iii) singleton (要素を1個だけもつ集合)の総称的定義
====[X]==============
singleton:PX
----------------------
∃x:X(xεsingleton)∧∀y:X・yεsingleton ⇒y=x
ただし xεy は「x が y の要素である」を表す。


本日で第三回レポート提出は締め切られます。
できるだけ早く解答を載せます。
なお、第四回レポートは明日17日解禁(?!)です。
締め切りは23日です。期間が短いですが、来週中に
解答を掲示して、試験勉強の参考になるようにしたいからです。

試験前の質問について: 私の予定が未定の部分が多いので、
確定した時間があまりとれませんが、
21日(火曜日)、2時過ぎから2:50まで、
22日4時前から4:30まで、C2教室で、待機しています。
用事があったらきてください。


第三回課題解答:人の型を Person、花の型をFlowerとする。
人を表す変数を p 、花を表す変数を f とする。
1.「誰にでも好きな花がある」→「人誰についても、ある花があって、
その人はその花が好きだ」
∀p:Person・∃f:Flower・Likes(p,f)

2.「みんなが好きな花がある」→「ある花があって、人はすべて
その花が好きだ」
∃f:Flower・∀p:Person・Likes(p,f)

注意:1はほとんどの人ができていました。2の典型的なまちがいは
∃p:Person・∀f:Flower・Likes(p,f)
「花がある」といっているのに、なぜ「人がある(いる)」となるのですか?
仕様記述でも、プログラミングでも、日本語の正確な理解が不可欠なのです。
このことをよく覚えていてください。
なお、少数ですが、p:Person を、Person:p と書いていました。これはZの文法の
問題です。Zに限らず、型の理論では 変数:型 という記法が基本です。


評価の仕方:A = 課題(4回)の合計点(満点は40点)*0.5 (満点は20)
B = 期末試験の点(満点は80点)
成績 = A + B (満点は100点)
ただし、課題試運転の協力点(満点は5点)も可算される(おまけ)。
また、合否の境界点の場合、出席状況も参考にする。

済みません。風邪で寝込んでいて、21日は休講です。
補講を設定するので、大学の案内を注意してみてください。
ここにも決まり次第掲載します。
2−3日中に、補講内容の概略をここに書きます。
また、いつも英語のクイズを出すのですが、それも後でここに
解答方法も含めて書きます。
なお、21日の質問の時間はキャンセルですが、
水曜日はなんとか出る予定です。
病院には若い人も大勢風邪の人がきていました。
期末試験に向けて、健康には気をつけてください。

補講の講義内容の要点を書いておきます。

スキーマについて:図書館管理システムの例に基づく説明
プリントのp.130の、図書館の業務についての説明を読んでおく。
p.131 6.3 抽象的状態を規定するスキーマ
このページはざっと読んでおく。
p.132 スキーマ Library の解説。
初めに用意する記号は、基本データ型と変数である。
1. 基本データ型(状況に応じて自分で決める。Z言語で指定して
あり、とくに明記しなくても使えるものもある。(例 整数型 Z、自然数型 Nなど
ここでは、型として、 Book(著書) Copy(著書の現物;コピーと呼ぶ),
Reader(登録可能者、人々、と考えてもよい) を設定。
2. 変数 stock(蔵書の集合)、issued(貸し出中のコピーの集合)、
shelved(貸し出していない、すなわち、棚にある、コピーの集合)、
readers(実際に登録している利用者)
また、大域変数 maxloans (貸し出し可能冊数)を用意する。
これはスキーマLibrary以前に宣言しておくr。
Libraryの中の変数との違いは、普通のプログラム言語における
大域変数と局所変数の違いと同じである。maxloansは、スキーマの中で
値が変化しない。スキーマの中では、定数とみなされる。
以下、"Library"の説明をしていく。p.132 の説明と照らし合わせて
読むこと。
まず、スキーマの形式は(簡単のために左端の縦線は略)

---スキーマの名称--------------
宣言部

-----------------------------
述語部

-----------------------------

宣言部について

-|-> は、部分写像(関数)の型(集合)を表す。写像は「写像のグラフ」で
表される(「集合と論理」の「写像」参照)。すなわち
f(x)=y を f のグラフ G_f によって、(x,y) ε G_f と表したのと同じ
考え方である。

stock: Copy -|-> Book は、stock が蔵書の一冊でり、(x,y) という対の
形をしていて、x は型 Copy で、ある図書館で使えるコピーの識別子(記号や番号)、
y は型 Book で、その識別子を割り当てられた著書(の名前)である。
使える識別子でも、実際には使っていないものもあるから、stock は部分写像である。

issue: Copy -|-> Reader は、issue が貸し出し中のコピーであり、
(x,z) という対の形をしている。x の型は上と同じく Copy で、
z は型 Reader で、識別子 x の コピーを借りている登録者を表す。
これが部分写像であることは、内容から明らかであろう。
shelved: F Copy は、shelved が貸し出していない、図書館の棚に残っている
コピーの集合であることを示す。 F X は、X の有限部分集合全体を表す。
ここでは、 X 自体が有限集合で、したがって F X は、P X (X の部分集合全体)
と同じ、と考えてよい。

readers: F Reader は、reader が、登録可能な人々(Reader) の有限部分集合
であることを示す。内容としては、実際に登録している利用者の集合である。

述語部について

dom f は、 f が写像(のグラフ)、すなわち、 (x,z) という対の集合ときに、f の定義域、
すなわち、(x,z) が f の要素になるような x の集合
したがって、dom issued は、貸し出し中のコピーの識別子の集合、dom stock は、
蔵書の識別子の集合を表す。これにより、第一行目は、「棚に残っている
コピー(の識別子)全体と、貸し出し中のコピー(の識別子)全体の和集合は
蔵書(の識別子)全体に等しい。第二行目はその二つの集合が共通部分を
もたない(同時に貸し出し中で棚になる、ということはない!)ことを表す。
ran f は、f が写像(のグラフ)であるとき、f の値の集合を表す。
上にならえば、(x,z) が f の要素になるような z の集合である。
第三行目は、「借り出している人々は実際の登録者の部分集合である」
すなわち、借りる権利のある人にだけ貸し出している、ということを表す。
#S は、集合 S の要素の個数、issued |> {r} は、issued という、対(x,z)の集合の
要素のうち、z が r であるものの集合。つまり issued |> {r} の要素は
それぞれ (x,r) の形をしている。
最後の行は、「各登録者 r について、r に貸し出し中のコピーの冊数は
maxloans 以下である」を表す。すなわち、貸し出し可能最大冊数を
越えてはならない、ということである。
以上が、蔵書や登録者の出入りのない、図書館のデータとして基本的な
最低限の条件を表現している。

この説明と照らし合わせて、プリントのLibraryのスキーマをゆっくり眺めて
ください。図書館の機能をちょっと考えれば、意味がわかると思います。
期末試験は、たとえば、こういうスキーマの一部分の空白を埋める問題です。


補講をするつもりでしたが、風邪が悪化して、今のところ
予定がたちません。いざというときのために、上の内容をよく読んで
勉強しておいてください。また、さらに補足するかもしれないので
ときどき見てください。
質問があれば、メールをください。毎日メールのチェックくらいは
できますし、解答も送ります。
解答つき模擬試験がここにあります。
実際の試験と形式は全く同じです。これをよく理解してください。
質問があれば、メールをください。(yasugi@cc)

24日には、4回目の課題の解答を書きます。

あと、英語のクイズをおまけの課題として出します。 ここに大体のことを書いて、解答はレポートシステムで出すようにします。
このページを注意していてください。


皆さんの質問:メールの質問(と、答え)で、皆さんにも役にたちそうなことを
書いておきます。
*チューリング計算機の問題の解答に 、0や 6 と言う数字が出てくるのは
どういうことですか?
答え:0 や 6 は、q_0 とか q_6 という形で出てくるでしょう?これは0番目の状態、とか
6番目の状態、を表しています。つまり0や6は添え字なのです。
q の左下に小さく書けばいいのですが、そう書けないので、代わりに q_0 とか書くのです。

*B,1もよくわかりません。
答え:B や 1 (または | )は、プリントにもあるし、講義でも説明したはずですが、
テープに印刷する文字です。実際には印刷されるのは1だけで、B は、その
ます目が空(から)であることを表します。(Bはblank のB)

*チューリング計算機の問題がよくわかりません。
答え:機械の表または、関数δの指示どおりヘッドを動かしてゆくだけです。
その様子をテープの状態で表すのは大変なので、時点表示という様式で
表します。プリントは短いものですから、ゆっくり読んでください。
また、上に模擬試験をおいておきましたので、それをぜひ参考にしてください。

*Zの論理式を表す問題で ∀x:X・..... と
∀x:X (.....) の使い方の違いがわかりません。
答え:・は「かっこ」だと考えていいのです。しかしときには両方使うことがあるので
まぎらわしいかもしれませんが、・は言語Zの記法です。
∀x:X・x=2∨x < 0 と、 ∀x:X(x=2∨x < 0) は同じことを表します。
しかし長い式の場合 ∀x:X・(x=2∨x < 0.......) のように書くこともあります。
この場合は本当は・か(  )か、どちらかでいいのです。

*Turing機械Mの働き」とはどういう意味ですか?
「模擬試験」の第2問のことですか?
そこの答えを見ればわかると思うのですが、一般にたとえば
「Mは二つの数の足し算をする」とか、「Mは、1が並んでいるときに、その
一番左の1を消す」などというように、記述することです。


最後におまけで、第5回レポートとして、クイズをだします。

3人の会話(それぞれは意味をもつ)を聞いて、Bill は何か不審な気がします。

それはどういうことなのでしょう?答えは日本語で書いてください。
考えるヒントをここに書いておきます。(レポートシステムには、ヒントは書きません。)
答えがまちがっていても、解答者が自分にとっては筋が通っている、と
分かれば、5点の加算です。全然関係ないこと書いてあったらだめですが。
ともかく自分なりに考えて、答えてください。
これはいつも英語のクイズを教室で出すことの代わりです。
締め切りは2月15日です。ゆっくり楽しんでから答えてください。

Friendly conversation
Mary : "I am a liar."
John : "Mary is telling the truth."
Caryn : "Mary is not telling the truth."

Bill : "Neither John nor Caryn is correct. There is something strange about the whole thing."

Question : Why does Bill say so?

Hint: Suppose John is correct. Then Mary is telling the truth. So Mary is a liar.
This means that Mary is not teling the truth.
Suppose Caryn is correct. Then Mary is not telling the truth. So Mary is not a liar.
This means that Mary is telling the truth.


第4回レポート解答:任意の型Xについて、Xの部分集合で、要素の個数がちょうど
2個である集合twosの総称的定義を与えよ。
解答例
==========[X]=============================
twos: PX
------------------------------------------
∃x:X・∃y:X・¬x=y ∧x,yεtwos ∧∀z:X(z εtwos ⇒z=x∨z=y)

これを読むと、「型X の二つの要素 x,yがあって、それらは等しくなく、
両方ともtwos の要素であり、任意の型Xの要素 z について、z が twos の
要素ならば、z は x,y のどちらかに等しい。」
これが「twos がちょうど要素2個をもつXの部分集合である」ことを示すことは
分かるでしょう。
・の代わりに括弧を使ってもかまいません。
なお、述語部が 「#twos = 2」というのがありました。# を知っていればこれでも
いいわけです。授業中にも#は使いましたし。私の意図は、singleton の例に倣って
上のように論理式で書いてほしかったのではありますが、まちがいではないので
これでけっこうです。ただし、論理式で書こうとしてちょっとまちがった、という
人に不利にならないように配慮しました。
スキーマの形式が分かっていれば、かなりの配点をし、論理式の細かいことは
あまり厳密に区別しませんでした。もちろん全体が「明後日」の方向では困りますが。
今回課題提出しない人が多かったのは、残念です。その埋め合わせのためにも
クイズにはぜひ答えてください。


訂正:練習問題そのIVのI-3の設問を書き間違えていました。
次のようにしてください。
∀x∃yP(x,y)⇒∃u(Q(u)∧∃vP(u,v))

期末試験は大体よくできていました。
模擬試験を勉強していたらバッチリ!ですよね?!
解答付き期末試験はここです。
これを参考に自己採点してみてください。80点満点です。

初めてのテーマをトピック風に解説したので、まだ完全には
自信ないな、と思うかもしれません。それはそれでいいのです。
将来こういうことに出会ったときに、勉強するための基礎は できているはずです。
では、卒業生は、元気で社会にでてください。
3年生は、卒業と就職に向けて有益な一年を送ってください。


../
/
Last modified: Mon Mar 10 11:33:31 JST 2003