Game semantics is a trace-like denotational semantics for programming
languages where the notion of legal observable behaviour of a term is defined
combinatorially, by means of rules of a game between the term (the "Proponent")
and its context (the "Opponent"). In general, the richer the computational
features a language has, the less constrained the rules of the semantic game.
In this paper we consider the consequences of taking this relaxation of rules
to the limit, by granting the Opponent omnipotence, that is, permission to play
any move without combinatorial restrictions.
Game semantics has been used with considerable success in formulating fully
abstract semantics for languages with higher-order procedures and a wide range
of computational effects. Recently, nominal games have been proposed for
modelling functional languages with names. These are ordinary, stateful games
cast in the theory of nominal sets developed by Pitts and Gabbay. Here we take
nominal games one step further, by developing a fully abstract semantics for a
language with nominal general references.