A second, independent engine — a bounded interleaving model checker — exists to demonstrate the result: it lowers each thread to atomic memory operations (with real lock acquire/release) and searches ...