白と黒のとびら 第3章 復元 その1

第3章は魔術師の師匠の家の裏山の遺跡について。
この遺跡は構造については簡単で実際に特定可能でした。

  • 第1章、第2章の遺跡よりも年代が新しくて、制約が緩い
    • 全ての部屋に白と黒の扉がある
    • 全ての扉の行き先は固定で時間や状態によって変化しない
    • ある部屋の白と黒の扉が同じ場所に通じることがありえる(ここは第1章、第2章の遺跡と異なる)
  • 「選んではいけない扉」を開くと即死

弟子のガレットの探索の結果

  • 入口の白い扉は即死の扉
  • 白い扉の先の黒い扉は即死の扉
  • 白、黒で出口に到達した
    • 出口の部屋にも白と黒の扉がある
    • 両方とも出口そのものに繋がってる

「開いてはいけない扉」というのがあって、その先は部屋がないものとして扱うとか、出口にも扉があるとか多少構造に違いがありますが、これも alloy で検証してみて、本文中でガレットが図示した構造しか存在しないことがわかります(入口から到達できない部屋についてはあってもわからないのでないものとする制約を追加しています)。

module white_black/restore

abstract sig 扉の先 {}

sig 部屋 extends 扉の先 {
  白: one 扉の先,
  黒: one 扉の先
} {
}

one sig 入口 extends 部屋 {}
one sig 出口 extends 部屋 {}
one sig 即死の扉 extends 扉の先 {}

pred 裏山の遺跡 {
  入口.白 = 即死の扉
  入口.黒.黒 = 即死の扉
  入口.黒.白 = 出口
  出口.白 = 出口
  出口.黒 = 出口

  // 入口から辿れない部屋は意味がないので弾く
  all room: 部屋 - 入口 | room in 入口.^(白+黒)
}

run 裏山の遺跡 for 8 部屋

第3章では遺跡の構造を明らかにすることが問題ではなくて、これが古代ルル語とどう対応しているかというのを考えるというのが主眼のようです。