Model Checking, Tla Plus, TLC, Java, Concurrency.
resulting trace to understand what went wrong. Leaving aside the issue of analyzing the trace — which can be tricky because print statements from different threads tend to be interleaved in confusing ways — and of solving the actual problem after it is understood, the first challenge is to obtain a