TLA+ принципиально расширяет классические машины состояний, добавляя темпоральную логику для формальной верификации. Вот как это работает: tla VARIABLES x, y
Init == (x = 0) ∧ (y = 0) \* Начальное состояние
Next == \* Возможные переходы
∨ (x' = x + 1) ∧ UNCHANGED y
∨ (y' = y + 1) ∧ UNCHANGED x
Spec == Init ∧ □[Next]_⟨x, y⟩ ∧ ◇(x > 10) \* Полная спецификация Здесь: Проблема: Нет способа проверить, что система гарантированно завершится. Liveness == ◇(state = "Success") \* Рано или поздно успех
Safety == □(state ≠ "Error" ⇒ x > 0) \* Ошибка только при x > 0 TLC проверит: Для вашего случая синхронизации цен TLA+ поможет: TLA+ — это машина состояний на стероидах: «Без TLA+ вы проверяете код. С TLA+ вы проверяете замысел этого кода»