Communicating sequential processes
Optimizing decision trees through heuristically guided search
Synthesizing constraint expressions
Time, clocks, and the ordering of events in a distributed system
A method for obtaining digital signatures and public-key cryptosystems