Abstract

The purpose of this note is to clarify and relate various aspects of nondeterminacy in programming. We concentrate on the relationship between relational semantics and predicate transformer semantics. Up till recently, these two approaches were carefully kept consistent, in the sense that the predicate transformers can be defined in terms of the relations, and vice versa. In recent proposals, cf. [2,11] and [14], however, predicate transformer semantics has been allowed to deviate from the narrow path of relational semantics. The new semantics can be seen operationally as a game between an angel that strives to establish the postcondition and an opposing demon. We formalise this point of view by proving that every monotone predicate transformer can be written as a composition of a “demonic” predicate transformer and an “angelic” one, and also as a composition of an “angelic” predicate transformer and a “demonic” one. The relevant definitions will be given below.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call