Egor Urvanov

TLA+ vs Alloy vs QuintWhich specification language to choose

TLA+ vs Alloy vs Quint: what each language describes, how it is written, what checks it, and who it suits, from event order to data relationships.

created · updated · 6 min · · Specs and context

Choose the language by what breaks in your system: TLA+ and Quint describe behavior step by step, Alloy describes objects and the links between them. Quint reads like ordinary code, TLA+ and Alloy like formulas. Use Quint for product rules over time, TLA+ for strict proofs, Alloy for the structure of data and access rights.

one task: describe the rules and find where they breakTLA+steps in timewritten in formulasAlloyobjects and linkswritten in formulasQuintsteps in timewritten like codeall three output: a found violation of a rule● model, people, systems, data  ● agent and harness  ● risk, stop, boundary

How TLA+, Alloy and Quint differ: one task, three languages

All three languages share one idea: the rules of a system are written apart from the code, and a program itself looks for a violation in them. If there is one, it shows how to reach it. This is model checking, and each language has its own notation and its own checking program. TLA+ was created by Leslie Lamport for describing concurrent and distributed systems. Alloy was created in the Software Design Group at MIT. Quint was designed as a modern alternative to TLA+ for engineers.

Takeaway
In this exampleTLA+, Alloy and Quint solve one task: describe rules and find the chain where they break.
In generalThe differences lie in what exactly is described, how it is written and what checks it.
Next stepWrite down three rules of your product and note what each is about: the order of events or links between objects.

Summary: TLA+, Alloy and Quint side by side

TLA+ / QuintAlloycartpaymentorderbossbossemployeewhat happens one after anotherwho is linked to whoman employee has two bosses● model, people, systems, data  ● agent and harness  ● risk, stop, boundary

The main difference is what exactly they describe. TLA+ and Quint describe the behavior of a system step by step: cart, payment, order, and what can go wrong between steps. This is how race conditions and lost data are found. Alloy describes structures and links: who reports to whom, who has which rights. It looks for a small example where a rule is broken, for instance an employee with two bosses. The other differences follow from this.

TLA+AlloyQuint
What it describesthe behavior of a system step by step, especially concurrent and distributedobjects and the links between them and how they changebehavior step by step, as in TLA+
Notationmathematicalrelational logiclooks like ordinary code
What checks itTLC or Apalachethe Alloy Analyzer, which finds structures for the constraintsTLC or Apalache, with a quick random simulation
What it showsa chain of steps to the violationan example of a structure where the rule is brokena chain of steps to the violation
Maturitysince 1999, more books and examplessince 1997, its own communitysince 2021, younger
Who it suitsthose who need strict guaranteesthose who design data and access rightsproduct teams without a math background

How to read the table row by row. “What it describes” is the most important: the choice depends on it. “Notation” sets the entry step: Quint has the lowest, with TLA+ and Alloy you have to get used to formulas. “What checks it” reminds us that the languages rely on different checking programs: Apalache and TLC both fit TLA+ and Quint, while Alloy has its own analyzer. “What it shows” explains what you get at the output: a chain of steps or an example of a structure. “Maturity” hints where there are more examples and more people to ask.

The border between the languages is not absolute. In version six Alloy added mutable state and temporal logic, that is, it learned to describe steps in time too. And Quint and TLA+ can be used for data structures. So the choice is set by what breaks more often in your system: the order of events or the structure of links.

Takeaway
In this exampleIf the danger is in the order of events, you need TLA+ or Quint, and if it is in the structure of links, you need Alloy.
In generalThe languages do not compete directly: the same system can be described both in time and by structure.
Next stepFor each rule write down what breaks: the order of actions or the links between objects.

How TLA+ differs from Alloy

TLA+Alloycartpaymentorderbossbossemployeea chain of stepsone snapshotwhere the chain failswhere the rule is broken● model, people, systems, data  ● risk, stop, boundary
TLA+Alloy
When to take itthe order of events mattersthe structure of data and rights matters

TLA+ was created by Leslie Lamport, and it rests on the idea that the best way to describe things precisely is simple mathematics. It looks for the chain of steps on which a rule breaks, for example a double payment and two orders. Alloy looks for an example of a structure instead of a chain, and checks properties of a model by building counterexamples. Take TLA+ for the order of events and Alloy for links and access rights.

How TLA+ differs from Quint

TLA+formulasQuintcodecartpaymentorderTLCApalachethe same programs check both● model, people, systems, data  ● agent and harness
TLA+Quint
When to take itstrict mathematics is neededa notation the whole team can read is needed

They describe the same thing, and only the notation differs. Quint is designed as a syntax that suits engineers, and the same programs check both notations. TLC goes through states one by one, while Apalache is symbolic and considers all chains up to a given length.

How Alloy differs from Quint

AlloyQuintbossbossemployeecartpaymentorderone snapshota chain of stepsAlloy AnalyzerTLCApalache● model, people, systems, data  ● agent and harness  ● risk, stop, boundary
AlloyQuint
When to take itdata and rights are designedproduct rules over time are checked

Alloy has its own checking program: the Alloy Analyzer takes the constraints of a model and finds structures that satisfy them. Quint has no such program of its own, and two other programs check it, TLC and Apalache. So the choice often comes down to what breaks: links between objects or the order of steps.

What to choose: TLA+, Alloy or Quint

?Quintproduct rules over timea team without mathsTLA+strict proofscomplex systemsAlloythe structure of dataaccess rights● model, people, systems, data  ● agent and harness

Product rules over time and a team without maths: take Quint. You need strict proofs for a complex distributed system: take TLA+ and set aside time to learn it. You need to check the structure of data or access rights: take Alloy. Ideas from one notation can be carried to another, because the rules stay the same. How Quint relates to test engines such as Jest and QUnit is covered in the article Quint vs QUnit and TLA+, and examples of the errors it finds are in the article on race conditions and lost data.

Takeaway
In this exampleThree languages close three different questions, and the choice is set by what you describe.
In generalFor product logic with agents Quint is most often enough, and Alloy is handy to add for links and rights.
Next stepStart with one rule and one language, and add the second when you hit what the first does not describe.

FAQ

How is TLA+ different from Alloy?
TLA+ describes the behavior of a system step by step and looks for the chain of steps where a rule breaks. Alloy describes objects and the links between them and looks for an example of a structure where a rule is violated.
How is Quint different from TLA+?
They describe the same thing, and only the notation differs: Quint looks like ordinary code, while TLA+ uses mathematical notation. The same programs check both notations, TLC and Apalache.
Which should I choose: TLA+, Alloy or Quint?
For product rules over time and a team without maths, take Quint; for strict proofs about a complex distributed system, TLA+; for the structure of data and access rights, Alloy.
What checks models written in TLA+, Alloy and Quint?
TLA+ and Quint are checked by TLC and Apalache. Alloy has its own analyzer, Alloy Analyzer, which takes the constraints of a model and finds structures that satisfy them.
Facts: the sites of Leslie Lamport’s TLA+, Alloy, Quint and Apalache as of 25 October 2026. The choice depends on the task, and general signs are described here.
© 2026 Egor Urvanov