Model Checking, Tla Plus, TLC, Java, Concurrency.
uses formal methods). Other formal notations exist, but TLA+ turns out to be one of the most usable, despite a mathematically-heavy syntax that can be intimidating at first. If needed, some math can be avoided by using PlusCal (a tool that generates TLA+ from pseudo-code), or other model checkers