• 検索結果がありません。

工学部専門科目「計算と論理」配布資料 練習問題集 (2016 年度版 )

N/A
N/A
Protected

Academic year: 2021

シェア "工学部専門科目「計算と論理」配布資料 練習問題集 (2016 年度版 )"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

工学部専門科目「計算と論理」配布資料 練習問題集 (2016 年度版 )

五十嵐 淳

京都大学 大学院情報学研究科 通信情報システム専攻 [email protected]

http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/class/cal/

November 8, 2016

11/15()の授業時間を使って演習を行います.演習はもう一度くらい行う予定です.

演習の進め方

0. 予め練習問題を解いておく

1. 練習問題の解答を(問題番号・氏名とともに)白板に書く 2. 教員/TAによる講評

3. 1., 2. を繰り返す.

注意事項

小問単位で答えよ.

問題を解答する順番は問わない.(後の問題を最初に解いてよい.)

問題の解答は早い者勝ちとするが,同時に解答を開始するのは構わない.

正答した場合は成績へ加える.

1 単純型付ラムダ計算

定義 1.1 (正規形) M がこれ以上簡約できない,すなわち,M −→N なる項 N が存在しない

時,項 M は正規形(normal form) である,という.

定義 1.2 (正規化可能) M が正規形に簡約できる,すなわち,M −→ N (ただしN は正規形) であるような N が存在する時,項 M は正規化可能(normalizable) である,または,M は正規形 を持つ,という.

(2)

練習問題 1.1

M =if true then (fun n : nat => plus n n) (S O) else (fun n : nat => n) O とする.M は以下の3つの項

M1 = (fun n : nat => plus n n) (S O)

M2 = if true then plus (S O) (S O) else (fun n : nat => n) O M3 = if true then (fun n : nat => plus n n) (S O) else O に簡約されうる.以下の小問i(ただし i= 1,2,3)に答えよ.

小問i: M −→Mi の導出木を書け.

(この問中のplus は単なる変数である.)

練習問題 1.2 Mfix f (x : nat) : nat := match x with O => O | S y => S (S (f y)) end とする.

M (S (S O))−→M1−→ · · · −→Mn (ただしMn S (S (...O)...) の形) となる Mi を列挙せよ.

練習問題 1.3 Basics.vに登場したplus関数をfixを使った項Mplusで表すと以下のようになる.

Mplus = fix plus(m : nat) : nat := fun (n : nat) =>

match m with O => n | S m’ => S (plus m’ n) end

(Mplus (S O)) (S O)が簡約されてS (S O)になる過程を,Mplus (S O) (S O)−→M1 −→

· · · −→Mn −→S (S O)なる Mi を列挙することで示せ.

練習問題 1.4 前問の Mplus を使った項 Mplus Oについて無限簡約列(Mplus O −→ · · · −→

Mn−→ · · ·)があることを説明せよ.

練習問題 1.5 練習問題1.1の項Mをこれ以上簡約できなくなるまで簡約した結果得られる項をN とするとき,M −→ Nの導出木を書け.(この問中の plusは単なる変数である.)

練習問題 1.6 関係 (fun x : nat => x) (S O)←→(fun x : nat => S O) Oの導出木を書け.

練習問題 1.7

(fun c : nat -> bool -> nat => fun a : nat => (c a)) (fun b : nat => fun a : bool => b) の正規形を求めよ.

練習問題 1.8 以下の小問に答えよ.

1. 練習問題1.1の項M について,型付け関係 M :T が成立するT を見つけ,型付け関係の 導出木を書け.

(3)

i. (ただしi= 2,3,4) 練習問題1.1の項Mi1 について,型付け関係 Mi1 :Ti1 が成立す Ti1 を見つけ,型付け関係の導出木を書け.

練習問題 1.9 練習問題1.1の項M,Mi (ただしi= 1, 2, 3)の型付け関係の導出木をそれぞれ書け.

練習問題 1.10 練習問題1.1の項Mをこれ以上簡約できなくなるまで簡約した結果得られる項をN とするとき,M −→ Nの導出木を書け.

練習問題 1.11 練習問題1.5の項Nの型付け関係の導出木を書け.

練習問題 1.12 plus (S O) (S (S O)) ←→ plus (S (S O)) (S O)が導出できることを説明せ よ.(必ずしも導出木を全て書き下す必要はない.)

2 単純型付ラムダ計算 + ペア

ペアで拡張した単純型付ラムダ計算を考える.

(types) S,T ::= · · · |ST

(terms) M,N ::= · · · |(M1,M2)

| match M with (x, y) => N end

match (M1,M2) with (x, y) => N[x,y] end−→N[M1,M2] (R-PMatch)

Γ M :S Γ N :T

Γ (M, N) :ST (T-Pair) Γ M :T1T2 Γ, x:T1, y:T2 N :S (x,y̸∈dom(Γ))

Γ match M with (x, y) => N end :S (T-PMatch)

練習問題 2.1 Lists.vで定義した fstに相当する項Fst を書き,

1. 関係 Fst(O, S O)−→ Oの導出木を書け.

2. 型付け関係 Fst:natnat ->T が成立するT を見つけ,導出を書け.

練習問題 2.2 以下の単純型付ラムダ計算の型付け関係の判断について,判断が導出できるような項 Mを見つけ,導出を書け.ただし,S,T,U は型とする.

1. M :S->T ->S

(4)

2. M :(S->T ->U)->(S->T)->S->U 3. M :(S->T ->U)->(ST ->U) 4. M :(ST ->U)->(S->T ->U)

3 多相ラムダ計算

idを項 fun X : Type => fun x : X => xとする.

練習問題 3.1

id(nat -> nat) S(idnat O)−→M1 −→ · · · −→Mn (ただしMn S (S (...O)...) の形) となる Mi を列挙せよ.

練習問題 3.2 以下の多相ラムダ計算の型付け関係の判断について,判断が導出できるような型T 見つけ,導出を書け.

1. fun X: Type => fun x:X => fun y:X => x:T 2. id(Y : Type,Y -> Y) id:T

練習問題 3.3 IKSをそれぞれ以下のように定義する.

I = fun X : Type => fun x : X => x

K = fun X : Type => fun Y : Type => fun x : X => fun y : Y => x S = fun X : Type => fun Y : Type => fun Z : Type =>

fun x : X -> Y -> Z => fun y : X -> Y => fun z : X => x z (y z)

このとき,以下の型付け関係の判断について,判断が導出できるような型T1,T2,T3を見つけ,導出 を書け.

1. I :T1 2. K:T2

3. S:T3

練習問題 3.4 以下の型付け関係の判断について,判断が導出できるような型T および,T1,T2を見 つけ,導出を書け.ただし,練習問題3.3で求めた導出と重複する部分は省略して良い.

(5)

fun X: Type => S T1 T2 T1 (K T1 T2) (K T1 T1):T

練習問題 3.5 多相ラムダ計算を使うと,ペアを次のように定義することが出来る.

pair = fun X : Type => fun Y : Type => fun x : X => fun y : Y =>

fun Z : Type => fun Z : X -> Y -> Z => z x y また,このように定義したペアについてのf stsndは次のように定義される.

f st = fun X : Type => fun Y : Type => fun p :Z : Type,(X -> Y -> Z) -> Z =>

p X (fun x : X => fun y : Y => x) snd = fun X : Type => fun Y : Type => fun p :∀Z : Type,(X -> Y -> Z) -> Z =>

p Y (fun x : X => fun y : Y => y) 以下の型付け関係の判断について,判断が導出できるような型 S,T,U を見つけ,導出を書け.

1. pair:S 2. f st:T 3. snd:U

練習問題 3.6 pair,f st,snd を練習問題3.5のように定義し,pを項pair nat bool O true する.このとき,

f stnat boolp −→M1 −→ · · · −→Mn

となるMi (ただし Mn は正規形とする)を列挙せよ.また,

snd nat boolp −→N1 −→ · · · −→Nm

となるNi (ただし Nm は正規形とする)を列挙せよ.

4 命題論理

練習問題 4.1 命題論理の導出規則を使って以下の判断の導出を書け.命題¬P P ->の略記で ある.

1. p->q->p

(6)

2. (p->q->r)->(p->q)->p->r 3. p->¬¬p

4. ¬¬¬p->¬p

5. (p->q)->(¬q->¬p) 6. ¬(pq)->(¬p∧ ¬q) 7. (¬p∧ ¬q)->¬(pq) 8. (p->q->r)->(pq->r) 9. (pq->r)->(p->q->r) 10. ¬¬(p∨ ¬p)

11. (p∨ ¬p)->¬¬p->p

12. (pq)r->(pr)(qr) 13. (pq)r->(pr)(qr) 14. (p->r)(q->r)->(pq->r) 15. ¬(p∧ ¬p)

16. (¬pq)->(p->q)

5 述語論理

練習問題 5.1 単純型付ラムダ計算(+命題論理)に関する論理の導出規則を使って以下の判断の導出 を書け.ただし P,Qnat -> Prop 型の変数,RProp 型の変数とする.(文脈からも省略する.) 途中,出てくる Γ P : Prop の形の判断についての導出は省略してよい.また型宣言( :T) は適 宜省略する.

1. (∀x,P x)->(∃y,P y) 2. (¬∃x,P x)->y,¬P y 3. (∀x,¬P x)->¬∃y,P y

4. (∀x,(P x -> Q x))->((∀y,P y)->∀z,Q z)

(7)

5. (∀x,(P x -> Q x))->((∃y,P y)->∃z,Q z) 6. (x,(P xQ x))->(y,P y)(z,Q z) 7. (∀x,P x∨ ¬P x)∧(¬¬∀y,P y)->∀z,P z 8. (∃x,P xQ x)->(∃y,P y)(∃x,Q x) 9. (x,P x -> R)->(y,P y)-> R

10. ((∃y,P y)-> R)->(∀x,P x -> R)

6 日本語による証明

練習問題 6.1 以下の命題を(日本語で)証明せよ.(ただし,命題や関数の意味はCoq での定義によ るとする.)

1. ∀X : Type,∀x y : list X,length(x ++ y)=length x + length y を示せ.

2. bool上の排他的論理和を計算する関数xorbを定義し,b c : bool,xorb b c=andb b c ->

b = falsec = falseを示せ.

3. x y : nat,ev x -> ev y -> ev (x + y) ev xの導出に関する帰納法で示せ.

4. ∀x : nat,∀y : nat,(x=y∨ ¬(x=y)) xについての帰納法を使って示せ.

参照

関連したドキュメント

鶴岡工業高等専門学校 以下の自己点検・評価結果を踏まえ、当該観点の内容を満たしているか。 ■ 満たしていると判断する 自己点検・評価結果欄(該当する□欄をチェック■) 自己点検・評価の根拠資料・説明等欄 備考 再掲 1 学校の目的を達成するために、教育研究活動に対して適切な資源配分を決定す る際、明確なプロセスに基づいて行っているか。

(具体例)

・テーマ 「専門学科『情報科』と大学との連携」 ・パネリスト(敬称略) 中森眞理雄 東京農工大学工学部情報工学科 教授

ここでは,命題の構成要素 ( 論理結合子 (logical connective) という ) として「ならば (->) 」だけを 考える論理から始めて, Induction.v

五十嵐 茂 IGARASHI Shigeru 1.はじめに 専門課程、制御技術科 2

専門医実績目録 単位については、【麻酔科専門医新規(再認定)申請書類】の「実績目録単位表(2016/11/25 版)」 を参照して下さい。

NPO 法人 Explat 代表理事 植松侑子 NPO 法人 Accountability for Change 創設理事 五十嵐剛志 NPO 法人サービスグラント 代表理事 嵯峨生馬. Arts

科目番号 科目名 方法 単位数 修年次 実施学期 曜時限 教室 担当教員 授業概要 備考.. W140262 専門語学B(独語) 2 2.0 3 春AB秋AB 月3