fix(z3): clean SMT-LIB2 output — Z3 returns sat with model (zero sort errors)

- Sanitize sort names: Option(NodeId) → Option_NodeId
- Emit action transition predicates only for verify/BMC mode
- Handle -> implication operator in translateExpr
- Fleshed out KRaft invariant bodies (4/6 now have real expressions)
- ToggleSwitch: clean sat with model
- TigerBeetleLedger: sat with model
- KafkaKRaft: sat with model
- All 37 tests pass
This commit is contained in:
cos Agent 2026-05-09 22:38:47 -07:00 • committed by Scott Scoble
parent c5ca757e80
commit 25fbdfc7a9
9 changed files with 551 additions and 720 deletions

View file

@ -38,7 +38,7 @@
"name": "Scott Scoble",
"email": "scott@scoble.me"
},
"timestamp": "2026-05-10T05:28:00.667Z"
"timestamp": "2026-05-10T05:38:34.907Z"
},
{
"subject": "speck:RetryHandler",
@ -53,7 +53,7 @@
"name": "Speckl Compiler",
"email": "compiler@speckl.scoble.me"
},
"timestamp": "2026-05-10T05:28:00.667Z"
"timestamp": "2026-05-10T05:38:34.907Z"
},
{
"subject": "speck:RetryHandler",
@ -68,7 +68,7 @@
"name": "Speckl Compiler",
"email": "compiler@speckl.scoble.me"
},
"timestamp": "2026-05-10T05:28:00.667Z"
"timestamp": "2026-05-10T05:38:34.907Z"
}
]
}