STEP 1645 — invariance-checker empirical v0.2
1. v0.1 → v0.2 変更点
STEP 1637 v0.1 結果: aggregate 11 TRUE / 1 BOTH / 0 FALSE。 但し これは "positive-only" 発火装置での 数え上げ = 「感度」 (invariance 破壊を 検出できる能力) は 測っていない。 STEP 1631 spec §陰性対照 で v0.2 defer と 予告済み。
v0.2 は 2 つの destructive transforms (答えが 変わるはず の 変換) を 追加:
destructive/first-number-plus-ten— 最初の整数 +10 (線形算術の 答えが 変わる)destructive/numeric-double-first— 最初の整数 ×2 (乗算問題でも 答えが 変わる、number-swapは commutative で 除外)
これで 4 象限 confusion matrix が 1 run で 出せる。 sample n=5 で 一側 binomial 最小 p = 0.03125、 α=0.05 gate 通過 (v0.1 の n=2 は 0.25 で 未達だった)。
2. 4 象限 confusion matrix
Loading empirical data…
3. Per-problem detail
| Problem | Expected | preserving verdicts | destructive verdicts (TRUE=missed shift ⚠) |
|---|---|---|---|
| Loading… | |||
4. Cross-problem BH-FDR
Loading…
5. Honest scope (v0.2)
- Destructive transform の "equivalence-breaking" 主張 は caller assertion。 model が answer を 保存したとき (destructive-TRUE) は、 (a) shift を missed か (b) transform が 実は preserving だった (例: number-swap の 乗算問題) の 区別が 必要。 v0.2 では
numeric-double-firstは 全 10 問題で 答えが 変わることを 手動で 確認済 - Aggregate verdict は preserving transforms のみに 対して 計算 (destructive を 混ぜると "invariance held across all" の 意味論が 壊れる)
- Sensitivity / Specificity は per-pair (sample 0 basis) で 計算。 per-sample fine-grained counts も 参考出力
- Sample n=5 で 統計 layer の 最小 p = 0.03125、 α=0.05 gate 通過。 但し FDR q=0.05 の下では 検定力 は まだ限定的 (30 trial 中 何件が 通るかは 実測依存)
- 単一 model (qwen2.5:3b)、 単一 run。 model 差 / run 差 は v0.3 で cross-verification 予定
6. Raw data
Full JSON: /data/invariance-checker/empirical-v02-2026-08-31.json
Reproduce: npx tsx scripts/invariance/run-empirical-v02.ts --model qwen2.5:3b --samples 5 --problems 10