《Model Checking TLA+ Specifications》

简介: 《Model Checking TLA+ Specifications》

《Model Checking TLA+ Specifications》论文笔记。这篇论文是TLC作者Yuanyu发表的,由于时间比较早,TLC的部分特性都还没有支持,所以这片论文的部分只有部分观点是有益的。

TLA+特点

模型校验器以能处理的系统大小或者能校验的property分类。系统通常以硬件描述语言或者为系统定制的语言。

TLC校验的spec是使用TLA+语言描述。TLA+是具有完备语义的,表达能力极强,描述推理的语言,而不是仅仅为了模型校验:

  1. 当系统太庞大太复杂,模型校验不能完全覆盖的时候,只能通过逻辑推理进行校验。我们想通过模型校验对有限状态机进行设计层次的校验,以发现设计上的错误,因此spec语言一定要能有方便的描述推理;
  2. 我们希望系统的设计者来对系统的正确性进行形式化的证明。这样不需要专业的验证化小组来描述系统了,可以省略了从设计方案到形式化逻辑的翻译过程。因此,这门语言一定要具有极强的表达能力。

我们先对并发系统或者事件驱动系统进行验证,比如:网络通信,cache一致性协议。这类设计典型的RTL实现层次高1,2层。通常不是有限状态机,包含任意数目的processor和任意数目的quueue。ad hoc技术能把这类spec规约成有限状态机,但是对精确的细节很敏感。而TLC可以方便选择有限模型描述类似的spec,并校验所有的case。

TLA+的不变式

TLA:Temporal Logic of Actions。TLA+是对TLA的扩展。TLA的设计目标是使用最简单最直接的方式形式化并发系统的正确性。经过20年的实践发现,基于不变式的方式是对并发系统正确性推理的很好的方式。优秀的程序员再设计多线程算法时都会使用不变式的方式来思考问题

TLA+是一种形式化语言,完备的实现了第一阶逻辑和ZF吉和理论。

在TLA中spec被拆分成formula。在校验正确性的关键步骤是找到系统的不变式:在所有可达的状态中都为TRUE的谓词表达式。大量的实践表明校验系统的不变式是发现bug的最有效的方式。

TLC是如何工作的

  1. TLC使用Explicit state representation;
  2. TLC内部有两个结构体(宽度遍历):seen和sq
    a. seen 所有已经reach过的state;seen是所有reach过状态的fingerprints: 64位整数(比如状态的checksum),同时为了做错误回溯,也记录了前继节点);
    b. sq 所有seen的后继节点,sq里是真正完整的状态;
  3. TLC对Init和Next是特殊处理的:
    a. 从Init生成所有可能的状态,放入seen和sq;
    b. 重写Next,扩展成尽量多的‘或’运算,每个‘或’都是一个分支;
  4. TLC启动线程池:从sq取出一个state s,生成所有合法的后继节点t
    a. 检查t是否已经在seen中;
    b. 如果没有,校验t是否满足invariant;
    c. 如果满足,把t加入到seen中(并记录前继节点是s);
    d. 如果t满足constraint,则把t加入到sq中;
    如果TLC发现某个t不满足invariant,或者s没有任何后继节点,TLC生成t的trace。
相关文章
|
2月前
|
算法 数据挖掘 数据处理
文献解读-Sentieon DNAscope LongRead – A highly Accurate, Fast, and Efficient Pipeline for Germline Variant Calling from PacBio HiFi reads
PacBio® HiFi 测序是第一种提供经济、高精度长读数测序的技术,其平均读数长度超过 10kb,平均碱基准确率达到 99.8% 。在该研究中,研究者介绍了一种准确、高效的 DNAscope LongRead 管道,用于从 PacBio® HiFi 读数中调用胚系变异。DNAscope LongRead 是对 Sentieon 的 DNAscope 工具的修改和扩展,该工具曾获美国食品药品管理局(FDA)精密变异调用奖。
31 2
文献解读-Sentieon DNAscope LongRead – A highly Accurate, Fast, and Efficient Pipeline for Germline Variant Calling from PacBio HiFi reads
|
3月前
|
算法 数据挖掘
文献解读-Consistency and reproducibility of large panel next-generation sequencing: Multi-laboratory assessment of somatic mutation detection on reference materials with mismatch repair and proofreading deficiency
Consistency and reproducibility of large panel next-generation sequencing: Multi-laboratory assessment of somatic mutation detection on reference materials with mismatch repair and proofreading deficiency,大panel二代测序的一致性和重复性:对具有错配修复和校对缺陷的参考物质进行体细胞突变检测的多实验室评估
32 6
文献解读-Consistency and reproducibility of large panel next-generation sequencing: Multi-laboratory assessment of somatic mutation detection on reference materials with mismatch repair and proofreading deficiency
|
7月前
|
自然语言处理 算法 Python
[SentencePiece]论文解读:SentencePiece: A simple and language independent subword tokenizer...
[SentencePiece]论文解读:SentencePiece: A simple and language independent subword tokenizer...
110 0
|
算法 计算机视觉 知识图谱
ACL2022:A Simple yet Effective Relation Information Guided Approach for Few-Shot Relation Extraction
少样本关系提取旨在通过在每个关系中使用几个标记的例子进行训练来预测句子中一对实体的关系。最近的一些工作引入了关系信息
137 0
|
自然语言处理 算法 vr&ar
X-GEAR:Multilingual Generative Language Models for Zero-Shot Cross-Lingual Event Argument Extraction
我们提出了一项利用多语言预训练生成语言模型进行零样本跨语言事件论元抽取(EAE)的研究。通过将EAE定义为语言生成任务,我们的方法有效地编码事件结构并捕获论元之间的依赖关系。
129 0
|
人工智能 自然语言处理 算法
Tree of Thoughts: Deliberate Problem Solving with Large Language Models
Tree of Thoughts: Deliberate Problem Solving with Large Language Models
344 0
|
机器学习/深度学习 自然语言处理 算法
Joint Information Extraction with Cross-Task and Cross-Instance High-Order Modeling 论文解读
先前的信息抽取(IE)工作通常独立地预测不同的任务和实例(例如,事件触发词、实体、角色、关系),而忽略了它们的相互作用,导致模型效率低下。
107 0
|
机器学习/深度学习 自然语言处理 算法
TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking 论文解读
近年来,从非结构化文本中提取实体和关系引起了越来越多的关注,但由于识别共享实体的重叠关系存在内在困难,因此仍然具有挑战性。先前的研究表明,联合学习可以显著提高性能。然而,它们通常涉及连续的相互关联的步骤,并存在暴露偏差的问题。
226 0
|
自然语言处理
Reading the Manual: Event Extraction as Definition Comprehension, EMNLP 2020
Reading the Manual: Event Extraction as Definition Comprehension, EMNLP 2020
93 0
Reading the Manual: Event Extraction as Definition Comprehension, EMNLP 2020
|
算法 Java BI
【论文阅读】(2013)A goal-driven approach to the 2D bin packing and variable-sized bin packing problems
【论文阅读】(2013)A goal-driven approach to the 2D bin packing and variable-sized bin packing problems
174 0
【论文阅读】(2013)A goal-driven approach to the 2D bin packing and variable-sized bin packing problems