如何模型检查依赖于未绑定变量的模块?

时间:2018-02-01 21:07:03

标签: tla+

我现在正在浏览指定系统,我对我如何模型检查以下模块感到有些困惑:

---------------------------- MODULE BoundedFIFO ----------------------------
EXTENDS Naturals, Sequences
VARIABLES in, out
CONSTANT Message, N
ASSUME (N \in Nat) /\ (N > 0)

Inner(q) == INSTANCE InnerFIFO

BNext(q) == /\ Inner(q)!Next
            /\ Inner(q)!BufRcv => (Len(q) < N)

Spec == \EE q : Inner(q)!Init /\ [][BNext(q)]_<<in, out, q>>
=============================================================================

我发现InitBNext公式都是运算符,由q参数化。我如何将其提供给模型检查器?

1 个答案:

答案 0 :(得分:1)

你不能:\E x : P(x)是一个无限制的表达式,TLC无法处理。 指定系统中的许多规范都无法建模。更新的指南,例如 TLA + Hyperbook Learn TLA + ,更加谨慎,以保持所有规格的可模拟性。