feat(z3): zero-error SMT-LIB2 output + BMC verify blocks for KRaft
Some checks failed
Deploy Landing Page to Storj / deploy (push) Failing after 3s

- Declare speckl_len_Int helper for list/sequence lengths
- Fix infix = inside => bodies (final pass regex)
- Handle prime notation: currentTerm' → currentTerm_post
- Handle length() calls: length(log) → (speckl_len_Int log)
- Handle min(): (ite (<= a b) a b) instead of unsupported 'min'
- Handle subtraction: i-1 → (- i 1)
- Declare _post state vars when invariants compare pre/post
- Added 3 BMC verify blocks to KRaft spec (TermMonotonicity, CommitSafety, LeaderCompleteness)
- Z3 returns clean sat with zero errors for all specs
- All 37 tests pass
This commit is contained in:
cos Agent 2026-05-09 23:07:56 -07:00 • committed by Scott Scoble
parent 7e5a8fe2cb
commit 40eef36a10
7 changed files with 75 additions and 16 deletions

View file

@ -145,4 +145,18 @@ speck KafkaKRaft {
| BecomeLeader
| AppendEntries
| HandleAppendEntriesRequest
// --- Bounded Model Checking ---
verify Always(TermMonotonicity) {
depth 10
}
verify Always(CommitSafety) {
depth 10
}
verify Always(LeaderCompleteness) {
depth 10
}
}