Егор Урванов

Какой язык формальной верификации выбратьTLA+, Alloy или Quint

TLA+, Alloy или Quint: что описывает каждый, как записывается, чем проверяется и кому подходит. Парные сравнения, таблица и вопросы.

создано · обновлено · 6 мин · · Спеки и контекст

Какой язык формальной верификации выбрать, зависит от того, что ломается: TLA+ и Quint описывают поведение системы шаг за шагом, Alloy описывает объекты и связи между ними. Quint записывается как обычный код, TLA+ и Alloy как формулы. Для правил продукта во времени берут Quint, для строгих доказательств TLA+, для данных и прав Alloy.

одна задача: описать правила и найти, где они нарушаютсяTLA+шаги во временизапись формуламиAlloyобъекты и связизапись формуламиQuintшаги во временизапись как коду всех троих на выходе: найденное нарушение правила● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Чем отличаются TLA+, Alloy и Quint: одна задача, три языка

У всех трёх языков общая идея: правила системы записывают отдельно от кода, а программа сама ищет в них нарушение. Если нарушение есть, она показывает, как до него дойти. Это проверка моделей, и у неё в каждом случае свой язык и своя проверяющая программа. TLA+ придумал Лесли Лэмпорт для описания параллельных и распределённых систем. Alloy создан в группе проектирования ПО при MIT. Quint придуман как современная альтернатива TLA+ для инженеров.

Вывод
В этом примереTLA+, Alloy и Quint решают одну задачу: описать правила и найти цепочку, где они ломаются.
В общем случаеРазличия лежат в том, что именно описывают, как это записывают и чем проверяют.
Что сделатьЗапишите три правила вашего продукта и отметьте, о чём они: о порядке событий или о связях между объектами.

Сводка: TLA+, Alloy и Quint рядом

TLA+ / QuintAlloyкорзинаоплатазаказначальникначальниксотрудникчто происходит одно за другимкто с кем связану сотрудника два начальника● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница

Главное отличие: что именно описывают. TLA+ и Quint описывают поведение системы шаг за шагом: корзина, оплата, заказ, и что может пойти не так между шагами. Так находят гонки и потерянные данные. Alloy описывает структуры и связи: кто кому подчиняется, у кого какие права. Он ищет небольшой пример, где правило нарушено, например сотрудника с двумя начальниками. Остальные различия вытекают из этого.

TLA+AlloyQuint
Что описываютповедение системы шаг за шагом, особенно параллельное и распределённоеобъекты и связи между ними и то, как они меняютсяповедение шаг за шагом, как у TLA+
Записьматематическаялогика отношенийпохожа на обычный код
Чем проверяютTLC или ApalacheAlloy Analyzer, он подбирает структуры под ограниченияTLC или Apalache, есть быстрый случайный прогон
Что показываетцепочку шагов до нарушенияпример структуры, где правило нарушеноцепочку шагов до нарушения
Зрелостьс 1999 года, больше книг и примеровс 1997 года, своё сообществос 2021 года, моложе
Кому подходиттем, кому нужны строгие гарантиитем, кто проектирует данные и права доступакомандам продукта без математической подготовки

Как читать таблицу по строкам. «Что описывают» самая важная: от неё зависит выбор. «Запись» определяет порог входа: у Quint он ниже всех, у TLA+ и Alloy нужно привыкнуть к формулам. «Чем проверяют» напоминает, что языки опираются на разные программы-проверяльщики: Apalache и TLC подходят и TLA+, и Quint, а у Alloy свой анализатор. «Что показывает» объясняет, что вы получите на выходе: цепочку шагов или пример структуры. «Зрелость» подсказывает, где больше примеров и людей, у которых можно спросить.

Граница между языками не абсолютная. В шестой версии Alloy добавил изменяемое состояние и временную логику, то есть научился описывать и шаги во времени. А Quint и TLA+ можно использовать для структур данных. Поэтому выбор определяется тем, что в вашей системе ломается чаще: порядок событий или устройство связей.

Вывод
В этом примереЕсли опасность в порядке событий, нужны TLA+ или Quint, а если в устройстве связей, нужен Alloy.
В общем случаеЯзыки не конкурируют впрямую: одну и ту же систему можно описать и во времени, и по структуре.
Что сделатьДля каждого правила выпишите, что ломается: порядок действий или связи между объектами.

Чем TLA+ отличается от Alloy

TLA+Alloyкорзинаоплатазаказначальникначальниксотрудникцепочка шаговодин снимокгде в цепочке сбойгде нарушено правило● модель, люди, системы, данные  ● риск, стоп, граница
TLA+Alloy
Когда братьважен порядок событийважно устройство данных и прав

TLA+ создал Лесли Лэмпорт, и в его основе лежит мысль, что точнее всего описывать вещи простой математикой. Он ищет цепочку шагов, на которой правило ломается, например двойную оплату и два заказа. Alloy ищет пример структуры, в которой правило нарушено, и проверяет свойства модели, строя контрпримеры. Для порядка событий берут TLA+, для связей и прав доступа Alloy.

Чем TLA+ отличается от Quint

TLA+формулыQuintкодкорзинаоплатазаказTLCApalacheобе записи проверяют одни и те же программы● модель, люди, системы, данные  ● агент и харнесс
TLA+Quint
Когда братьнужна строгая математиканужна запись, которую читает вся команда

Описывают они одно и то же, различается запись. Quint задуман как синтаксис, удобный инженерам, а проверяют обе записи одни и те же программы. TLC перебирает состояния по одному, а Apalache символьный и рассматривает все цепочки до заданной длины.

Чем Alloy отличается от Quint

AlloyQuintначальникначальниксотрудниккорзинаоплатазаказодин снимокцепочка шаговAlloy AnalyzerTLCApalache● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
AlloyQuint
Когда братьпроектируют данные и правапроверяют правила продукта во времени

У Alloy своя программа проверки: Alloy Analyzer берёт ограничения модели и находит структуры, которые им удовлетворяют. Quint такой программы не имеет, его проверяют две другие, TLC и Apalache. Поэтому выбор часто сводится к вопросу, что ломается: связи между объектами или порядок шагов.

Что выбрать: TLA+, Alloy или Quint

?Quintправила продукта во временикоманда без математикиTLA+строгие доказательствасложные системыAlloyустройство данныхправа доступа● модель, люди, системы, данные  ● агент и харнесс

Правила продукта во времени и команда без математики: берите Quint. Нужны строгие доказательства для сложной распределённой системы: берите TLA+ и закладывайте время на обучение. Нужно проверить устройство данных или права доступа: берите Alloy. Идеи из одной записи можно перенести в другую, потому что правила остаются теми же. Как Quint соотносится с тестовыми движками вроде Jest и QUnit, разобрано в статье Quint против QUnit и TLA+, а примеры найденных им ошибок есть в статье про гонки и потерянные данные.

Вывод
В этом примереТри языка закрывают три разных вопроса, и выбор определяется тем, что вы описываете.
В общем случаеДля продуктовой логики с агентами чаще всего хватает Quint, а Alloy удобно добавить для связей и прав.
Что сделатьНачните с одного правила и одного языка, а второй добавляйте, когда упрётесь в то, чего первый не описывает.

Частые вопросы

Чем TLA+ отличается от Alloy?
TLA+ описывает поведение системы шаг за шагом и ищет цепочку шагов, где правило ломается. Alloy описывает объекты и связи между ними и ищет пример структуры, где правило нарушено.
Чем Quint отличается от TLA+?
Описывают они одно и то же, различается запись: Quint похож на обычный код, а TLA+ записывают математической нотацией. Проверяют обе записи одни и те же программы, TLC и Apalache.
Что выбрать: TLA+, Alloy или Quint?
Для правил продукта во времени и команды без математики берите Quint, для строгих доказательств по сложной распределённой системе TLA+, для устройства данных и прав доступа Alloy.
Чем проверяют модели на TLA+, Alloy и Quint?
TLA+ и Quint проверяют программы TLC и Apalache. У Alloy свой анализатор, Alloy Analyzer: он берёт ограничения модели и находит структуры, которые им удовлетворяют.
Факты: сайты TLA+ Лесли Лэмпорта, Alloy, Quint и Apalache на 25 октября 2026. Выбор зависит от задачи, здесь описаны общие признаки.
© 2026 Егор Урванов