* [Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask](http://sigops.org/sosp/sosp13/papers/p33-david.pdf) * [Time, Clocks, and the Ordering of Events in a Distributed System](http://www.stanford.edu/class/cs240/readings/lamport.pdf) * [Heap Architectures For Concurrent Languages Using Message Passing](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.1302&rep=rep1&type=pdf) * [Message Analysis for Concurrent Languages](http://user.it.uu.se/~kostis/Papers/escape.pdf) * [Finding Race Conditions in Erlang with QuickCheck and PULSE](http://publications.lib.chalmers.se/records/fulltext/125252/local_125252.pdf) * [The Semantics of x86-CC Multiprocessor Machine Code](http://www.cl.cam.ac.uk/~pes20/weakmemory/popl09.pdf) *Note: This contribution here is the focus on the rigorous semantics for x86 multiprocessor programs and an axiomatic definition of the memory model. Their definitions and proofs are backed by the [HOL](http://en.wikipedia.org/wiki/HOL_(proof_assistant))(Higher Order Logic) proof assistant.*