networks: Start section Dynamics of networks.

This commit is contained in:
Sergiu Ivanov 2020-02-23 11:10:18 +01:00
parent 9f4fae1437
commit 2fa89f05b9

View file

@ -13,6 +13,8 @@
(require "utils.rkt" graph) (require "utils.rkt" graph)
(provide (provide
;; Structures
(struct-out dynamics)
;; Functions ;; Functions
(contract-out [update (-> network? state? (listof variable?) state?)] (contract-out [update (-> network? state? (listof variable?) state?)]
[make-state (-> (listof (cons/c symbol? any/c)) state?)] [make-state (-> (listof (cons/c symbol? any/c)) state?)]
@ -33,7 +35,8 @@
(contract-out [variable? (-> any/c boolean?)] (contract-out [variable? (-> any/c boolean?)]
[state? (-> any/c boolean?)] [state? (-> any/c boolean?)]
[update-function-form? (-> any/c boolean?)] [update-function-form? (-> any/c boolean?)]
[network-form? (-> any/c boolean?)]) [network-form? (-> any/c boolean?)]
[mode? (-> any/c boolean?)])
;; Contracts ;; Contracts
(contract-out [state/c contract?] (contract-out [state/c contract?]
[network/c contract?] [network/c contract?]
@ -237,3 +240,17 @@
(define (build-boolean-signed-interaction-graph network-form) (define (build-boolean-signed-interaction-graph network-form)
(build-signed-interaction-graph network-form (build-signed-interaction-graph network-form
(make-boolean-domains (hash-keys 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))