Algebraic Approaches to Nondeterminism: An Overview MICHAÅ WALICKI AND SIGURD MELDAL University of Bergen INTRODUCTION Mathematics never saw much of a reason to deal with something called nondeterminism. It works with values, functions, sets, and relations. In computing science, however, nondeterminism has been an issue from the very beginning, if only in the form of nondeterministic Turing machines or nondeterministic finite state machines. Early references to nondeterminism in computer science go back to the 1960s [Floyd 1967; McCarthy 1963]. A great variety of theories and formalisms dealing with it have been developed during the last two decades. There are the denotational models based on power domains,1 the predicate transformers for the choice construct,2 and modifications of the -calculus [de Liguoro and Piperno 1992; Astesiano and Costa 1979; Hennessy 1980]. Nondeterminism arises in a natural way when discussing concurrency, and models of concurrency typically also model nondeterminism. There are numerous variants of process languages and algebra,3 event structures,4 state transition systems [Manna and Pnueli 1992; Lehmann and Shelah 1983], and Petri nets [Petri 1977; Reisig 1985]. In terms of modeling, nondeterminism may be considered a purely operational notion. However, one of the main reasons for considering nondeterminism in computer
/lp/association-for-computing-machinery/algebraic-approaches-to-nondeterminism-an-overview-cn5ifHpSDd