![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
系统分析与验证
文章平均质量分 91
系统分析与验证课程相关的内容
Campsisgrandiflora
记录下当前的学习内容,记录下当前的所思所想,书写与图画是为了更好地总结与思考,想做的事从现在开始就做,持之以恒地做一件事情,持续地学习与思考
展开
-
写给学生看的系统分析与验证笔记(十九)—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 · 1524 阅读 · 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 · 1082 阅读 · 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 · 2047 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十六)——CTL模型检测
CTL模型检测的问题表示为,给定一个TS模型和一个CTL公式ϕ\phiϕ,如何判断TS⊨ϕTS\vDash \phiTS⊨ϕ是否成立?CTL模型检测的方法就和前面不太一样了,我们需要从新的角度进行思考原创 2020-12-09 21:41:35 · 2505 阅读 · 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 · 3753 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(十四)——LTL模型检测
LTL模型检测的问题和前面验证正则属性以及ω-正则属性的问题类型,给定一个TS和一个LTL公式ϕ\phiϕ,如何判断TS⊨ϕTS\vDash \phiTS⊨ϕ是否成立?原创 2020-12-09 10:38:37 · 3139 阅读 · 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 · 820 阅读 · 0 评论 -
系统分析与验证课程笔记——目录
目录参考资料与引用目录这个系列是研究生“系统分析与验证课程”的课程笔记记录,因为有好多篇,为了方便索引,所以写了这篇目录,也是为了能让有需要的人能够搜到,现在仍在更新状态参考资料与引用系统分析与验证课程 老师上课内容以及ppt智能软件形式化验证课程 参照了其中部分内容Model Checking 作者Edmond M Clarke Jr(主要是Kripke的部分)Principles_of_Model_Checking 作者Christel Baier / Joost-Pieter Kato原创 2020-12-02 23:26:31 · 2144 阅读 · 17 评论 -
写给学生看的系统分析与验证笔记(十三)——线性时序逻辑(Linear temporal logic,LTL)
线性时序逻辑提供了一种非常直观但是在数学上又很精确的表示方法来描述LT性质,70年代后期,Pnueli提出将线性时序逻辑应用于验证复杂计算机系统。原创 2020-12-02 23:10:05 · 6989 阅读 · 8 评论 -
写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性(Verifying ω-regular properties)
目录前言持续性验证ω-正则属性前言经过这么多知识的准备,终于可以开始验证ω-正则属性了,之前介绍的ω-正则属性和NBA的知识都会用上首先回顾一下我们是怎么做正则安全性的验证的,如下图所示现在我们要验证的是ω-正则属性,其实总体流程都是一样的,先要有一个TS模型,然后将属性转换为接受坏行为的自动机,现在我们要用的自动机是NBA,并用P‾\overline{P}P表示坏行为,用相同的运算⊗\otimes⊗构建新TS,最后验证的F条件也发生了变化,我们也会介绍新的算法。如果忘了啥叫ω-正则属性和N原创 2020-12-02 23:08:53 · 883 阅读 · 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 · 874 阅读 · 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 · 3522 阅读 · 1 评论 -
写给学生看的系统分析与验证笔记(九)——验证正则安全性(verifying regular safety properties)
之前我们将系统建模为了抽象的模型,并且刻画了相应的性质,现在终于到了模型检测最后一步——验证(verification)如果我们将真实的系统建模为了TS,并且刻画了线性时间属性Φ\PhiΦ,那么模型检测的任务就是检测TS是否满足Φ\PhiΦ我们在这里要验证的不是全部的安全性,而是正则安全性(regular safety properties),它是安全性的一个子集,当然我们在定义的时候会使用到一些概念,例如正则表达式什么的,可以翻翻前面的还有计算理论和自动机理论学习笔记正则安全性...原创 2020-11-28 22:03:12 · 1235 阅读 · 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 · 1107 阅读 · 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 · 1768 阅读 · 2 评论 -
写给学生看的系统分析与验证笔记(六)——TS和PG建模并发系统
在上一节中我们为数据相关系统建立了模型,但是现实世界中的硬件或者软件大都不是顺序的,而是并行的,所以接下来我们要用TS和PG为并发系统建模。我们从最简单的并发模型开始,系统间不进行通信(各自管各自运行,interleaving),再到更加高级和现实的模型,系统间会进行通信,例如同步的方式(handshaking,即握手的方式)或者异步的方式(带有缓冲区channel)如果一个TS有多个TS并行运行组成,那么我们记为:TS=TS1∣∣TS2∣∣...∣∣TSnTS=TS_{1}||TS_{2}||...原创 2020-11-15 12:09:09 · 1290 阅读 · 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 · 1049 阅读 · 3 评论 -
写给学生看的系统分析与验证笔记(四)——Transition Systems
transition system在计算机科学中通常用作描述系统行为的模型,它是一种有向图,节点代表状态,边代表着状态的转化状态(state)描述了系统在其行为的特定时刻的一些信息。例如,交通灯的状态指示灯的当前颜色。类似地,顺序计算机程序的状态指示所有程序变量的当前值,以及指示要执行的下一个程序语句的程序计数器的当前值。转变(transition)指定系统如何从一种状态演变为另一种状态。对交通信号灯来说,转换表示从一种颜色切换到另一种颜色。而对于顺序程序,转换通常对应于语句的执行,并且可能涉及某些变量原创 2020-11-07 20:25:17 · 2059 阅读 · 0 评论 -
写给学生看的系统分析与验证笔记(三)——一阶逻辑公式建模并发系统
一阶逻辑公式建模串行程序因为并发程序都是由串行程序组成的,所以我们先研究串行程序的建模。建模串行程序共有三个步骤:标记所有程序语句的入口点和出口点(为了简化转化过程)定义程序的初始状态将标记后程序转化为一阶逻辑公式我们将程序记为P,我们在程序P的每个语句的入口点上进行标记,在串行程序中一个语句的出口标志就是下一个语句的入口标志,所以只标志入口,下面展示将无标记程序P转化为标记程序PLP_{L}PL的过程:如果P不是复合语句(例如:P是x:=e(赋值语句),skip;wait,lock,原创 2020-11-07 20:23:55 · 1738 阅读 · 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 · 3148 阅读 · 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 · 2997 阅读 · 1 评论