模型检验_精品文档.ppt

上传人:b****2 文档编号:2577412 上传时间:2022-11-02 格式:PPT 页数:52 大小:313.50KB
下载 相关 举报
模型检验_精品文档.ppt_第1页
第1页 / 共52页
模型检验_精品文档.ppt_第2页
第2页 / 共52页
模型检验_精品文档.ppt_第3页
第3页 / 共52页
模型检验_精品文档.ppt_第4页
第4页 / 共52页
模型检验_精品文档.ppt_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

模型检验_精品文档.ppt

《模型检验_精品文档.ppt》由会员分享,可在线阅读,更多相关《模型检验_精品文档.ppt(52页珍藏版)》请在冰豆网上搜索。

模型检验_精品文档.ppt

模型检验,钱思佑,模型检验概述时态逻辑TL线性TL分支时态逻辑(CTL)CTL模型检验,模型检验的定义,模型检验是一个自动化的验证工具,其可以很快的发现设计错误。

它的基本思想是用CTL公式表达系统的所期望性质,用有限状态机FSM表示系统的状态转移结构,通过遍历FSM来检验时态逻辑公式的正确性。

如果不能验证公式的正确性,则系统将给出一个反例,使用户发现公式不成立的原因。

Oneofthemajorapplicationsoftemporallogicsincomputerscienceistemporalspecificationandverificationofprograms.Thesemean:

tospecifybymeansoftemporalformulaethepropertieswhichaprogrammustsatisfy,andgivenaprogramtoverifyformallythatthespecificationsaremet.,运用时态逻辑证明程序所声明的性质的两种方法:

定理证明:

运用定理来严格的推理论证一个程序所声明的性质。

模型检验:

通过建立有限状态的模型结构来描述程序,并运用时态逻辑公式来证明它所声明的性质。

模型检验相对于定理证明的主要优点:

它是完全自动化的,不需要人的干预,而不象定理证明那样需要专业人员才能对其进行操作。

它不是一个一般性的定理证明方法,但是如果它一旦是可用的,那么它的适应性就会更好,而且也更有效。

计算复杂性相对较低。

当出错时能通过产生反例来告知用户使其发现公式不成立的原因.,形式化验证的基本概念,例:

组合电路的形式化验证输入:

a,b,c,d输出:

xx=f(a,b,c,d)电路行为是:

F=cdabdabdacda。

b。

c。

d。

则我们根据电路得出其输出为:

f(a,b,c,d)=(abc)d)于是证明电路的实现与它的规范问题就化为了利用布尔代数的定律证明函数F与f的等价性问题。

f=(abc)d)(ab)c)d(a(ab)abc)d(ca)ababc)d(cdabdabdacd)F,电路的结构描述必须要转化为形式逻辑的描述,行为描述已经是逻辑描述,不用转化了,然后再运用验证程序进行形式化验证。

行为描述(设计规范),结构描述(实现),规范逻辑,设计逻辑,翻译,检验程序,翻译,时态逻辑,时态逻辑是一种模态逻辑,其实也是模态逻辑的扩展,它涉及了含有时间信息的状态,表示系统的各个事件在时间上的次序。

Temporallogic与classicallogic的比较Temporallogic相对classicallogic加入了时序操作。

Classicallogicdescribesasnapshotoftheuniverse.Temporallogicpicturesamovieoftheuniverse.,TL的分类,线性的分支的,线性TL就是把系统的状态序列按时间处理成线性,对于它的每个状态,其下一个状态都是确定的。

而在分支TL中,对于其中某些状态,其后续状态是不确定的。

有几种可能,就有几个分支。

因为分支TL的状态图呈树状,所以称为CTL(ComputionalTreeLogic)。

线性TL,对于线性TL,因为状态是线性的,所以不需要考虑分支的情况。

其时序操作算子有:

AlwaysA表示“A总为真”。

当前状态SometimesA表示“有时A为真”。

当前状态,A,A,A,A,NextA表示“A在系统的下一个状态为真”当前状态UntilAB表示“A为真,直到出现B为真为止”当前状态,A,B,A,A,这些操作算子都是立足当前,表示将来的。

均不考虑过去。

其实对于每个状态,除了初始状态,都应该有其前续的状态,但是由于我们处理问题是常常不考虑过去的的状态,所以前续的状态没有的得到什么应用。

在Pri67中,Prior通过介绍基础的时序操作算子的特征,奠定了模型与时序逻辑之间的基础。

F:

“Sometimeinthefutureitwillbethecasethat”G;“Alwaysinthefutureitwillbethecasethat”P:

“Sometimeinthepastwasthecase”H:

“Alwaysinthepastwasthecase”Also:

sometimeE/alwaysA,结合时态操作算子表示自然语言中的时态,P:

现在完成时(hasbeen)PP:

过去完成时(hadbeen)FP:

willhavebeenPF:

wouldbePFP:

wouldhavebeenPrior的操作算子不能表示进行时态。

操作算子的复合

(一),A:

从当前状态开始,系统存在多个状态,A为真。

当前状态A:

系统存在一个状态,从那个状态开始,A总为真。

当前状态,A,A,A,A,A,A,操作算子的复合

(一),考虑:

A与A,A与A是否等价?

A:

从下一个状态开始,A总为真。

A:

从任何状态开始,在系统的下一个状态,A为真。

当前状态,A,A,A,操作算子的复合

(一),A:

存在某个状态,它的下一状态,A为真。

A:

从下一个状态开始,系统存在一个状态,A为真。

当前状态,A,操作算子的复合

(二),AB当前状态(AB)(AA)当前状态,A,B,A,A,操作算子的复合

(二),(AB).当前状态A(AB)系统存在一个状态是A为真,那么必将有一个状态,使A在此状态前一直为假,而B在此状态中为真。

即,若最终有状态使A为真,那么它一定在B为真之时或之后。

当前状态,A,B,B,A,B,B,A,A,时态逻辑公理,AAAAAAAAAAAA(AB)(AB)当前状态,A,B,AA(AA)(AA)当前状态ABB当前状态,A,A,A,A,A,A,A,A,B,AB协议的TL模型,AB协议使最早的端到端通信协议之一。

在AB协议中,包含有发送端和接收端两个实体。

发送端协议时态从发送方用户获取一个报文,将序号寄存器值赋给报文,然后向接收端协议时态发出报文,发送方发出报文之后启动超时时钟,等待认可报文。

如果在给定时间内未收到认可报文,则重发报文。

如果收到认可报文,其序号与发出报文序号相同,序号寄存器的内容加1模2,然后发送端实体从发送方用户获取下一个报文。

接收端协议实体在收到报文后,如果确认报文无错误,并且序号和序号寄存器的值相等,则向发送端实体发送认可报文,然后将报文递交给接受方用户,序号寄存器的内容加1模2。

a!

mia端A?

ma?

ackiB!

mb?

mib端b!

acki,通道,A用户,B用户,AB协议系统的假设,所用的通道使永远不会中断的全双工通道;报文在通道中可能丢失,报文内容可能有错,但是重复发送一个报文n次,最终此报文能被接收;接收方发出的认可报文不会丢失,不会出错,不会重复;传输介质不会产生额外报文,不会损坏报文;AB协议启动之后,发送方和接收方的序号寄存器初始化为0。

AB协议的TL描述分成四部分:

命题与谓词的表达;通道性质的描述;协议实体的描述;协议系统的描述。

命题与谓词的表达常量:

m0,m1表示序号为0,1的报文;any表示无序号的任意报文;ack0,ack1表示序号为0,1的认可报文;变量:

m代表m0,m1,any;ack代表ack0,ack1;seq代表0,1。

谓词:

at(a)开始一个协议行动或事件。

After(b)表示进行某个行动或事件之后。

Success(m)表示m报文已被成功发送。

通道性质的描述CH1after(a?

ack0)at(b!

ack0)CH2after(a?

ack1)at(b!

ack1)a接收到了认可报文ack0当且尽当b发出了认可报文ack0,且如果b发出了认可报文ack0,则a端一定能收到。

其恰当的描述了前面的假设“认可报文不丢失,不出错,不重复”;CH3after(b?

m0)at(a!

m0)CH4after(b?

m1)at(a!

m1)b重复收到报文,意味着a重复发出报文。

描述了假设“重复发送一个报文n次,最终此报文能被接收”.,协议实体的描述,发送方:

AS1(seq=0)after(A?

any)at(a!

m0)after(a?

ack0)AS2(seq=1)after(A?

any)at(a!

m1)after(a?

ack1)AS1的含义是;当发送端的序号寄存器的值为0,一旦从用户A处得到一个报文,它就向通道发送多个序号为0的报文,直到收到ack0为止;(AS2同AS1)AS3after(a?

ack0)success(m0)(seq=0seq=1)AS4after(a?

ack1)success(m1)(seq=1seq=0)AS3的含义是:

当a端接收到认可报文ack0,说明报文m0已经成功传送,并且seq从0变成了1。

(AS4同AS3),接收方:

AR1at(b!

ack0)after(b?

m0)AR2at(b!

ack1)after(b?

m1)AR1表示b发送认可报文ack0,则它将在多次接收报文m0(?

);(AR2同AR1)AR3at(b!

ack0)at(B!

m0)(seq=0seq=1)AR4at(b!

ack1)at(B!

m1)(seq=1seq=0)AR3表示b发送认可报文ack0,向用户B递交报文m0,以及将序号从0改为1是等价的。

(AR4同AR3),协议系统的描述,协议系统可以依靠前面的通道性质和协议实体的描述来推导。

由CH1,AS3和AR3推导得到P1:

CH1after(a?

ack0)at(b!

ack0)AS3after(a?

ack0)success(m0)(seq=0seq=1)AR3at(b!

ack0)at(B!

m0)(seq=0seq=1)推导:

at(B!

m0)at(b!

ack0)after(a?

ack0)success(m0)得出:

P1:

at(B!

m0)success(m0)P1表示接收端向其用户递交报文m0等价于报文m0已经成功发送。

同理,我们可以根据CH2,AS4,AR4得出P2:

at(B!

m1)success(m1);其他的推导:

由AR1和AR3得到X1:

at(B!

m0)after(b?

m0)由X1和CH3得到P3:

at(B!

m0)at(a!

m0)同理,可得到P4:

at(B!

m1)at(a!

m1)P3表示接收方向用户B递交报文m0说明发送方多次向通道发送报文m0;由CH1和AR3得到X2:

after(a?

ack0)at(B!

m0)由X2和AS1得到X3:

(seq=0)after(A?

any)at(a!

m0)at(B!

m0),由公理:

ABB和X3得到X4:

at(a!

m0)at(B!

m0)at(B!

m0)由X3和X4可得到P5:

(seq=0)after(A?

any)at(B!

m0)同理可得到P6:

(seq=1)after(A?

any)at(B!

m1)P5说明发送端一旦从用户获得一个报文并赋给一个序号0之后,报文m0总会到达接收端的用户。

(P6同P5),分支时态逻辑CTL,Kripke结构Kripke结构是一种数学结构,它实际上是状态转移图的一种变形,利用它可严格的定义分支时态逻辑的语义。

在分支时态逻辑中,时间结构是一种无限树结构,树中每条路径上的每个结点都与自然数有一一对应的关系,允许一个结点有无限多个后继结点,同时要求每个结点至少有一个后继,这种时间结构就称为Kripke结构。

Kripke结构的形式化定义,Kripke结构是一个五元组K,其中:

S是状态的有限集合;S0S是初始状态集合;RSS是转移关系;AP是所以原子命题和它们的否定命题的集合;L:

S2AP是标记函数,该函数把状态sS映射为在S中为真的原子命题集合,该集合是AP的一个子集。

对于一个状态没有包含的原子命题在该状态的值不确定。

s0s1s2一个kripke结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1