Files
LithosAnanake/proof
Robert Allan JamesandClaude Sonnet 5 fe3169dac9 proof/: add StarForth_String_Words.thy (BL/COUNT/CMOVE/CMOVE>/BLANK/-TRAILING/SCAN/SKIP/COMPARE)
Covers the 9 self-contained words in string_words.c that operate purely on
data_stack/memory with no dependency outside the existing model. Introduces
vm_addr_ok_m, a literal transcription of the real C vm_addr_ok bounds check
(src/vm.c:815-820) using VM_MEMORY_SIZE -- more precise than the sign-only
check earlier memory words used -- and resolve_span, a shared helper for
the auto-detect-counted-string pattern that recurs across six of this
file's words.

16 words deliberately not modeled, in three groups (full reasoning in the
theory header): (a) WORD/SPAN/TIB/>IN/SOURCE/QUERY/EXPECT depend on the
lazily-allocated TIB input subsystem (vm->tib_buf via vm_input_ensure),
which has no vm_state counterpart; QUERY/EXPECT also call fgets(stdin)
directly, real I/O with no HOL formalization; (b) CONVERT/NUMBER/ENCLOSE
depend on raw C-string scanning (strlen past a single vm_addr_ok-checked
byte -- a genuine unbounded-read hazard, noted not chased) or strtol(); (c)
S"/(s")/LITERAL/[LITERAL]/['] depend on the same compile-time/threaded-code
machinery already out of scope from control_words.c. SEARCH is deferred
despite being self-contained -- its nested substring search needs a bigger
proof-engineering lift than the single-pass helpers used here.

Third occurrence of the file-scope-static-instead-of-per-VM-field bug
pattern noted (WORD's word_scratch_addr), matching control_words.c's
cf_stack and dictionary_manipulation_words.c's state_variable -- not fixed,
flagged for aggregation when raised to Bob.

29 theory files verify with zero errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 22:58:18 -04:00
..

proof/

Isabelle/HOL theory files providing machine-checkable proofs of determinism and correctness for StarForth. 24 theory files covering all 7 feedback loops, core word categories, and the word-level ACL system.

Running proofs

isabelle build -D proof/

Requires an Isabelle installation. See docs/01-getting-started/DEVELOPER.md.

Theory files

Foundations

File Covers
StarForth_Base.thy Base definitions and type system
StarForth_Correctness.thy Overall correctness
StarForth_Transition.thy State transitions
StarForth_Concurrent.thy Concurrency properties
StarForth_Mutex.thy Mutual exclusion

Physics loops (17)

File Loop
StarForth_Loop1_Heat.thy Execution heat tracking
StarForth_Loop2_Window.thy Rolling window of truth
StarForth_Loop3_Decay.thy Linear decay
StarForth_Loop4_Pipeline.thy Word transition prediction
StarForth_Loop5_WinInf.thy Window width inference
StarForth_Loop6_DecayInf.thy Decay slope inference
StarForth_Loop7_Heartrate.thy Adaptive heartrate

Word categories

StarForth_Arithmetic_Words.thy, StarForth_Stack_Words.thy, StarForth_Logical_Words.thy, StarForth_Memory_Words.thy, StarForth_Return_Stack_Words.thy, StarForth_Q48_16.thy

ACL system (Phase 6)

File Property
ACL_Pin_Monotone.thy Pin is one-way
ACL_Inherit_Clears_Pin.thy Inheritance clears pin
ACL_TTL_Bounded.thy TTL stays within bounds
ACL_Emergency_Bypass.thy Emergency console bypass
ACL_No_Escalation.thy No privilege escalation

See also