TLA^{+} in Practice and Theory
This 4part series and a 40minute video of a summary talk covers in detail the mathematical theory and design principles used in TLA^{+}.

Part 1: The Principles of TLA^{+}
TLA^{+} is a formal specification and verification language intended to help engineers specify, design and reason about complex, reallife algorithms and software or hardware systems. We explore its motivation, application and principles of design.

Part 2: The + in TLA^{+}
We explore the data logic of TLA^{+}, the means by which TLA^{+} specifications describe a state of computation: its data structures. To do that, we first cover the basics of mathematical logic.

Part 3: The (Temporal) Logic of Actions
TLA, the Temporal Logic of Actions is the core of TLA^{+}. It is a temporal logic that minimizes the use of temporal reasoning in favor of more ordinary mathematics. It is a general mathematical framework for describing and reasoning about algorithms and systems.

Part 4: Order in TLA^{+}
We learn how to encapsulate and compose TLA^{+} specifications, of the precise mathematical definition of abstraction, and compare TLA^{+}'s notion of abstraction with those of other formalisms. Plus some various cool stuff.

Curry On Talk: The Practice and Theory of TLA^{+}
My Curry On talk about TLA^{+}