Compiler testing via a theory of sound optimisations in the C11/C++11 memory model | Synapse