proof/: add StarForth_Dictionary_Manipulation_Words.thy ([/]/STATE/SMUDGE/HIDDEN/INTERPRET)
Covers the mode/flag half of dictionary_manipulation_words.c that's provable against the existing vm_mode/dictionary/latest_id model. The raw-pointer DictEntry navigation half (>BODY/>NAME/NAME>/>LINK/LINK>/CFA/LFA/NFA/PFA/ TRAVERSE/FIND/') is left unmodelled -- same class of gap as control_words.c's deferred vm_ip/return-stack-as-raw-pointers issue, since the abstract dict_entry record is word_id-indexed, not addressed, and has no counterpart for struct-relative pointer arithmetic (name_len, link, body offset). Genuine findings recorded in comments, not fixed: - [, ], STATE, and INTERPRET all read/write a file-scope `static cell_t state_variable` -- NOT vm->state_var, the real per-VM STATE field used everywhere else in the interpreter. In the Tripod multi-VM fleet this static is shared across every VM instance, not per-VM. - dictionary_m_word_hidden's dead #else branch (unreachable since WORD_HIDDEN is always defined) calls a function that doesn't exist (dictionary_word_smudge vs. the real static dictionary_m_word_smudge). 27 theory files verify with zero errors. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
92474c5219
commit
77d8f0606a
@@ -11,6 +11,7 @@ session "StarForth" = "HOL-Library" +
|
||||
StarForth_Return_Stack_Words
|
||||
StarForth_Memory_Words
|
||||
StarForth_Dictionary_Words
|
||||
StarForth_Dictionary_Manipulation_Words
|
||||
StarForth_Mutex
|
||||
StarForth_Transition
|
||||
StarForth_Loop1_Heat
|
||||
|
||||
Reference in New Issue
Block a user