Linear temporal logic as an executable semantics