#12: All 5 untranslated SpeckDL patterns now emit valid JS: - notIn → !.has(), old() → drop, union → Set spread, set diff → filter, append() → [...X, Y], length() → .length - ==/!= operator replacement fixed (word-boundary regression) - Postcondition object comparisons get @ts-expect-error TS2839 #11: Generator auto-detects opaque identifier types used in state variables and action params, emits 'type X = any' before class. - State properties use ! (non-null assertion) for strict mode TigerBeetleLedger → tsc --noEmit = 0 errors. 37/37 tests pass.
23 lines
472 B
Text
23 lines
472 B
Text
; SpeckDL: ToggleSwitch — Z3 Verification
|
|
; Generated by speckl-compile Z3 backend
|
|
; Bounded model checking depth: 10
|
|
|
|
(set-logic ALL)
|
|
(set-option :produce-models true)
|
|
(declare-fun speckl_len_Int ( (Array Int Int) ) Int)
|
|
|
|
; --- State Variables ---
|
|
(declare-const isOn Bool)
|
|
|
|
; --- Invariants ---
|
|
(define-fun SwitchConsistent () Bool
|
|
(and
|
|
(or (= isOn true) (= isOn false))
|
|
)
|
|
)
|
|
|
|
; --- Invariant Assertions ---
|
|
(assert (SwitchConsistent))
|
|
|
|
(check-sat)
|
|
(get-model)
|