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
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:
parent
7e5a8fe2cb
commit
40eef36a10
7 changed files with 75 additions and 16 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue