Invia SMS: Verifying Sequential Consistency on Shared-Memory Multiprocessors by Model Checking