## 2 Related Work
\(outputSignal\) _is a function applying non-autonomous output events to a signal and an upper or lower edge:_ \(outputSignal:OE_{NA}\rightarrow(OS_{B}\cup OS_{R})\times\{upper,lower\}\)_;_
11. \(IS_{B}\cap IS_{R}\cap IE_{NA}\cap IE_{A}\cap OS_{B}\cap OS_{R}\cap OE_{NA} \cap OE_{A}=\emptyset\)_._  
Figure 1: Small IOPT model and non-autonomous annotations. Definition 2 (IOPT net): (_adapted from [3].) Given a model interface \(MI=(IS_{B},IS_{R},IEN_{A},IEN_{A},inputSignal,OS_{B},OS_{R},OEN_{A},OEN_{A},outputSignal)\), an IOPT net is a tuple \(N=(P,T,A,TA,M,weight,weightTest,priority,guard,ie,oe,ta,osc)\) satisfying the following requirements:_  
1. \(P\) _is a finite set of places;_
2. \(T\) _is a finite set of transitions, such that_ \(P\cap C\cap T=\emptyset\)_;_
3. \(A\) _is a set of arcs, such that_ \(A\subseteq((P\times T)\cup(T\times P))\)_;_
4. \(TA\) _is a set of test arcs, such that_ \(TA\subseteq(P\times T)\)_;_
5. \(M\) _is the marking function:_ \(M:P\rightarrow\mathbb{N}_{0}\)_;_
6. _weight is the arc weight function:_ \(weight:A\rightarrow\mathbb{N}_{0}\)_;_
7. _weightTest is the test arc weight function:_ \(weightTest:TA\rightarrow\mathbb{N}_{0}\)_;_
8. _priority is a partial function applying transitions to non-negative integers,_ \(priority:T\rightharpoonup\mathbb{N}_{0}\)_, and we write_ \(priority(t)\uparrow\) _when transition_ \(t\) _has no defined priority;_
9. _guard is a_ guard _partial function applying transitions to Boolean expressions, where all the variables are markings or signals:_ \(guard:t\rightharpoonup BE\)_, where_ \(\forall eb\in guard(t)\)_,_ \(Var(eb)\subseteq(M\cup IS_{B}\cup IS_{R})\)_;_
10. _ie is an input event partial function applying transitions to input events:_ \(ie:T\rightharpoonup\mathcal{P}(IE_{NA}\cup IE_{A})\)_;_
11. _oe is an output event function applying transitions to output events:_ \(oe:T\rightarrow\mathcal{P}(OE_{NA}\cup OE_{A})\)_;_
12. _ta is a transition action partial function applying transitions to actions:_ \(ta:T\rightharpoonup(OS_{B}\times BES)\cup(OS_{R}\times IES)\) _and_ \(\forall be\in BES,Var(bae)\subseteq(ML\cup OS_{B}\cup OS_{R})\) _and_ \(\forall aie\in IES,Var(iae)\subseteq(ML\cup OS_{B}\cup OS_{R})\)_._
13. _osc is an output signal condition function from places into sets of rules:_ \(osc:P\rightarrow\mathcal{P}(RULES)\)_, where_ \(RULES\subseteq((OS_{B}\cup OS_{R})\times BES\times\mathbb{N}_{0})\)_, and_ \(\forall e\in BES,Var(e)\subseteq(ML\cup IS_{R}\cup IS_{B}\cup OS_{R}\cup OS_{B})\)_._  
The execution of the IOPT net, modeling a discrete-event controller, adheres to step-based execution semantics. Each step encompasses several stages: (1) reading the input signals; (2) computing the input events based on the current and previously read values from the input signals; (3) considering a maximal step semantics execution firing all the enabled and ready transitions in the net (taking into consideration the existing conflicts); (4) updating the output values; and (5) storing the last input values for the subsequent steps. The concepts of fireable transition, enabled transition, and ready transition were informally introduced in the previous section; ref. [3] is recommended to obtain additional details on the associated formal definitions. In this paper, whenever necessary, the order of a step is explicitly referred to as \"\(n\)\" while \"\(n-1\)\" refers to the preceding execution step, and so forth.