For Statements with Restricted Enumerations

We describe a notation for specifying for-loops which enumerate the elements of a set according to a partial ordering. This serves to separate implementation and efficiency issues from correctness issues. In order to demonstrate its usefulness we apply our notation to three completely different problems and give correctness proofs. Also, we show that our for-loops nicely combine with a formalism for specifying concurrency.