proof/: add StarForth_Vocabulary_Words.thy (vocabulary_words.c coverage)

1 of 7 registered words modeled, partially: (FIND)'s two concretely-
decidable failure branches (invalid address; invalid length-derived
range). Its "found" branch, and VOCABULARY/DEFINITIONS/CONTEXT/CURRENT/
FORTH/ORDER entirely, are deferred.

Genuine finding: this is the 7th and by far most severe occurrence of
the file-scope-static-instead-of-per-VM-field bug pattern in this sweep.
The ENTIRE vocabulary subsystem (forth_vocab/context_vocab/current_vocab,
context_var_addr/current_var_addr, the first-character search index) is
file-scope C statics, not struct VM fields. In the Tripod multi-VM
fleet, one VM's VOCABULARY/DEFINITIONS/FORTH silently changes where
every other VM looks up and defines words -- a correctness hazard in
ordinary word resolution for the whole fleet, not just a diagnostic-flag
leak like the smaller prior instances. init_vocabulary_system's `static
int initialized` guard compounds this: only the first VM to touch any
vocabulary word seeds the vocabulary roots, from its own dictionary.
This commit is contained in:
Robert Allan James
2026-08-14 14:12:30 -04:00
parent 283c4780e4
commit a34fba5c1c
2 changed files with 109 additions and 0 deletions
+1
View File
@@ -19,6 +19,7 @@ session "StarForth" = "HOL-Library" +
StarForth_Editor_Words
StarForth_Format_Words
StarForth_System_Words
StarForth_Vocabulary_Words
StarForth_Mutex
StarForth_Transition
StarForth_Loop1_Heat