The Reactis team has been hard at work (mostly from home offices) over
the past months preparing Reactis V2020, now available for download. The
biggest new feature is support for the MATLAB® action language in
Stateflow® charts. V2020 also includes a simple but powerful extension
to expression-based Validator objectives: a *pre* function to access
the value of a variable in the previous simulation step.

Stateflow supports two alternative notations for the labels on transition segments and the definition of actions within states; namely, the original C action language and the more recently introduced MATLAB action language. A chart-level setting toggles between the C and MATLAB action languages. Reactis V2020 supports charts configured to use the MATLAB action language.

Additional newly supported Simulink features include the following:

- MATLAB R2020a.
- State Writer and State Reader blocks.
- Initialize Function and Reset Function blocks.
- Reset event input ports in referenced models.

Reactis Validator lets you check if a model satisfies its requirements. You check requirements by formulating two types of Validator objectives:

*user-defined targets*specify scenarios to execute in order to test requirements, and*assertions*specify the expected model responses necessary to comply with requirements.

Reactis supports two mechanisms for capturing Validator objectives:

*expression-based*objectives that use a c-like notation, and*diagram-based*objectives that use Simulink/Stateflow observer models to capture objectives.

V2020 extends the expression-based notation to include a `pre`

function to query
the value of a variable in the previous simulation step. For example, `pre(x)`

will return
the value of *x* at the end of the previous simulation step. The following assertion checks that
*x* never changes by more than 0.5 in a simulation step:

`if t==0 then 1 else abs(x-pre(x)) <= 0.5 `

Since the property cannot be calculated at simulation time zero, we return true (1) in the then
branch when time (*t*) is zero.

The `pre`

function accepts an optional second argument which is a positive integer indicating
how many simulation steps back you wish to query. For example, `pre(x,2)`

returns the value of
*x* two simulation steps ago.

The first argument to `pre`

need not be a single variable, it can be any expression.
For example, the following checks that the sum of *x* and *y* in the previous
step is less than one:

`pre(x + y) < 1`

The supported subset of Embedded MATLAB has been extended to include:

- For a matrix A, Reactis previously supported the transpose operator A'. V2020 adds support for performing the operation with the transpose function: transpose(A).
- New trigonometric functions: csc, sec, cot.
- For an enumerated type EnumType, support the notation:
- EnumType(EnumVal) which is equivalent to EnumType.EnumVal
- EnumType(n) to denote the element of EnumType with underlying integer value n.

- Support A ^ n where A is a square matrix and n is an integer.
- Other new functions: deg2rad, cond

Support was added for macros which access structure members from within a Stateflow action.

The test suite export dialog now preserves settings from the previous export.

Stay safe!

Reactis is a registered trademark of Reactive
Systems, Inc. Simulink, Stateflow, and MATLAB are registered trademarks of The MathWorks, Inc.

Best Regards,

The Reactis Team