generate a sanity LTL spec

This commit is contained in:
Sam Caldwell 2020-06-12 15:39:02 -04:00
parent a5dd55b907
commit d30007b798
1 changed files with 14 additions and 1 deletions

View File

@ -381,7 +381,8 @@
(newline)
(for ([p procs])
(gen-spin p)
(newline))]
(newline))
(gen-sanity-ltl assignment)]
[(sproc name state-names init asserts states)
(indent) (declare-mtype state-names)
;; TODO - need to make sure name is a spin id
@ -493,6 +494,18 @@
[(Message nm)
(raise-argument-error 'predicate-for "message sending not supported yet" event)]))
;; Assignment -> Void
(define (gen-sanity-ltl assignment)
(indent) (displayln "ltl sanity {")
(with-indent
(indent) (displayln "[](")
(with-indent
(for ([assertion-var (in-hash-keys assignment)])
(indent) (printf "~a >= 0 &&\n" (svar-name assertion-var)))
(indent) (displayln "true"))
(indent) (displayln ")"))
(indent) (displayln "}"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Misc Utils