A timer instance is an object, that can be active or inactive. Two occurrences of a timer identifier followed by an expression list refer to the same timer instance only if the operator "=" applied to all corresponding expressions in the lists yields True (i.e. if the two expression lists have the same values).
When an inactive timer is set, a Time value is associated with the timer. Provided there is no reset or other setting of this timer before the system time reaches this Time value, a signal with the same name as the timer is put in the input port of the process. The same action is taken if the timer is set to a Time value less than or equal to now. After consumption of a timer signal the sender; expression yields the same value as the self; expression. If an expression list is given when the timer is set, the values of these expression(s) are contained in the timer signal in the same order. A timer is active from the moment of setting up to the moment of consumption of the timer signal.
If a sort specified in a timer definition is a syntype, then the range check defined in Z.100, §18.104.22.168 applied to the corresponding expression in a set or reset must be True, otherwise the system is in error and the further behaviour of the system is undefined.
A <set statement> with no <Time expression> is derived syntax for a <set statement> where <Time expression> is "now; + <Duration ground expression>", where <Duration ground expression> is derived from the timer definition.
A <reset> or a <set> may contain several <reset statement>s or <set statement>s respectively. This is derived syntax for specifying a sequence of <reset>s or <set>s, one for each <reset statement> or <set statement> such that the original order in which they were specified in <reset> or <set> is retained. This shorthand is expanded before shorthands in the contained expressions are expanded.