Model Checking 杂谈

2024-02-29 10:32
文章标签 model 杂谈 checking

本文主要是介绍Model Checking 杂谈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在计算机科学中,模型检测或property checking是检查一个系统的有限状态模型是否满足给定的specification(a.k.a. correctness)的方法。这通常与硬件或软件系统相关联,其中规范包含活动性要求(例如,避免活动锁)和安全性要求(例如,避免表示系统崩溃的状态)。

为了从算法上解决这个问题,系统模型及其规范都用某种精确的数学语言来表述。 为此,将问题表述为逻辑上的任务,即检查结构是否满足给定的逻辑公式。 该一般概念适用于多种逻辑以及适当的结构。 一个简单的模型检查问题包括验证给定结构是否满足命题逻辑中的公式。

overview

当两个描述不相等时,将使用属性检查进行验证。在改进过程中,对规范进行了补充,这些细节在高级规范中是不必要的。由于这是不可能的,因此无需根据原始规范验证新引入的属性。因此,严格的双向等效检查放宽到单向属性检查。实现或设计被视为电路的模型,而规格是模型必须满足的特性。

已经开发出一类重要的模型检查方法,用于检查硬件和软件设计的模型,其中规范是由时间逻辑公式给出的。时态逻辑规范的开拓性工作是由Amir Pnueli完成的,他因“将时态逻辑引入计算科学中的先天性工作”而获得1996年的图灵奖。模型检查始于C和D的A,B和A的开创性工作。Clarke,Emerson和Sifakis分享了2007年的图灵奖,以表彰他们在模型检查领域的开拓和发展。[8] [9]

模型检查最常用于硬件设计。对于软件来说,由于不确定性(请参阅可计算性理论),该方法不能完全采用算法。通常,它可能无法证明或反证给定的属性。在嵌入式系统硬件中,有可能通过UML活动图[10]或控制解释的Petri网[11]来验证交付的规范。

通常以工业硬件描述语言或专用语言的源代码描述形式给出该结构。这样的程序对应于有限状态机(FSM),即,由节点(或顶点)和边组成的有向图。一组原子命题与每个节点相关联,通常说明哪些存储元素是一个。节点表示系统的状态,边缘表示可能更改状态的可能过渡,而原子命题表示执行点所具有的基本属性。

形式上,问题可以表述为:给定所需的属性(表示为时间逻辑公式p以及具有初始状态s的结构M),确定是否{\ displaystyle M,s \ models p} M,s \ models p 。如果M是有限的(如在硬件中一样),则模型检查将简化为图形搜索。


symbolic model checking


Techniques

模型检查工具面临着状态空间的组合爆炸,通常被称为状态爆炸问题,必须解决该问题才能解决大多数实际问题。有几种方法可以解决此问题。

  1. Symbolic algorithm避免了显式构造有限状态机(FSM)的图结构。相反,它们使用量化命题逻辑中的公式隐式表示图形。 Ken McMillan [14]的工作以及诸如CUDD [15]和BuDDy。[16]之类的开源BDD操作库的开发使二进制决策图(BDD)的使用变得流行。

  2. Bounded model checking algorithms将FSM展开固定的步数k,并检查是否可以在k步或更短的步长发现属性冲突。这通常涉及将受限模型编码为SAT的实例。可以用越来越大的k值重复该过程,直到排除了所有可能的违规(参见迭代加深深度优先搜索)。

  3. Abstraction试图首先通过简化系统来证明系统的属性。简化的系统通常不满足与原始系统完全相同的属性,因此可能需要refinement过程。通常,人们要求抽象是合理的(抽象证明的属性对原始系统是正确的);但是,有时抽象是不完整的(并非原始系统的所有真实属性都对抽象是正确的)。抽象的一个示例是忽略非布尔变量的值,而仅考虑布尔变量和程序的控制流。这样的抽象虽然看起来可能很粗糙,但实际上足以证明例如。互斥的属性。

  4. 反例指导的抽象细化(CEGAR)开始检查粗略(即不精确)的抽象并对其进行迭代细化。当发现违规(即反例)时,该工具会对其进行可行性分析(即违规是真实的还是抽象不完全的结果?)。如果违反(反例)是真实的,则将其报告给用户。如果不是,则使用不可行证明来完善抽象,然后再次开始检查。

最初开发模型检查工具来推理离散状态系统的逻辑正确性,但此后已扩展为处理实时且有限形式的混合系统。


First-order logic


Tools

Here is a partial list of model-checking tools that have a Wikipedia page:

  • Alloy (Alloy Analyzer)
  • BLAST (Berkeley Lazy Abstraction Software Verification Tool)
  • CADP (Construction and Analysis of Distributed Processes) a toolbox for the design of communication protocols and distributed systems
  • CPAchecker: an open-source software model checker for C programs, based on the CPA framework
  • ECLAIR: a platform for the automatic analysis, verification, testing, and transformation of C and C++ programs
  • FDR2: a model checker for verifying real-time systems modelled and specified as CSP Processes
  • ISP code level verifier for MPI programs
  • Java Pathfinder: an open-source model checker for Java programs
  • Libdmc: a framework for distributed model checking
  • mCRL2 Toolset, Boost Software License, Based on ACP
  • NuSMV: a new symbolic model checker
  • PAT: an enhanced simulator, model checker and refinement checker for concurrent and real-time systems
  • Prism: a probabilistic symbolic model checker
  • Roméo: an integrated tool environment for modelling, simulation, and verification of real-time systems modelled as parametric, time, and stopwatch Petri nets
  • SPIN: a general tool for verifying the correctness of distributed software models in a rigorous and mostly automated fashion
  • TAPAs: a tool for the analysis of process algebra
  • TAPAAL: an integrated tool environment for modelling, validation, and verification of Timed-Arc Petri Nets
  • TLA+ model checker by Leslie Lamport
  • UPPAAL: an integrated tool environment for modelling, validation, and verification of real-time systems modelled as networks of timed automata
  • Zing[19] – experimental tool from Microsoft to validate state models of software at various levels: high-level protocol descriptions, work-flow specifications, web services, device drivers, and protocols in the core of the operating system. Zing is currently being used for developing drivers for Windows.

这篇关于Model Checking 杂谈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758467

相关文章

认知杂谈52

今天分享 有人说的一段争议性的话 I I 1拓展人脉很重要** 咱们活在这世上啊,得明白一件事儿,知识、逻辑能力和实战经验虽然重要,但确实都不是最关键的。真正关键的是要懂得怎么和那些手里有资源的人打交道。人脉那可真是一笔无形的大财富呢。你想想看,有时候一个有影响力的人帮你一把,那效果可比你累死累活干一年都强得多。 I I 就比如说,你要是认识个行业里的大牛,他可能给你介绍个特别好的工

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

认知杂谈54

I I 内容摘要: 这篇内容主要有以下几个要点:首先,沟通不在一个调时可学习人际交往心理学知识、线上课程及关注名师来改善。其次,挑房子、工作、搭档和人生伴侣要谨慎,找心灵相通能共同进步的人。再者,远离负能量的人,多跟积极向上的人相处攒正能量。然后,人生如爬山,要专注自身步伐,不与他人比较,坚持目标,可通过看《微习惯》、用专注 APP、参加训练营提升专注力和自律能力。此外,别瞎操心他人,每个人有自

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪

杂谈:再次写给我们这些浮躁的程序员

再次写给我们这些浮躁的程序员     多做项目,多思考 不要害怕做事,刚毕业的同学最缺的就是工作经验,乱七八糟的项目能让你很快就了解了一个公司的业务与使用的技术,并且可以多接触同事与客户。 当你毕业后刚进一家公司时,如果主管没有把你安排到项目组工作,那真的很杯具,因为他认为你还不能胜任工作或者你的加入会让项目组更糟。 还有人说,我刚进公司,公司就把我当成了苦工,工资又低,项目组加入好几个,也做

认知杂谈47

今天分享 有人说的一段争议性的话 I I 一、价值观是否契合 价值观那可是两个人能不能长久在一起的重要根基。要是价值观差得太多,在好多大事上肯定容易闹矛盾、起冲突。 I I 人生目标是否一致:就比如说,一方就想过那种安安稳稳、平平淡淡的日子,每天按部就班地朝九晚五,能有更多时间陪陪家人。可另一方呢,一门心思追求事业上的大成功,为了工作啥个人时间都舍得牺牲。要是两个人在人生目标上差这么大,

Segment Anything Model(SAM)中的Adapter是什么?

在META团队发布的Segment Anything Model (SAM) 中,Adapter 是一种用于提升模型在特定任务或领域上的性能的机制。具体来说,SAM 是一个通用的分割模型,能够处理多种不同类型的图像分割任务,而 Adapter 的引入是为了更好地让模型适应不同的任务需求。 Adapter 的主要功能是: 模块化设计:Adapter 是一种小规模的、可插拔的网络模块,可以在不改

Vue学习:v-model绑定文本框、单选按钮、下拉菜单、复选框等

v-model指令可以在组件上使用以实现双向绑定,之前学习过v-model绑定文本框和下拉菜单,今天把表单的几个控件单选按钮radio、复选框checkbox、多行文本框textarea都试着绑定了一下。 一、单行文本框和多行文本框 <p>1.单行文本框</p>用户名:<input type="text" v-model="inputMessage"><p>您的用户名是:{{inputMe

#杂谈#TestDeploy,期待突破性的IDEA

近一个月有点疯狂,一口气将TestDeploy更新了好几个版本,搞了不少优化和增加一些有用的功能,中间还出了一些小插曲。这些更新版本中,变化比较大的是v2.3.0和v2.5.0。 v2.3.0主要搞了日志规范化管理、镜像源优化和Pipeline脚本。国内镜像源,由于莫名原因,很多都用不了了,连阿里云镜像源也不例外,所以特意去搞了几个,在v2.6.0还支持了私库。新增Pipeline脚本,以前的版

认知杂谈36

今天分享 有人说的一段争议性的话 《爷们儿,高手避坑指南》 嘿,爷们儿!人生处处有陷阱,稍不留意就可能让你的人生轨迹严重跑偏。 I 今天咱就从高手的视角聊聊这些硬派的人生感悟,这可都是无数前辈爷们用血汗换来的教训。 I 咱分享给你,就是希望你能避开那些坑,让你的黄金岁月走在正道上,闪闪发光。 I 要知道,男人的青春无比珍贵,是在烂泥里挣扎还是在康庄大道上飞驰,结果天差地别。 I 就像有的陷