diff --git a/networks.rkt b/networks.rkt index 7548d86..590df13 100644 --- a/networks.rkt +++ b/networks.rkt @@ -13,6 +13,8 @@ (require "utils.rkt" graph) (provide + ;; Structures + (struct-out dynamics) ;; Functions (contract-out [update (-> network? state? (listof variable?) state?)] [make-state (-> (listof (cons/c symbol? any/c)) state?)] @@ -33,7 +35,8 @@ (contract-out [variable? (-> any/c boolean?)] [state? (-> any/c boolean?)] [update-function-form? (-> any/c boolean?)] - [network-form? (-> any/c boolean?)]) + [network-form? (-> any/c boolean?)] + [mode? (-> any/c boolean?)]) ;; Contracts (contract-out [state/c contract?] [network/c contract?] @@ -237,3 +240,17 @@ (define (build-boolean-signed-interaction-graph network-form) (build-signed-interaction-graph network-form (make-boolean-domains (hash-keys network-form)))) + + +;;; ==================== +;;; Dynamics of networks +;;; ==================== + +;;; This section contains definitions for building and analysing the +;;; dynamics of networks. + +;;; A mode is a set of sets of variables. +(define mode? (set/c (set/c variable?))) + +;;; A network dynamics is a network plus a mode. +(struct dynamics (network mode))