The author dives into the world of formal methods and TLA+ to discuss various types of nondeterminism: True Randomness, Concurrency, User Input, External forces, and Abstraction, all crucial for system modeling. The simplicity of lifting true randomness to deterministic functions, the complexity of concurrency causing global nondeterminism, and the abstraction of deterministic processes into nondeterministic choices demonstrate the power of nondeterminism as a tool for simplifying reasoning in models. The author emphasizes the importance of looking at ideas beyond formal methods to benefit a wider audience and invites feedback on how these concepts may be applicable to readers.
https://buttondown.com/hillelwayne/archive/five-kinds-of-nondeterminism/