proof/: add StarForth_Editor_Words.thy and StarForth_Format_Words.thy
editor_words.c: zero tractable words (first such file in this sweep) -- every word routes through the same deferred block-window cache as block_words.c, and EDIT is an interactive stdin/stdout REPL loop, not a single-step transition. format_words.c: 17 of 19 registered words modeled (# and #S deferred, multi-precision division out of scope). Two genuine C findings recorded: (1) DECIMAL/HEX/OCTAL write only the FORTH-visible memory cell at base_addr, never the separate vm->base host-mirror field that number OUTPUT words actually read -- proved formally (decimal_does_not_change_vm_base et al.), so HEX/OCTAL/DECIMAL silently never affect printed output, only parsed input. (2) ? and DUMP cast the popped cell directly to a host pointer and dereference it, bypassing vm_addr_ok entirely -- an out-of-VM-bounds read, not modeled since it isn't a vm->memory access at all. Adds base_addr/hold_addr/hold_pos to vm_state (StarForth_Base.thy), matching the scr_addr/here pattern from earlier files.
This commit is contained in:
@@ -16,6 +16,8 @@ session "StarForth" = "HOL-Library" +
|
||||
StarForth_String_Words
|
||||
StarForth_Block_Words
|
||||
StarForth_IO_Words
|
||||
StarForth_Editor_Words
|
||||
StarForth_Format_Words
|
||||
StarForth_Mutex
|
||||
StarForth_Transition
|
||||
StarForth_Loop1_Heat
|
||||
|
||||
Reference in New Issue
Block a user