抽象によるソフトウェア設計 付録A 練習問題 その1
今日から付録Aを読みます。
- A.1.1 二項関係の性質
- 「推移的」と「非反射的」はそれぞれ削ると他の性質を満たすことができる
- A.1.2 関係計算・述語論理式
- 「非空的」は例として挙がっているとおり some x, y: univ | x -> y in r
- 推移的 (r.r in r)は以下の述語論理式で表現できる
all x, y, z: univ | x -> y in r and y -> z in r => x->z in r
-
- 非反射的 (no iden & r) は以下の述語論理式で表現できる
no x: univ | x -> x in r
-
- 対称的 (~r in r) は以下の述語論理式で表現できる
all x, y: univ | x -> y in r => y -> x in r
-
- 関数的 (~r.r in iden) は以下の述語論理式で表現できる(もうちょっとうまく書けそうな気もする)
all x, y: univ | no z: univ | x -> y in r and z != y and x -> z in r
今日はここまで。 A.1.2 はあと「単射的」「全域」「全射的」の述語論理式での書き換えが残ってます。結構時間がかかってしまいました。