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

@ -13,7 +13,7 @@
"spdxVersion": "3.0.1",
"dataLicense": "CC0-1.0",
"creationInfo": {
"created": "2026-05-10T05:28:00.668Z",
"created": "2026-05-10T05:38:34.908Z",
"createdBy": [
"Organization: Speckl",
"tool: speckl-compile-0.2.0"
@ -27,7 +27,7 @@
"@type": "spdx:Tool",
"name": "speckl-compile"
},
"timestamp": "2026-05-10T05:28:00.669Z",
"timestamp": "2026-05-10T05:38:34.909Z",
"comment": "Review type: manual"
}
]