抽象によるソフトウェア設計 付録A 練習問題 その2

付録A続きます。

  • A.1.2 関係計算・述語論理式
    • 単射的 (r.~r in iden) は以下の述語論理式で表現できる
all x, y: univ | no z: univ | x -> y in r and x != z and z -> y in r
    • 全域 (univ in r.univ) は以下の述語論理式で表現できる
all x: univ | some y: univ | x -> y in r
    • 全射的 (univ in univ.r) は以下の述語論理式で表現できる
all y: univ | some x: univ | x -> y in r
  • A.1.3 モデリング時の関係的性質
    • (a) sibling: 兄弟関係。推移的、非反射的、対称的 が満たされる
    • (b) links: ネットワーク上のホスト間のリンク。非反射的、対称的かな?
    • (c) contains: ディレクトリとその中身の関係。推移的、非反射的(ただ "." がディレクトリのエントリとして読めるのでそういう意味では反射的かも)
    • (d) group: 非反射的、単射
    • (e) sameGroup: 推移的、対称的

ちょっと A.1.3 は文章では曖昧な点もあるので答えづらいですね。

  • A.1.4 ナビゲーションのリファクタリング
    • 結合の集合和への分配則は成り立つ s.(p + q) = s.p + s.q
    • 集合差への分配則は成り立たない s.(p - q) = s.p - s.q
    • 集合積への分配則も成り立たない s.p & q) = s.p & s.q

今日はここまで。