tlaplus-split-action

Split TLA+ actions into two sequential actions with a new intermediate pc state.

36|1|Updated Jan 29, 2026
One-click install
npx skills add https://github.com/tlaplus/AgentSkills --skill tlaplus-split-action
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tlaplus-split-action
Source: https://github.com/tlaplus/AgentSkills/tree/main/skills/tlaplus-split-action
Command: npx skills add https://github.com/tlaplus/AgentSkills --skill tlaplus-split-action

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Split an existing TLA+ action into two sequential actions by introducing a new intermediate pc state.

Core Features & Use Cases

  • Adds a new intermediate PC state (e.g., PC_ActionX_2) between an existing action and its successor.
  • Updates the original action to transition to the new intermediate state while preserving or adjusting variable updates and UNCHANGED semantics.
  • Creates a new second action guarded on the intermediate PC state, which then transitions to the original destination.
  • Renumbers subsequent actions if the project uses numbered PC states, and updates TypeOk and Next predicates as needed.

Quick Start

Split an existing TLA+ action into two actions by inserting a new intermediate pc state and renumbering subsequent actions.

Frequently Asked Questions about tlaplus-split-action

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

FAQPage Schema
How do I split a TLA+ action into two sequential steps?

To split a TLA+ action, you introduce a new intermediate pc state between the existing action and its successor, updating the original action to transition to this state and creating a new second action guarded on it.

What does introducing an intermediate pc state do in TLA+ formal specification?

Introducing an intermediate pc state in TLA+ breaks a single action into two sequential transitions, allowing finer-grained control over variable updates and UNCHANGED semantics during model checking.

How to renumber subsequent TLA+ actions when splitting an action?

When splitting a TLA+ action with numbered suffixes, the skill automatically renumbers subsequent actions and updates TypeOk, PCStates, and Next predicates to maintain specification consistency.

How are UNCHANGED variables handled when splitting TLA+ actions?

When splitting TLA+ actions, the skill preserves or adjusts UNCHANGED semantics by updating the original action to transition to the new intermediate state while maintaining variable consistency across both sequential steps.

Can I use action splitting for TLA+ model checking with numbered PC states?

Yes, action splitting works with TLA+ specifications using numbered PC states, automatically handling numbered suffixes, renumbering subsequent actions, and providing a ready-to-use ActionX_2 template for the new intermediate action.

What is the best way to update TypeOk and Next predicates after splitting a TLA+ action?

The best way to update TypeOk and Next predicates after splitting a TLA+ action is to use automated action splitting, which handles predicate updates alongside pc state insertion and subsequent action renumbering.