文中主要使用TLA语言对PCS给出了一个时序规约模型,并且利用模型检测工具TLC对PCS进行检测。同时对系统的活性和互斥性也进行了检测,检测结果都满足系统规约。ASMs主要采用转移规则来规约PCS模型,中间的转移过程是无法知道的,TLA能同时规约出PCS的执行过程和系统属性。
例如,您可以定义系统或算法必须满足的性质,如安全性、一致性和可靠性。 TLC 模型检查器:TLC 是 TLA+ 的模型检查器。TLC 可以用于验证您的规范是否满足您的需求和期望。TLC 还可以用于生成系统或算法的状态空间,并检查状态空间中是否存在问题。 PlusCal:PlusCal 是 TLA+ 的一种高级语言,它可以帮助您更轻松地编写 ...
记住这个描述方法,我们会按照此方法来编写和阅读所有的 TLA+ 程序。 TLA+ 如此有用的另一个关键点是,TLA+ 有一个被称为TLC的模型检验工具,你可以认为这是 TLA+ 语言的 IDE,其功能简单来说,就是遍历 TLA+ 抽象出来的系统的每一个可能路径,并在每条可能的路径上对一些条件(称为“不变式”)进行检验。为了使...
使用TLA+进行形式化验证的第一步是用TLA+描述程序,这种描述称为规范(Specification)。有了Specification后,可以利用TLC模型检查器运行它,TLC遍历所有可能行为,检查Specification中设定的属性,发现不符合预期的行为。TLA+基于数学思维,使用与任何编程语言不同的表达方式。为了降低学习门槛,Lamport开发了PlusCa...
接下来我们点击 “TLC Model Checker -> New Model...” 创建一个新的模型。不出意外的话会弹出一个模型相关的窗口,我们需要手动填入模型的初始值和次态关系,如下图所示: 我们点击绿色播放按钮运行模型,你会发现模型报错了。这是因为工具箱默认创建的模型是检查持续运行的系统,而我们的这个模型运行一次就退出了,...
Lamport设计的TLA+是建立在坚实的数学基础之上,这使得它能够支持严格的数学推理和证明与自动化验证工具(如TLC模型检查器)无缝集成。TLA+被设计为在高度抽象的层面描述系统,不会像编程语言那样受实现细节的束缚。此外,结合时序逻辑和状态机,TLA+可以描述并发和分布式系统,并在设计层面验证系统的正确性。
TLC--The TLA+ Model CheckerYou will most likely want to use TLC from the . Downloading the Toolbox brings with it the latest version of all the TLA+ tools, including TLC. How to write TLA+ specifications is explained in , which also describes TLC. However, it doesn't tell you how ...
通过使用TLC对分布式系统的TLA+规约进行模型检查, 可以得到一张状态空间图, 对该图进行遍历以生成测试用例. 每一个测试用例是从初始状态出发的一条有向路径. 需要注意的是, 通过遍历状态空间图生成测试用例有多种策略, 如节点覆盖导向、边覆盖导向以及路径...
简单看了一下,对关键点做个小结: TLA+指的是一种语法,可以将一个程序的变量和行为形式化地写为一个规约,用来验证程序是否满足所需的约束条件。 TLC是实际执行验证的程序,它的输入就是用TLA+写成的规约。 使用TLC做程序验证的意义可以用书中55页的一段话来解释:“规约的主... (展开) ...
使用TLA+进行形式化验证,首先需用该语言对程序进行描述,这一描述称为规范(Specification)。有了Specification后,即可利用TLC模型检查器运行它,通过遍历所有可能的行为,检查是否满足预先设定的属性,以发现非预期行为。TLA+基于数学理论,采用数学思维,与任何编程语言均不相同。为了降低入门门槛,Lamport还...