Guarded progress measures are used to remove states from the passed set which is known never to be used again. The syntax is defined by the grammar for ProgressDecl:
ProgressDecl ::= 'progress' '{' (Expression ':' Expression ';')* '}'
The non-terminal Expression can be found in the section on expressions
A stable predicate is a predicate that if it is satisfied in a state, s, it is satisfied in all states reachable from a.
A guarded progress measure is a 2-tuple (g, p) where g is a stable predicate and p is an expression that grows monotonically when g is satisfied.