Skip to content

Commit

Permalink
Restore normative status of inferred rule
Browse files Browse the repository at this point in the history
As long as the relation between the rules is explained in the non-normative text, it doesn't seem that important whether the rule is stated inside or outside the non-normative delimiters.
  • Loading branch information
henrikt-ma committed Mar 31, 2021
1 parent e81918c commit 35de98c
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions chapters/operatorsandexpressions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1469,16 +1469,16 @@ \subsection{Discrete-Time Expressions}\label{discrete-time-expressions}
functions do not become active between events.
\end{nonnormative}

\begin{nonnormative}
For a scalar equation \lstinline!expr1 = expr2! where neither expression is of base type \lstinline!Real!, both expressions must be discrete-time expressions.

\begin{nonnormative}
The rule follows from the observation that a discrete-valued equation does not provide sufficient information to solve for a continuous-valued variable.
Hence, and according to the perfect matching rule (see \cref{synchronous-data-flow-principle-and-single-assignment-rule}), such an equation must be used to solve for a discrete-valued variable.
By the interpretation of \eqref{eq:dae-discrete-valued} in \cref{modelica-dae-representation}, it follows that one of \lstinline!expr1! and \lstinline!expr2! must be the variable, and the other expression its solution.
Since a discrete-valued variable is a discrete-time variable, it follows that its solution on the other side of the equation must have at most discrete-time variability.
That is, both sides of the equation are discrete-time expressions.

The rule is equally applicable to the scalar components of a non-scalar equation.
The reasoning is equally applicable to the scalar elements of a non-scalar equation.

For example, this rule shows that (outside of a \lstinline!when!-clause) \lstinline!noEvent! cannot be applied to either side of a \lstinline!Boolean!, \lstinline!Integer!, \lstinline!String!, or \lstinline!enumeration! equation, as this would result in a non-discrete-time expression.
\end{nonnormative}
Expand Down

0 comments on commit 35de98c

Please sign in to comment.