formal-methods-playbook.md 実装コードから仕様を吸い出して Z3 / TLA+ でバグを払い出す — 実践プレイブック 既存システムの実装を「事実上の仕様」とみなし、それを形式化することで 「テストでは踏めないバグ」と「実装が暗黙に決めている仕様」を炙り出すための手順書。 仕様書が無い / あてにならない / 仕様と実装がずれている、という現場を前提にする。 0. 基本姿勢: コードが de-facto 仕様である 仕様書ではなく 実装が現に何をしているか を仕様の源にする。やることは3段: 吸い出し (extract): コードから「実装が主張している仕様」と「暗黙に決めている挙動」を分けて抜く 形式化して反例探索 (refute): 主張をモデル化し、それが全入力/全順序で本当に成り立つかを機械に攻撃させる 突き合わせ (reconcile): 出た反例を「こ

