proof/: all 23 Isabelle theory files now verify under Isabelle2025-2

Isabelle toolchain replaced (was genuinely 2011, 14+ years stale) and every
theory file fixed to actually compile -- most had apparently never been
checked under a working Isabelle at all. Fixed the vm_state self-reference
in StarForth_Base.thy properly (word_table is now a free-standing global
constant, not a circular record field), corrected the word_physics_transparent
axiom (was claiming full state equality from mere exec-equivalence, provably
too strong), and worked through 14 years of HOL-Library drift plus several
missing-hypothesis bugs across the physics-loop and ACL theories.

Two genuine (non-tactical) bugs found and left oops-flagged rather than
silently resolved: forth_roll's index arithmetic disagrees with both its own
test lemma and the real C ROLL implementation (three-way inconsistency), and
pm_wf isn't actually preserved by pm_record_hit/pm_record_miss. Both need a
decision, not a proof-script fix.

Full writeup in FABRIC-2.md item 5.2.
This commit is contained in:
Robert Allan James
2026-08-13 12:30:30 -04:00
parent 5787718c30
commit 422ef2fa29
20 changed files with 561 additions and 198 deletions
+7 -1
View File
@@ -49,8 +49,14 @@ lemma inf_window_wf_ub:
Section 2: ANOVA early-exit threshold
======================================================================== *)
(* CORRECTED 2026-08-13: was "= Q48_SCALE" directly -- Q48_SCALE :: q48
(64 word) but this constant is nat (matching io_window_variance_q48's
type). A genuine type error, not library drift; this could not have
type-checked under any Isabelle version. Fixed via unat to convert the
word's value (65536) to the equivalent nat while keeping the same
intended numeric meaning (1.0 in Q48.16). *)
definition ANOVA_VARIANCE_THRESHOLD :: nat where
"ANOVA_VARIANCE_THRESHOLD = Q48_SCALE" \<comment> \<open>1.0 in Q48.16 — matches C default\<close>
"ANOVA_VARIANCE_THRESHOLD = unat Q48_SCALE" \<comment> \<open>1.0 in Q48.16 — matches C default\<close>
definition anova_early_exit :: "inference_outputs_state \<Rightarrow> bool" where
"anova_early_exit io \<longleftrightarrow>