proof/: add StarForth_Inference_Words.thy (inference_words.c coverage)
Completes the src/word_source/*.c sweep -- last of the 5 kernel-only files. Five INFER-*@ output accessors fully modelled: they read straight from vm->last_inference_outputs, which is exactly the already-modelled `last_inference :: inference_outputs_state option` field with matching per-field names. Q.VARIANCE/INFER-DECAY-SLOPE/INFER-WINDOW-WIDTH get guard/shape only, capturing a genuine finding: array_ptr sets vm->error AND the caller still pushes a 0 placeholder regardless, unlike the "error or push, never both" shape most guarded words in this sweep follow. L8-UPDATE/L8-TABLE-FORCE get pop-shape only. Second finding: L8-MODE/L8-UPDATE/L8-APPLY/L8-TABLE-FORCE manipulate vm->ssm_l8_state (a legacy 16-mode struct) and, per L8-TABLE-FORCE's own comment, a separate 128-config adaptive table the heartbeat's bandit actually drives -- NEITHER is the `ssm_l8 :: ssm_l8_state` (4-mode C0..C3) field this proof suite has modelled since early in the sweep. Three L8 representations exist in the real system; none of this file's words touch the one the model tracks. Flagged as an open question, not guessed at. WINDOW-DIVERSITY, INFER-RUN, L8-MODE, L8-APPLY, and the six BAYES-* words deferred (unmodelled subsystems: rolling-window diversity algorithm, the whole inference-engine run, legacy L8 state, hot-words cache Bayesian posteriors). Suite now 53 theories, green.
This commit is contained in:
@@ -37,6 +37,7 @@ session "StarForth" = "HOL-Library" +
|
||||
StarForth_Defer_Words
|
||||
StarForth_Log_Words
|
||||
StarForth_Q48_Words
|
||||
StarForth_Inference_Words
|
||||
StarForth_Loop1_Heat
|
||||
StarForth_Loop2_Window
|
||||
StarForth_Loop3_Decay
|
||||
|
||||
Reference in New Issue
Block a user