I'm trying to get myself more familiar with Timed Automata theory. At some point I came across the expression "side-effect free" like in the following:
A guard is a side-effect free expression that evaluates to a boolean.
But except for the following definition¹ I couldn't find any good source that explains what it actually means or gives examples with respect to Timed Automata:
We call an expression side effect free if ([![e]!]) is the identity function.
babou pointed me to the global meaning of side-effect which is:
Wikipedia on Side effect (computer science)
In computer science, a function or expression is said to have a side effect if, in addition to returning a value, it also modifies some state or has an observable interaction with calling functions or the outside world.
However, the trouble I've still got is how to interpret has no effect on states for side-effect free guards. After a guard has been evaluated it will have an effect on states if a transition is taken. In other words, the result of the guard does matter in respect to changing the state or not. But as it seems, the guard itself is called by a higher (side-effect having) instance which makes the state transition (or not).
¹ i.e. searching for the terms side-effect free Timed Automata