The assert statement specifies a content condition to be met by Cyclone.
assert expression [in (state1,state2...staten)];
The expression here must be a boolean expression. An assert statement may explicitly specify a set of nodes (states), each nodei must be a defined node (with normal modifier).
The assert statement must be used in the goal section. A goal section can contain zero or more assert statements.
The assert statement asserts a boolean expression that describes a content condition. This content condition is joined with path conditions (specified in condition statement) to describe a path to be discovered. There are four ways of using an assert statement:
goal {
assert (x>=5 && x<=10);
check for 6 condition ( !(S1->S1) ) reach (S0)
}
The above goal section asks Cyclone to discover a path:
Hence, if a discovered path is: S0->S1->S2->S3->S4->S5->S0, then the boolean expression x>=5 && x<=10 only needs to be satisfied in the node (S0).
Note the difference (bold font) between the following example and the one above.
goal {
assert (x>=5 && x<=10) in (S0,S4,S5);
check for 6 condition ( !(S1->S1) ) reach (S0)
}
The above goal section asks Cyclone to discover a path:
Thus, if a discovered path (containing multiple S0) is: S0->S1->S6->S0->S2->S3->S0, then the boolean expression x>=5 && x<=10 must hold in every S0 in this path.
@2020-2022 Hao Wu. All rights reserved. Last update: January 29, 2022