形式化验证
文章平均质量分 90
Campsisgrandiflora
记录下当前的学习内容,记录下当前的所思所想,书写与图画是为了更好地总结与思考,想做的事从现在开始就做,持之以恒地做一件事情,持续地学习与思考
展开
-
软件理论基础学习笔记——一阶谓词逻辑
目录一阶谓词逻辑的符号化个体词谓词量词一阶谓词逻辑的解释一阶逻辑前束范式一阶谓词逻辑的符号化一阶谓词逻辑符号化有三个基本要素,分别是个体词、谓词和量词个体词个体词是指研究对象可以独立存在的具体的或者抽象的个体,例如3,小张,中国……谓词谓词是用来刻画个体词性质以及个体词之间相互关系的词,常用F,G,H……表示,例如“2是有理数”,2是个体词,“是有理数”就是谓词,量词表示个体常项与变量之间数量关系的词称为两次,一共有两种量词,分别是全称量词和存在量词一阶谓词逻辑的解释L\mathcal原创 2021-06-19 21:54:49 · 1439 阅读 · 0 评论 -
软件理论基础学习笔记——模态逻辑(modal logic)
目录模态逻辑的语法模态逻辑的语义模态逻辑的语法模态逻辑定义为:ϕ::=true∣p∣¬ϕ∣ϕ1∨ϕ2∣ϕ1∧ϕ2∣ϕ1→ϕ2∣□ϕ∣◊ϕ\phi::=true|p|\lnot\phi|\phi_{1}\vee\phi_{2}|\phi_{1}\wedge\phi_{2}|\phi_{1}\rightarrow\phi_{2}|\Box\phi|\Diamond\phiϕ::=true∣p∣¬ϕ∣ϕ1∨ϕ2∣ϕ1∧ϕ2∣ϕ1→ϕ2∣□ϕ∣◊ϕ说白了就是命题逻辑再加上两个自定义的算子看看原创 2021-06-18 18:58:10 · 3433 阅读 · 2 评论 -
软件理论基础学习笔记——操作语义(operational semantics)
目录介绍二级目录三级目录介绍Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its e原创 2021-06-15 23:37:39 · 2325 阅读 · 4 评论 -
软件理论基础复习笔记——总结与例题
目录命题逻辑系统一阶谓词逻辑系统时态逻辑系统模态逻辑系统自动机理论操作语义命题逻辑系统软件理论命题逻辑知识点1、证明一个公式是否为重言式什么是重言式?定义为设A∈F(S)A\in F(S)A∈F(S),若τ(A)=1\tau(A)=1τ(A)=1,则称A为重言式(永真式)也就是说无论如何赋值,该公式的真值永远为真,那么这个公式就是重言式判断重言式的方法,逻辑等价和真值表法,逻辑等价的方法就是例如逻辑等价公式,将公式转化为真,真值表法就是利用真值表画出公式所有的真值,如果最后一栏全是1,那么个原创 2021-06-15 19:23:00 · 773 阅读 · 0 评论 -
软件理论基础学习笔记——图灵机
图灵机(turing machine)图灵机是一种比下推自动机更为强大的自动机,在上面我们看到下推自动机在状态转换过程中操作一个栈,而图灵机会在状态转换过程中操作一个无限的tapetape里面包含字符,其中后面那个两竖一横的符号是blank的意思,它是一个特殊的字符,用来填满无限的tapetape head指向当前tape上的字符tape上的操作可以对tape head指向的字符进行读/扫描操作可以对tape head指向的字符进行写/更新操作将tape head左移一格将tape he原创 2021-05-21 22:55:33 · 3248 阅读 · 0 评论 -
Event-B建模(九)——用Rodin手动证明
目录环境更改证明规则练习1前面我们用Rodin建模了各种各样的模型,想必大家都知道Rodin的自动证明器有时候是会出错的吧?有时候,在自动证明器无法证明的情况下,我们需要进行手动的证明环境更改我们现在用的是SMT自动证明器,那玩意儿太高级了,为了体验一下手动证明的感觉,我们要首先更改一下我们的环境,来到这个界面,点击new我们新建的这个证明环境命名为prp1,然后先把右边Loop On All Pending这个东西拖到中间然后左边的都是证明的方法,把这个Goal in Hypotheses原创 2021-05-11 13:35:10 · 2172 阅读 · 8 评论 -
Event-B建模(八)——文件传输协议
目录需求初始模型第一次精化这一次的建模与前面的实例有相当的不同之处,这里建模的是一个协议,并且我们在此次建模使用的精化属于一种时间方面的精化。需求首先来看看这个任务的需求文件传输协议是用一个代理方向另一个代理方传送一个顺序文件。接收到的文件应该和源文件相同顺序文件由一个数据项的序列文件需要以一个个片段的方式在站点之间传输整个协议相当于一个分布式程序初始模型第一次精化...原创 2021-04-28 18:22:17 · 1095 阅读 · 1 评论 -
Event-B建模(七)——冲压机控制器
目录需求分析初始模型第一次精化需求分析这一次我们要建一个冲压机的模型系统的整体结构如下图所示:该系统的需求为:首先定义了各种部件,电动机、离合器和安全门,中间有一个控制器控制着它们然后给出各个部件与控制器的连接方式定义系统的安全需求:最后离合器和安全门之间要增加更多的约束初始模型在初始模型中,我们摇号完成连接控制器和电动机初始模型如图所示:第一次精化...原创 2021-04-25 18:06:23 · 1550 阅读 · 1 评论 -
软件理论基础学习笔记——命题逻辑系统
目录命题及其符号化命题及其符号化命题就是陈述句如果陈述句不包含更简单的陈述句,那么这个陈述句就是简单命题,如果陈述句由简单命题通过连接词连接形成,那么就是复合命题命题根据是否为真分为真命题和假命题命题逻辑的符号表示在命题演算中,我们用符号p1,p2,p3...p_{1},p_{2},p_{3}...p1,p2,p3...表示简单命题,也称之为原子命题和命题变元,用¬,∨,∧,→\lnot,\vee,\wedge,\rightarrow¬,∨,∧,→作为命题连接符用符号表示命题逻辑公式原创 2021-04-02 14:57:39 · 691 阅读 · 0 评论 -
软件理论基础学习笔记——形式系统
目录定义形式系统LL中的证明与定理演绎定理可靠性定理完备性定理可证等价子式替换定理命题演算的语构理论定义每个形式系统都使用原始的符号(符号的集合称为字符表),通过形成的推理规则,从一组公理中有限地构造一种形式语言正式的来说,形式系统包含如下四个部分:1、字符表(symbols)。一组有限的符号,称为字符表,字符用来连接公式,因此公式只是从字符表中提取的有限的符号串。2、语法(grammar)。语法定义了生成公式的基本规则,如果一个公式被称为符合语法规则(well-formed)的,那么说明这个原创 2021-03-29 23:17:20 · 1312 阅读 · 0 评论 -
Event-B建模(六)——控制桥上汽车,精化
目录第一次精化状态的精化事件的精化第二次精化状态的精化事件的精化这篇的上一篇在这个地方Event-B建模(三)——控制桥上汽车,初始模型第一次精化在第一次精化时,我们要考虑的不再是桥岛组合体,而是要引入“桥”的概念,现在要考虑的模型如下图所示:因为多了“桥”这个概念,所以我们要考虑更多的事件,例如汽车进入或者离开小岛,称为IL_in和IL_out,而ML_out和ML_in在这次精化中依然存在,分别对应于汽车离开大陆上桥和离开桥进入大陆状态的精化在第一次精化时,我们让常量d保持原样,而变量使原创 2021-03-23 20:17:47 · 3843 阅读 · 17 评论 -
Event-B建模(五)——银行系统小例子
目录需求文档初始建模初始化不变量初始化变量定义open定义close定义deposit定义withdraw第一次精化第二次精化这章就用event-b建模一个小小银行系统,某些Rodin具体操作就不展示了,可以参看建模桥上的汽车需求文档我们要建立一个银行系统的模型,它的需求文档如下所示:说明标签这个系统包含账户(account)和人(person)ENV-1一个账户有余额(balance),余额是一个有上限的非负树ENV-2一个账户只有一个所有者(owner),原创 2021-03-22 15:53:59 · 2888 阅读 · 7 评论 -
Event-B建模(四)——Rodin平台使用及Event-B语言
目录Rodin基本操作Event-B表示法最近在做一些Event-B建模的事情,而Rodin平台使用的方法的中文说明实在太少,在各个模型建模时候,更想写一些建模的思路与需求文档分析方法,这里就总结一下Rodin平台的使用方法以及Event-B的语法结构Rodin基本操作Rodin基于Eclipse开发,所以基本操作和Eclipse差不多新建工程填写项目名称新建Event-B组件组件类型有Context(上下文)和Machine(机器),组件名字随便起,不过后面会有精化操作,可以从0开始原创 2021-03-18 17:57:52 · 5292 阅读 · 3 评论 -
Event-B建模(三)——控制桥上汽车,初始模型
目录需求文档分析新建工程状态的形式化事件的形式化安装完了Rodin,现在让我们开始动手验证吧~以一个控制软件为例,开启我们整个Event-B分析建模验证的过程需求文档现在有这么一座岛屿Island,有一座桥(Bridge)连通着大陆(Mainland)与这座小岛,而我们的系统主要功能是实现对桥上汽车的控制。在这里我们的需求文档有两类需求,一些需求与控制器的功能有关,我们标记为FUN(Function的缩写),另一些与环境有关,标记为ENV(Environment的缩写)。(和软件功能直接相关的原创 2021-03-10 15:08:06 · 4713 阅读 · 21 评论 -
霍尔逻辑Hoare Logic
目录霍尔逻辑的概念部分正确与完全正确霍尔逻辑的概念对于这个新概念,我们首先要知道什么是霍尔逻辑,霍尔逻辑能用来做些什么?摘抄一下百度百科的原句:霍尔逻辑(英语:Hoare Logic),又称弗洛伊德-霍尔逻辑(Floyd–Hoare logic),是英国计算机科学家东尼·霍尔开发的形式系统,这个系统的用途是为了使用严格的数理逻辑推理来替计算机程序的正确性提供一组逻辑规则。简要来说霍尔逻辑是一种用于验证程序正确性的逻辑规则。霍尔逻辑表示为一个三元组,可以称之为“Hoare Triples”,它表原创 2021-03-03 20:29:58 · 5228 阅读 · 6 评论 -
Event-B建模(二)——Rodin安装,插件安装
目录步骤1:下载步骤2:安装和运行步骤3:插件安装步骤1:下载可以去wiki找到下载的地址https://wiki.event-b.org/index.php/Main_PageRodin提供了windows,mac,linux的版本,选择对应版本将压缩包下载到电脑上步骤2:安装和运行将压缩包解压到合适的位置,然后打开rodin.exe,即可运行rodin因为是基于eclipse平台开发的IDE,所以操作起来和eclipse差不多我们打开个项目看看左边是项目树结构,中间是编写代码的原创 2021-01-31 22:43:52 · 4890 阅读 · 4 评论 -
Event-B建模(一)——概念与基础
目录Event-B是什么?Event-B形式化验证过程Event-B的辅助工具Event-B的特点前置知识形式化是什么?参考资料Event-B是什么?Event-B是一种用于系统级别的建模和分析的形式化方法Event-B形式化验证过程首先根据系统的需求文档(requirements document),使用event-b建模语言将系统建模为一个抽象离散模型(model),在模型中也刻画了对应组件需要满足的性质,因为在模型状态变化过程中,模型的某些组件可能无法满足全局的性质,这时候会产生一些需要证明原创 2021-01-30 21:51:53 · 3081 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十九)—CTL+与CTL*
目录CTL*CTL*的等价性CTL*模型检测带有公平性约束的CTL*模型检测模型检测时间复杂度CTL+前面呢已经介绍过了CTL,当然我们也知道了CTL也有其扩展,例如CTL*什么的,所以这节简单地介绍一样有关CTL的扩展。当然因为已经超过了课堂的东西,所以比较简洁,主要目的是为了知道有这么一个东西。CTL*CTL*是一种比CTL+LTL表达能力更强的逻辑语言CTL*在状态上的公式Φ::= true | a | Φ1∧Φ2 |原创 2021-01-22 16:11:36 · 1506 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十八)—CTL与公平性
目录回顾CTL公平性约束CTL公平性假设的语义回顾稍微回顾一下LTL与公平性相关的知识我们知道,在LTL上的公平性约束可以表示为设ϕ\phiϕ和ψ\psiψ是命题公式:无条件的公平性:□◊ψ\Box\Diamond\psi□◊ψ强公平性:□◊ϕ→□◊ψ\Box\Diamond\phi\rightarrow\Box\Diamond\psi□◊ϕ→□◊ψ弱公平性:◊□ϕ→□◊ψ\Diamond\Box\phi\rightarrow\Box\Diamond\psi◊□ϕ→□◊ψ并且,在LTL原创 2020-12-19 15:46:42 · 1072 阅读 · 1 评论 -
写给学生看的系统分析与验证笔记(十七)—LTL VS CTL
目录LTL和CTL的等价LTL和CTL各自能表达的部分模型检测的复杂度LTL和CTL的等价由之前的一张图我们看到,CTL和LTL有部分的表达是有交集的,这部分既可以用LTL表达,又可以用CTL表达,那么如何形式化地定义等价这个概念呢?如果一个LTL公式φφφ和一个CTL公式Φ\PhiΦ是等价的(记为φ≡Φφ\equiv\Phiφ≡Φ),那么当且仅当,对于AP上的TS来说TS⊨φ⇔TS⊨ΦTS\vDash φ\Leftrightarrow TS\vDash\PhiTS⊨φ⇔TS⊨Φ例如有这些原创 2020-12-15 20:51:43 · 2022 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十六)——CTL模型检测
CTL模型检测的问题表示为,给定一个TS模型和一个CTL公式ϕ\phiϕ,如何判断TS⊨ϕTS\vDash \phiTS⊨ϕ是否成立?CTL模型检测的方法就和前面不太一样了,我们需要从新的角度进行思考原创 2020-12-09 21:41:35 · 2473 阅读 · 2 评论 -
写给学生看的系统分析与验证笔记(十五)——计算树逻辑(Computation tree logic,CTL)
CTL能够表达LTL不能表达的,LTL也能表达CLT不能表达的,但是它们有共同表达的部分那么我们为什么不找一个可以表达上述两种逻辑的语言呢?这种逻辑就被称为CTL*,不过它需要更多的计算,它能表达LTL和CTL以及它们不能表达的部分CTL的语法CTL在状态上的公式Φ::= true | a | Φ1∧Φ2 | ¬Φ | ∀φ | ∃φ\Phi\text{::= true | a | }\P原创 2020-12-09 21:40:49 · 3693 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十四)——LTL模型检测
LTL模型检测的问题和前面验证正则属性以及ω-正则属性的问题类型,给定一个TS和一个LTL公式ϕ\phiϕ,如何判断TS⊨ϕTS\vDash \phiTS⊨ϕ是否成立?原创 2020-12-09 10:38:37 · 3116 阅读 · 2 评论 -
Nested Dfs算法——判断Büchi自动机接受语言是否为空
目录前言Büchi自动机判断接受语言是否为空代码实现前言本文是写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性的代码实现篇,因为想把课程笔记与自己的实现代码分离,所以就单独列出来该算法在《Model Checking》与《Principles of Model Checking》上均给出了解释与伪码,实现由我自己实现,部分基础性的代码来自《算法》(第四版)的图部分。Büchi自动机判断接受语言是否为空根据前文所说,假设p是一个Büchi自动机的可接受运行,那么p中肯定会经过接受状态F无原创 2020-12-06 20:40:27 · 809 阅读 · 0 评论 -
系统分析与验证课程笔记——目录
目录参考资料与引用目录这个系列是研究生“系统分析与验证课程”的课程笔记记录,因为有好多篇,为了方便索引,所以写了这篇目录,也是为了能让有需要的人能够搜到,现在仍在更新状态参考资料与引用系统分析与验证课程 老师上课内容以及ppt智能软件形式化验证课程 参照了其中部分内容Model Checking 作者Edmond M Clarke Jr(主要是Kripke的部分)Principles_of_Model_Checking 作者Christel Baier / Joost-Pieter Kato原创 2020-12-02 23:26:31 · 2135 阅读 · 17 评论 -
写给学生看的系统分析与验证笔记(十三)——线性时序逻辑(Linear temporal logic,LTL)
线性时序逻辑提供了一种非常直观但是在数学上又很精确的表示方法来描述LT性质,70年代后期,Pnueli提出将线性时序逻辑应用于验证复杂计算机系统。原创 2020-12-02 23:10:05 · 6877 阅读 · 8 评论 -
写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性(Verifying ω-regular properties)
目录前言持续性验证ω-正则属性前言经过这么多知识的准备,终于可以开始验证ω-正则属性了,之前介绍的ω-正则属性和NBA的知识都会用上首先回顾一下我们是怎么做正则安全性的验证的,如下图所示现在我们要验证的是ω-正则属性,其实总体流程都是一样的,先要有一个TS模型,然后将属性转换为接受坏行为的自动机,现在我们要用的自动机是NBA,并用P‾\overline{P}P表示坏行为,用相同的运算⊗\otimes⊗构建新TS,最后验证的F条件也发生了变化,我们也会介绍新的算法。如果忘了啥叫ω-正则属性和N原创 2020-12-02 23:08:53 · 871 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十一)——Generalized NBA(GNBA)
目录Generalized NBAGNBA转NBA在上一节中我们介绍了非确定的Büchi automata,这节中我们介绍一下Generalized NBA,即广义的非确定性NBA。Generalized NBAGNBA也是由一个五元组G=(Q,Σ,q0,F,δ)\mathcal{G}=(Q,Σ,q_{0},\mathcal{F},δ)G=(Q,Σ,q0,F,δ)构成,其中Q,Σ,q0.δQ,Σ,q_{0}.δQ,Σ,q0.δ含义都与NBA中的一样,但是F表示为接受状态集合的集合(set of原创 2020-12-02 19:34:43 · 859 阅读 · 3 评论 -
写给学生看的系统分析与验证笔记(十)——Büchi自动机(Büchi automata)
Büchi自动机正则表达式描述的是有限字的语言,它的语义表示为:E↦L(E)⊆Σ∗E \mapsto L(E)\subseteqΣ^*E↦L(E)⊆Σ∗↦\mapsto↦这个符号的意思是maps to我们有如下规则L(∅)=∅ L(ε)={ε} L(A)={A}L(\varnothing)=\varnothing\; L(ε)=\{ε\}\; L(A)=\{A\}L(∅)=∅L(ε)={ε}L(A)={A}L(E1+E2)=L(E1)∪L(E2) 并(union)L(E_{1}+E_{2}原创 2020-11-30 15:27:45 · 3457 阅读 · 1 评论 -
写给学生看的系统分析与验证笔记(九)——验证正则安全性(verifying regular safety properties)
之前我们将系统建模为了抽象的模型,并且刻画了相应的性质,现在终于到了模型检测最后一步——验证(verification)如果我们将真实的系统建模为了TS,并且刻画了线性时间属性Φ\PhiΦ,那么模型检测的任务就是检测TS是否满足Φ\PhiΦ我们在这里要验证的不是全部的安全性,而是正则安全性(regular safety properties),它是安全性的一个子集,当然我们在定义的时候会使用到一些概念,例如正则表达式什么的,可以翻翻前面的还有计算理论和自动机理论学习笔记正则安全性...原创 2020-11-28 22:03:12 · 1218 阅读 · 2 评论 -
写给学生看的系统分析与验证笔记(八)——线性时间属性之公平性
这里写目录标题公平性(Fairness)基于动作的公平性约束公平性假设(fairness assumption)公平性(Fairness)系统的一个重要方面是公平性,公平性排除了被认为是不现实(unrealistic)的无限行为,并且这一步通常是建立活性属性所必需的。我们通过在并发系统中经常遇到的一个问题来说明公平的概念:现有一个并发系统N,有进程P1,P2...PNP_{1},P_{2}...P_{N}P1,P2...PN,它们在有需要时就会请求服务,但是现在只有一个服务进程名叫Serve原创 2020-11-26 23:11:35 · 1098 阅读 · 2 评论 -
写给学生看的系统分析与验证笔记(七)——线性时间属性(Linear-Time Properties)
前面一直在讲怎么样去建模,讲述了KS,TS以及PG这三个模型,并用这几个模型建模了各类并发系统,接下来终于要到系统验证的第二步——specification,在这一步中,要为建立好的模型增加属性规范,为验证做好准备。本节主要研究TS的属性规范。路径和状态图(Paths and State Graph)状态图TS的状态图,用符号表示G(TS),它是一个有向图定义为(V,E),V是vertices代表顶点,E是edge代表边,并且V=S,E={(s,s′)∈S×S∣s′∈Post(s)}\{(s,s')∈原创 2020-11-26 19:58:23 · 1750 阅读 · 2 评论 -
计算理论和自动机理论学习笔记
目录有限状态机前置知识分类确定的有限状态机(DFA)正则语言(regular language)不确定的有限状态机(NFA)这是对Neso Academy课程Theory of Computation & Automata Theory的一个知识记录有限状态机前置知识符号(Symbol)a,b,c,0,1,2字母表(alphabet)字母表Σ是符号的集合,例如{a,b},{0,1,2}字符串(string)符号的序列,如a,aa,bb,aba语言(language)字符串的集原创 2020-11-22 22:14:35 · 1616 阅读 · 1 评论 -
写给学生看的系统分析与验证笔记(六)——TS和PG建模并发系统
在上一节中我们为数据相关系统建立了模型,但是现实世界中的硬件或者软件大都不是顺序的,而是并行的,所以接下来我们要用TS和PG为并发系统建模。我们从最简单的并发模型开始,系统间不进行通信(各自管各自运行,interleaving),再到更加高级和现实的模型,系统间会进行通信,例如同步的方式(handshaking,即握手的方式)或者异步的方式(带有缓冲区channel)如果一个TS有多个TS并行运行组成,那么我们记为:TS=TS1∣∣TS2∣∣...∣∣TSnTS=TS_{1}||TS_{2}||...原创 2020-11-15 12:09:09 · 1266 阅读 · 3 评论 -
写给学生看的系统分析与验证笔记(五)——Program Graph
数据相关系统数据相关的系统执行的动作通常取决于条件分支的判断,例如我们有程序:if x%2=1 then x:=x+1 elsex:=2⋅x fiif\; x\%2=1\; then \;x:=x+1\; else x:=2·x\;fiifx%2=1thenx:=x+1elsex:=2⋅xfi如果我们要把这个程序建模为Transition System(TS),那么我们只能把转换的条件省略,并且用不确定性代替分支,这样做只会导致建立的TS模型非常的抽象,无法很好地描述系统的特性。这时候我原创 2020-11-09 17:39:44 · 1034 阅读 · 3 评论 -
写给学生看的系统分析与验证笔记(四)——Transition Systems
transition system在计算机科学中通常用作描述系统行为的模型,它是一种有向图,节点代表状态,边代表着状态的转化状态(state)描述了系统在其行为的特定时刻的一些信息。例如,交通灯的状态指示灯的当前颜色。类似地,顺序计算机程序的状态指示所有程序变量的当前值,以及指示要执行的下一个程序语句的程序计数器的当前值。转变(transition)指定系统如何从一种状态演变为另一种状态。对交通信号灯来说,转换表示从一种颜色切换到另一种颜色。而对于顺序程序,转换通常对应于语句的执行,并且可能涉及某些变量原创 2020-11-07 20:25:17 · 2026 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(三)——一阶逻辑公式建模并发系统
一阶逻辑公式建模串行程序因为并发程序都是由串行程序组成的,所以我们先研究串行程序的建模。建模串行程序共有三个步骤:标记所有程序语句的入口点和出口点(为了简化转化过程)定义程序的初始状态将标记后程序转化为一阶逻辑公式我们将程序记为P,我们在程序P的每个语句的入口点上进行标记,在串行程序中一个语句的出口标志就是下一个语句的入口标志,所以只标志入口,下面展示将无标记程序P转化为标记程序PLP_{L}PL的过程:如果P不是复合语句(例如:P是x:=e(赋值语句),skip;wait,lock,原创 2020-11-07 20:23:55 · 1723 阅读 · 4 评论 -
写给学生看的系统分析与验证笔记(二)——Kripke structure
目录Kripe结构一阶逻辑公式表示并发系统基础定义描述并发系统的状态描述并发系统的状态变迁从一阶逻辑公式构造KSKripe结构首先给出Kripke的定义:令AP是原子命题,则AP上的四元组M称为Kripke结构,M=(S,S0,R,L)M=(S,S_{0},R,L)M=(S,S0,R,L),其中SSS是一个有限的集合,它的每一个元素称为一个状态,即状态的有限集S0⊆SS_{0}\subseteq SS0⊆S是初始状态集R⊆S×SR\subseteq S\times SR⊆S×S是变迁关原创 2020-11-07 20:21:13 · 3118 阅读 · 7 评论 -
写给学生看的系统分析与验证笔记(一)——形式化基础
什么是形式化验证?In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods原创 2020-10-24 23:28:07 · 2971 阅读 · 1 评论