Model Checking, Tla Plus, TLC, Java, Concurrency.
when notify is called; which thread acquires the lock on the buffer and can attempt a put or get operation; and when the thread is a producer, which piece of data is put into the buffer. Note how all this nondeterminism is introduced using logical disjunction or existential quantifiers (which are