networks: Implement dds-step-one-annotated.
This commit is contained in:
parent
afb97eae7c
commit
e7eb1fb09e
2 changed files with 10 additions and 1 deletions
|
@ -114,6 +114,9 @@
|
|||
[s (st '((a . #t) (b . #f)))])
|
||||
(check-equal? (dds-step-one asyn s) (set (st '((a . #f) (b . #f)))
|
||||
(st '((a . #t) (b . #f)))))
|
||||
(check-equal? (dds-step-one-annotated asyn s)
|
||||
(set (cons (set 'b) '#hash((a . #t) (b . #f)))
|
||||
(cons (set 'a) '#hash((a . #f) (b . #f)))))
|
||||
(check-equal? (dds-step-one syn s) (set (st '((a . #f) (b . #f)))))
|
||||
(check-equal? (dds-step asyn (set (st '((a . #t) (b . #t)))
|
||||
(st '((a . #f) (b . #t)))))
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
[make-asyn-dynamics (-> network? dynamics?)]
|
||||
[make-syn-dynamics (-> network? dynamics?)]
|
||||
[dds-step-one (-> dynamics? state? (set/c state?))]
|
||||
[dds-step-one-annotated (-> dynamics? state? (set/c (cons/c modality? state?)))]
|
||||
[dds-step (-> dynamics? (set/c state? #:kind 'dont-care) (set/c state?))])
|
||||
;; Predicates
|
||||
(contract-out [variable? (-> any/c boolean?)]
|
||||
|
@ -268,7 +269,12 @@
|
|||
#:methods gen:dds
|
||||
[(define/match (dds-step-one dyn s)
|
||||
[((dynamics network mode) s)
|
||||
(for/set ([m mode]) (update network s m))])])
|
||||
(for/set ([m mode]) (update network s m))])
|
||||
|
||||
;; Annotates each result state with the modality which lead to it.
|
||||
(define/match (dds-step-one-annotated dyn s)
|
||||
[((dynamics network mode) s)
|
||||
(for/set ([m mode]) (cons m (update network s m)))])])
|
||||
|
||||
;;; Given a list of variables, builds the asynchronous mode (a set of
|
||||
;;; singletons).
|
||||
|
|
Loading…
Reference in a new issue