Commit Graph
1 Commits
Author SHA1 Message Date
Robert Allan James 9b4bbc9de6 proof/: add StarForth_Double_Words.thy (2DROP/2DUP/2SWAP/2OVER/2ROT)
Covers the pure double-cell data-stack shuffle words from
src/word_source/double_words.c. Deliberately scoped to exclude:

- 2>R/2R>/2R@: branch on vm->ecw_nesting, a field vm_state doesn't track
  at all -- needs a model extension first, not attempted here.
- S>D/D+/D-/DNEGATE/DABS/DMAX/DMIN/D</D=/D0=/D0</D2*/D2/: depend on
  cell_t being a fixed-width (64-bit) wrapping integer (explicit
  unsigned-long carry/borrow arithmetic, bitwise complement with
  wraparound). StarForth_Base.thy's "cell = int" is unbounded, not
  fixed-width, so this isn't expressible as currently modeled. Fixing it
  means deciding whether cell becomes a 64-bit word type everywhere
  (ripples into all 23 already-verified theories) -- a foundational
  decision, flagged for later, not made as a side effect of this file.

24 theory files now verify with zero errors.
2026-08-13 12:49:02 -04:00