Function specifications
VeriFast accepts the following specification clauses between a function's header and its body:
Syntax
SpecificationClause :
/*@reqAssertion;@*/
|/*@ensAssertion;@*/
|/*@on_unwind_ensAssertion;@*/
|/*@assume_correct@*/
Note that VeriFast also support single-line annotations of the form //@ ...annotation.... Such an annotation is entirely equivalent to /*@ ...annotation... @*/.
Notice that the requires clause, the ensures clause, and the unwind ensures clause must be in separate annotations.