A minimalist clock that produces a value periodically without an input.
Input streams: None.
Output stream: The periodic ticker clock.
This example calculates the accumulated energy cost incurred by a monitor, based on a cost model for:
Input streams: A unit value whenever there is an event.
Output stream: The accumulated cost.
This example calculates the stock of a certain product based on two input event streams that represents the sales and arrivals of such product.
Input streams: The sale and arrival streams.
Output stream: The current stock of the product.
This following specification generalizes the previous example for multiple products. It uses the delay operator to set up a timer and raise an alarm in case the stock of any product has been low for too long.
Input streams: The sales and arrivals of the three different products.
Output stream: an alarm that goes off whenever the stock of any product is too low.
This example makes a heavy use of the STL library to implement STL properties for the verification of a powertrain control verification from the paper Powertrain control verification benchmark, where input signals change asynchronously.
As in the cited paper, we use input data computed from a MatLab simulation of the powertrain. This example shows how to import and use the STL operators to describe properties.
We have refrained from using let and where clauses to maintain the syntax of the original properties, which are commented in MatLab above each definition.
Input streams: The events for verification, mode and pedal
Output streams: The eight different properties to check.
This example illustrates a simple STL specification: if the input speed becomes toofast, then speed will decelerate continuously until reaching an admissible speed speedok within 0.5 time units (represented by the stream slow_down).
This example shows a straightforward use of the STL library to define temporal properties as streams.
Input stream: The speed of the vehicle.
Output stream: An indicator that the property is preserved.
The following monitor calculates how much time residents spend watching TV per day, assessing that every day the people living the house should not watch more than three hours of TV exceeded3hPerDay.
More interesting is exceededAvgPlus30m, which states that residents should not watch thirty minutes more than the total average of TV watched historically.
This threshold is dynamic, and requires declaring intermediate quantitative streams that compute the average and current day TV time.
Input streams: TV status of the living room and the office
Output streams: exceeded3hPerDay and exceededAvgPlus30m