Theory State_Networks
theory State_Networks
imports Networks Munta_Base.Normalized_Zone_Semantics_Impl
Munta_Base.More_Methods
begin
unbundle no_library_syntax
section ‹Networks of Timed Automata With Discrete State›
subsection ‹Syntax and Operational Semantics›
text ‹
We extend Networks of Timed Automata with arbitrary shared (global) state.
Syntactically, this extension is very simple.
We can just use the free action label slot to annotate edges with a guard
and an update function on discrete states.
The slightly more clumsy part is adding invariants for discrete states
by directly specifying an invariant annotating function.
›
type_synonym
('a, 'c, 'time, 's, 'st) transition =
"'s * ('st ⇒ ('c, 'time) cconstraint) * 'a * ('st ⇒ 'c list) * 's"
type_synonym
('a, 'c, 'time, 's, 'st) sta = "('a, 'c, 'time, 's, 'st) transition set * ('c, 'time, 's) invassn"
type_synonym
('a, 'c, 't, 's, 'st) snta =
"('a act × ('st ⇒ bool) × ('st ⇒ 'st option), 'c, 't, 's, 'st) sta list × ('s ⇒ 'st ⇒ bool) list"
text ‹
Semantic states now consist of three things:
a list of process locations, the shared state, and a clock valuation.
The semantic extension then is also obvious: we can take the same transitions
as in the network without shared state, however we have to add state updates
and checks for guards on the shared state.
The updates on discrete state for synchronizing transitions are in the same order as in UPPAAL
(output before input).
›