tlaplus-more

Write and verify TLA+ and PlusCal specifications with TLC model checking.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

TLA+ and PlusCal enable precise modeling of complex systems, helping teams avoid ambiguity and concurrency bugs by providing a formal specification language and model-checking workflow.

Core Features & Use Cases

  • Write and verify state machines, invariants, and temporal properties using PlusCal and pure TLA+.
  • Model concurrency, nondeterminism, and fairness to explore interleavings and edge cases with TLC.
  • Use example-rich guidance to design, validate, and refine specifications for protocols, algorithms, and distributed systems.

Quick Start

Open a new TLAPLUS module, paste your PlusCal or TLA+ specification, and run TLC to model-check invariants and liveness.

Frequently Asked Questions about tlaplus-more

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

FAQPage Schema
How do I write formal TLA+ specifications for concurrent algorithms?

To write formal TLA+ specifications, structure modules with defined Init and Next steps, specify fairness properties, and model concurrent algorithm state machines using PlusCal or pure TLA+ syntax.

What is formal model checking and when do I need it for system design?

Formal model checking is a verification technique using TLC to explore interleavings and edge cases in concurrent systems. You need it to validate invariants and liveness properties, avoiding ambiguity and concurrency bugs in distributed protocols.

How do I verify liveness properties and invariants using TLC model checking?

Verify liveness properties and invariants using TLC model checking by pasting your PlusCal or TLA+ specification into a TLAPLUS module and running TLC to explore nondeterminism, fairness, and temporal edge cases.

Can I use PlusCal to model nondeterminism and fairness in distributed systems?

Yes, you can use PlusCal to model nondeterminism and fairness in distributed systems. PlusCal enables precise modeling of concurrency and interleavings, which TLC then checks against defined liveness properties and invariants.

What is the best way to structure TLA+ modules for model checking?

The best way to structure TLA+ modules for model checking is defining Init and Next state transitions, specifying fairness conditions, and declaring invariants or temporal properties to validate protocol correctness and system design.

Why does my TLC model checker fail to verify concurrent protocol edge cases?

TLC model checking fails to verify concurrent protocol edge cases when specifications lack properly structured Init and Next steps or defined fairness properties, preventing accurate exploration of nondeterminism and interleavings.