alloy

Model and verify formal specifications using the Alloy language.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Alloy provides a formal modeling and verification framework for complex designs, enabling precise reasoning about state, transitions, and properties by treating all relations as fundamental building blocks and using bounded model checking to search for valid instances or counterexamples.

Core Features & Use Cases

  • Formal modeling: define signatures, relations, and temporal behavior to specify systems, protocols, or algorithms.
  • Verification & debugging: check safety and liveness properties, explore design variants, and validate invariants.
  • Use Case: Review or extend an existing .als specification or Alloy code blocks to reason about behavior and correctness.

Quick Start

Define a minimal Alloy model and run a bounded check to observe a concrete instance or counterexample.

Frequently Asked Questions about alloy

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

FAQPage Schema
How do I model and verify formal specifications using bounded model checking?

To model and verify formal specifications, define signatures, relations, and temporal behavior to specify systems or protocols, then run bounded checks to search for valid instances or counterexamples proving safety and liveness properties.

What is the best way to debug safety and liveness properties in state machines?

Debugging safety and liveness properties in state machines requires enforcing explicit frame conditions and stuttering to produce meaningful traces, validating invariants by checking for counterexamples within bounded model checking.

Can I review and extend existing .als specifications or Alloy code blocks?

Yes, you can review and extend existing .als specifications or Alloy code blocks to reason about behavior and correctness, validating design variants by checking invariants against bounded model checking searches.

Why does my temporal logic model produce meaningless traces during verification?

Temporal logic models produce meaningless traces when explicit frame conditions and stuttering are not enforced, so you must add these constraints to ensure bounded checks generate valid instances for verifying system behavior.

Do I need explicit frame conditions to verify protocol models?

Yes, verifying protocol models requires explicit frame conditions and stuttering to constrain transitions properly, ensuring bounded model checking produces meaningful traces that accurately validate safety and liveness properties.