Abstract. The Temporal Rover is a specification based verification tool for applications written in C, C++, Java, Verilog and VHDL. The tool combines formal specification, using Linear-Time Temporal Logic (LTL) and Metric Temporal Logic (MTL), with conventional simulation/execution based testing. The Temporal Rover is tailored for the verification of complex protocols and reactive systems where behavior is time dependent. The Temporal Rover generates executable code from LTL and MTL assertions written as comments in the source code. This executable source code is compiled and linked as part of the application under test. During application execution the generated code validates the executing program against the formal temporal specification requirements. Using MTL, real time and relative time constraints can be validated. A special code generator support s validation of such constraints in the field, on an embedded target. Temporal Logic [5] is a special branch of modal logic that investigates the notion of time and order. In Throughout this article we will refer to TL assertions being LTL assertions with or without MTL extensions. Linear-Time Temporal Logic (LTL) is an extension of propositional logic where, in addition to the propositional logic operators (and (&&), or (||), xor (^), not (!), etc.) there are four future-time operators and four dual past time operators. The following syntax is used by the Temporal Rover for these four operators: • Always in the future, and Always in the past. You can use the English keywords Always and AlwaysInThePast, or a box ([], [-]) to represent the always operators.
Temporal Rover REF is a commercial toolkit supporting the runtime verification of temporal properties over C, C++, VHDL, Verilog, and ADA programs.
The Temporal Rover and the ATG Rover
In SPIN Model Checking and Software Verification, volume 1885 of LNCS
Computer Science