proof/: add StarForth_StarForth_Words.thy (starforth_words.c coverage)

5 of 12 words fully modelled: ENTROPY@/ENTROPY! (XT-pop gap sidestepped
same as ACL words, but note this file's is_valid_dict_entry is a real
membership-check safety improvement over acl_words.c's null-only check),
RESET-ENTROPY (dictionary-wide bulk reset, same technique as
ACL-INIT-PRIMITIVES), ZUSE-AUTHENTICATE (single-field set), VERSION
(identity, no stack effect at all). TOP-WORDS/SEED/RANDOM/WAIT get
guard/shape only -- SEED and RANDOM both depend on g_prng_state, a
file-scope C static shared across the whole Tripod fleet (yet another
instance of the recurring file-scope-static-instead-of-per-VM pattern,
here meaning every VM draws from the same RNG stream). WORD-ENTROPY/(-/
INIT not modelled (pure printf / TIB dependency / real filesystem I/O
plus a custom text parser).

Finding: register_starforth_words registers its 10 words, bootstraps
the STARFORTH vocabulary, then re-registers 12 words (same 10 plus
ENTROPY@/ENTROPY!) into that vocabulary context -- noted as the second
file where registration order matters for which body actually runs,
judgment on intentionality deferred to the largely-unmodelled vocabulary
chain mechanics.

Suite now 44 theories, green.
This commit is contained in:
Robert Allan James
2026-08-14 15:48:21 -04:00
parent 81b1083100
commit e23900d115
2 changed files with 299 additions and 0 deletions
+1
View File
@@ -28,6 +28,7 @@ session "StarForth" = "HOL-Library" +
StarForth_Physics_Diagnostic_Words
StarForth_Physics_Benchmark_Words
StarForth_Physics_Pipelining_Diagnostic_Words
StarForth_StarForth_Words
StarForth_Loop1_Heat
StarForth_Loop2_Window
StarForth_Loop3_Decay