tlaplus

Write TLA+ and PlusCal specifications with invariants and temporal properties.

15|2|Updated Mar 3, 2026
One-click install
npx skills add https://github.com/adzerk/spec-driven-workshop --skill tlaplus-adzerk
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tlaplus
Source: https://github.com/adzerk/spec-driven-workshop/tree/main/skills/tlaplus
Command: npx skills add https://github.com/adzerk/spec-driven-workshop --skill tlaplus-adzerk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Allows engineers to formally specify designs and verify their correctness using TLA+ and PlusCal, reducing ambiguity before implementation.

Core Features & Use Cases

  • Write TLA+ and PlusCal specifications for systems, algorithms, and protocols, including invariants and temporal properties.
  • Model concurrency, nondeterminism, race conditions, and deadlocks, and configure TLC for model checking.
  • Interpret TLC output and report findings with explicit assumptions and fairness considerations.

Quick Start

Describe the system you want modeled and run a TLC check to begin validating properties.

Frequently Asked Questions about tlaplus

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I formally specify and verify distributed systems for race conditions and deadlocks?

Formally specify and verify distributed systems by defining state variables, invariants, and temporal properties in TLA+ and PlusCal, then configure TLC model checking to detect race conditions and deadlocks.

What is the best way to model concurrency and nondeterminism in algorithms before implementation?

Model concurrency and nondeterminism in algorithms by writing PlusCal specifications that define state transitions and fairness constraints, allowing you to validate design correctness before implementation.

How do I configure TLC to check temporal properties and invariants for a protocol?

Configure TLC to check temporal properties and invariants by defining constants, state variables, and fairness assumptions in your TLA+ specification, then running the TLC model checker to validate protocol correctness.

Can I use PlusCal to specify algorithms when I need formal verification of design validation?

Yes, you can use PlusCal to specify algorithms for formal verification of design validation by translating PlusCal to TLA+ specifications, defining invariants, and running TLC checks to verify system properties.

How do I interpret TLC output when model checking finds invariant violations?

Interpret TLC output when model checking finds invariant violations by analyzing the error trace to identify the exact state transition, then reporting findings with explicit assumptions and fairness considerations.

When do I need formal methods and TLA+ specification instead of regular testing for system verification?

You need formal methods and TLA+ specification when complex system verification requires proving temporal properties and invariants across all possible states, which regular testing cannot adequately cover for concurrency and distributed protocols.