speckl/compiler
Scott Scoble 3ca5a8d21a fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator
Z3 expression translator fixes:
- implies(x, y) now preserves both arguments (was dropping both → (=> true true))
- Multi-level field access m.price.amount → m_price_amount (was m_price.(>= amount 0))
- len() now handled same as length() (was left as bare len())
- nil/null translated to speckl_nil sentinel constant
- != now properly converts to (distinct X Y) via convertToPrefix (was bare 'distinct')
- Added 'distinct' as binary operator in convertToPrefix
- speckl_nil declared as Int constant in output

All 8 product spec constraints now produce valid SMT-LIB2.
57/57 tests pass.
2026-06-29 17:31:31 -07:00
..
__tests__ test(speckl): lock in List<T> in interface record fields (cycle 73) 2026-06-29 12:15:47 -07:00
dist fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
node_modules fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
out/speckl-compile feat(compiler): self-hosting spec + generator multi-enum support 2026-05-03 14:42:03 -07:00
specs feat(compiler): self-hosting spec + generator multi-enum support 2026-05-03 14:42:03 -07:00
src fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
test-output fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
test-output-rust/TigerBeetleLedger feat(rust): Rust codegen backend (speckl#24) 2026-05-09 23:24:40 -07:00
.gitignore Add .gitignore for compiler dependencies and build artifacts 2026-04-29 15:12:37 -07:00
.last-build fix: add dist-check guard + List<T> type parsing + state machine examples 2026-05-05 03:11:53 -07:00
check-dist.sh fix: add dist-check guard + List<T> type parsing + state machine examples 2026-05-05 03:11:53 -07:00
package-lock.json WASM E2E test: Speckl specs compile to runnable WebAssembly 2026-05-03 13:13:55 -07:00
package.json WASM E2E test: Speckl specs compile to runnable WebAssembly 2026-05-03 13:13:55 -07:00
test-ast.mjs fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
test-parser.mjs fix(z3): preserve implies args, multi-level field access, len(), nil, distinct operator 2026-06-29 17:31:31 -07:00
tsconfig.json Add SpeckDL compiler scaffold 2026-04-29 15:12:08 -07:00