tlaplus-model-reduction

Reduces TLA+ model state space for TLC model checker execution.

1|2|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill tlaplus-model-reduction-santosomar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tlaplus-model-reduction
Source: https://github.com/santosomar/general-secure-coding-agent-skills/tree/main/skills/verification/tlaplus-model-reduction
Command: npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill tlaplus-model-reduction-santosomar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you make large TLA+ models manageable for the TLC model checker, enabling you to verify complex systems that would otherwise be too computationally expensive.

Core Features & Use Cases

  • Model Shrinking: Applies techniques like constant reduction, state constraints, symmetry, and data abstraction to reduce the state space explored by TLC.
  • Diagnosis: Helps identify the source of state space blow-up (e.g., unbounded variables, large constant domains, symmetry issues).
  • Use Case: You have a TLA+ specification for a distributed consensus protocol that TLC cannot check due to excessive memory usage. Use this Skill to apply reduction techniques and successfully complete the model check.

Quick Start

Apply model reduction techniques to the TLA+ model located in the current directory to make it checkable by TLC.

Frequently Asked Questions about tlaplus-model-reduction

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

FAQPage Schema
Why does TLA+ model checking run out of memory and how do I reduce the state space?

TLA+ model checking runs out of memory when the state space explodes from unbounded variables or large constant domains. You can reduce the state space by shrinking constants, adding state constraints, abstracting data, and leveraging symmetry to make verification computationally tractable.

How do I shrink a TLA+ model for faster TLC verification?

To shrink a TLA+ model for faster TLC verification, apply techniques like constant reduction, adding state constraints, data abstraction, and leveraging symmetry. These methods reduce the state space explored by the model checker, preventing excessive memory consumption and long checking times.

What are the best techniques for TLA+ state space reduction during formal verification?

The best techniques for TLA+ state space reduction include shrinking constant domains, applying state constraints to limit explored behaviors, abstracting complex data structures, and leveraging symmetry sets. These approaches directly address state space blow-up and facilitate the verification of complex systems.

Can I use state constraints and symmetry to make a large TLA+ specification checkable by TLC?

Yes, you can use state constraints to restrict the behaviors TLC explores and leverage symmetry to collapse equivalent states. These model reduction techniques prevent state space blow-up, enabling successful execution of large TLA+ specifications by the TLC model checker without excessive memory usage.

When should I apply data abstraction to a TLA+ specification to prevent state space blow-up?

You should apply data abstraction to a TLA+ specification when large or unbounded data structures cause state space blow-up during model checking. Abstracting data reduces the domain TLC must explore, preventing excessive memory consumption and making complex distributed systems computationally tractable.