Angelic non-determinism

From HandWiki

In computer science, angelic non-determinism is the execution of a nondeterministic algorithm where particular choices are declared to always favor a desired result, if that result is possible.

For example, in halting analysis of a Nondeterministic Turing machine, the choices would always favor termination of the program.

The "angelic" terminology comes from the Christian religious conventions of angels being benevolent and acting on behalf of an omniscient God.

References

Wirsing, M.; Broy, M. (5 March 1981). "On the algebraic specification of nondeterministic programming languages" (in en). Caap '81. Lecture Notes in Computer Science (Springer, Berlin, Heidelberg) 112: 162–179. doi:10.1007/3-540-10828-9_61. ISBN 978-3-540-10828-3. 

Bodik, Rastislav; Chandra, Satish; Galenson, Joel; Kimelman, Doug; Tung, Nicholas; Barman, Shaon; Rodarmor, Casey (2010). "Programming with Angelic Nondeterminism". SIGPLAN Notices 45 (1): 339–352. doi:10.1145/1707801.1706339. ISSN 0362-1340.