The invention discloses a refined counterexample system based on model detection applied to an automatic vending machine system, which includes a shortest path building module, a shortest path event processing module, an event sequence detection module, and a non shortest path event processing module. Through the classification and processing of several modules to the set of counterexamples, the counterexample can be analyzed whether the event itself and the sequence between events are The nature to be detected is not tenable in the system, and it is necessary to simplify the counterexample set, find out the shortest counterexample path, and mark the difference between the non shortest counterexample path and the shortest counterexample path. The system provided by the invention is used for the system that needs to conduct property verification. The system generates the set of counterexample paths that do not meet the property after model detection, and further through the set of counterexample paths Processing can further refine the set of counterexample paths, which is helpful to analyze the reasons why the system does not meet the nature in the later stage, and has great application significance to the system of model detection in reality.
【技术实现步骤摘要】
应用于自动售卖机系统的基于模型检测的反例精化系统
本专利技术涉及模型检验领域,涉及应用于自动售卖机系统的基于模型检测的反例精化系统。
技术介绍
在模型检测过程中,经过验证会产生反例,反例往往反映了不满足规格(属性、待验证的性质)的路径,不仅仅说明了不满足该规格,还需要对反例进行分析,对反例进行分析可以分析不满足规格的原因,对系统进行改进,但是现实中产生的反例很繁琐,直接从该反例进行分析很难,因此,需要对反例进行进一步的处理,精化反例,缩小反例的范围,并对反例中包含的元素进行进一步的处理。
技术实现思路
本专利技术设计了应用于自动售卖机系统的基于模型检测的反例精化系统,包括最短路径构建模块、最短路径事件处理模块、事件顺序检测模块和非最短路径事件处理模块;其中,所述最短路径构建模块负责从模型检测产生的反例集合中提取并构建自动售卖机系统模型的最短路径集合和非最短路径集合;所述最短路径事件处理模块负责处理最短路径集合以及非最短路径集合,包括:检测最短路径集合中包含的每一条路径是否为非最短路径集合中 ...
【技术保护点】
1.应用于自动售卖机系统的基于模型检测的反例精化系统,其特征在于,包括最短路径构建模块、最短路径事件处理模块、事件顺序检测模块和非最短路径事件处理模块;/n其中,所述最短路径构建模块负责从模型检测产生的反例集合中提取并构建自动售卖机系统模型的最短路径集合和非最短路径集合;/n所述最短路径事件处理模块负责处理最短路径集合以及非最短路径集合,包括:检测最短路径集合中包含的每一条路径是否为非最短路径集合中任意一条路径的真子集,并且最短路径集合中包含的每一条路径中事件是否与非最短路径集合中任意一条路径中事件顺序一致;/n所述事件顺序检测模块包括一个输入端口和一个输出端口,通过输入端 ...
【技术特征摘要】
1.应用于自动售卖机系统的基于模型检测的反例精化系统,其特征在于,包括最短路径构建模块、最短路径事件处理模块、事件顺序检测模块和非最短路径事件处理模块;
其中,所述最短路径构建模块负责从模型检测产生的反例集合中提取并构建自动售卖机系统模型的最短路径集合和非最短路径集合;
所述最短路径事件处理模块负责处理最短路径集合以及非最短路径集合,包括:检测最短路径集合中包含的每一条路径是否为非最短路径集合中任意一条路径的真子集,并且最短路径集合中包含的每一条路径中事件是否与非最短路径集合中任意一条路径中事件顺序一致;
所述事件顺序检测模块包括一个输入端口和一个输出端口,通过输入端口输入需要检测的路径集合,输出端口输出已标记过顺序相关的需要检测的路径集合,以对需要检测的路径集合中包含的事件标注其是否顺序相关;
所述非最短路径事件处理模块负责对非最短路径集合进行处理,包括:将非最短路径集合与最短路径集合中路径进行比较,并标记是否顺序相关,将符合条件的非最短路径加入到最短路径集合中,并对最短路径集合以及非最短路径集合进行更新。
2.根据权利要求1所述的系统,其特征在于,系统执行如下步骤:
步骤1,所述最短路径构建模块对自动售卖机系统建立系统模型,得到最短路径集合Pd和非最短路径集合P′d;
步骤2,所述最短路径事件处理模块对最短路径集合Pd和非最短路径集合P′d分别进行处理:所述最短路径事件处理模块依次从最短路径集合Pd取出其中包含的每条路径用于比较,设定取出的第k条路径表示为依次为最短路径集合Pd中的路径顺序编号,k表示取出的路径在最短路径集合Pd中的编号,为正整数,取出时从编号k=1的最短路径开始,顺序递增取出,当取出一条路径时,同时将非最短路径集合P′d的所有路径依次取出与其进行比较,设从非最短路径集合P′d中取出比较的第n条路径为L'n,依次为最短路径集合Pd中的路径顺序编号,设n为从非最短路径集合P′d取出比较的路径的编号,取出时从编号n=1的最短路径开始,顺序递增取出;比较路径与路径L'n,判断路径是否为路径L'n的子集,并且路径L'n中事件是否与路径中事件顺序一致;其中,k的值最大为最短路径集合Pd中包含的路径条数,n的值最大为非最短路径集合P′d中包含的路径条数;
步骤3,所述事件顺序检测模块通过输入端口输入需要检测的路径集合,需要检测的路径集合为最短路径集合Pd,将需要检测的路径集合中所有路径依次一一提取,设需要检测的路径集合中当前提取的路径为路径L1,先设定路径L1中包含的所有事件两两之间为顺序相关的,随后,将最短路径集合Pd中除了路径L1之外的路径分别一一提取,一一与路径L1进行比较,以判断路径L1中包含的事件之间是否顺序相关;
步骤4,所述非最短路径事件处理模块对非最短路径集合P′d进行检测。
3.根据权利要求2所述的系统,其特征在于,步骤1包括:
步骤1-1,最短路径构建模块对自动售卖机系统建立系统模型,将系统模型中所有路径提取出来,得到路径集合P;
步骤1-2,最短路径构建模块在系统模型之上进行模型检测,将路径集合P分为两类:反例集合P1和非反例集合P2,即P=P1∪P2;其中反例集合P1包含所有经由模型检测产生的反例路径,非反例集合P2则包含路径集合P中除了反例路径之外的所有其他路径;
步骤1-3,最短路径构建模块对反例集合P1中所有路径进行一一检测,检测其是否为最短路径,并且将反例集合P1中包含的所有最短路径加入到最短路径集合Pd中,将反例集合P1中除了最短路径之外的所有其他路径加入到非最短路径集合P′d中,即P1=Pd∪P′d。
4.根据权利要求3所述的系统,其特征在于,步骤1-3包括如下步骤:
步骤1-3-1,初始时最短路径集合Pd为空集,一一检测反例集合P1中的路径,设反例集合P1P1中正在检测的路径为当前检测路径,将反例集合P1中所述当前检测路径都与反例集合P1中除了当前检测路径之外的其他路径一一比较,检测当前检测路径是否包含反例集合P1中除了当前检测路径之外的任意一条路径,或者当前检测路径是否与反例集合P1中除了当前检测路径之外的任意一条路径完全一样,如果满足任一个条件,则当前检测路径不为最短路径,否则将当前检测路径加入到最短路径集合Pd中,将最短路径集合Pd中的路径一一设为当前检测路径进行检测,直到最短路径集合Pd中所有路径都经过检测。
5.根据权利要求4所述的系统,其特征在于,步骤1-3-1中,检测当前检测路径是否包含反例集合P1中除了当前检测路径之外的任意一条路径,或者当前检测路径是否与反例集合P1中除了当前检测路径之外的任意一条路径完全一样的过程为:
步骤1-3-1-1,最短路径构建模块将反例集合P1中除了当前检测路径之外的每一条路径中包含的事件提取,提取到一个事件集合中,将提取的事件集合表示为Event_P(i),i为提取的路径在反例集合P1中的编号,反例集合P1中所有路径都从1开始顺序编号,编号为正整数,且大于等于1,将当前检测路径中包含的事件提取,提取的事件集合表示为Event_P(j),j为当前检测路径在反例集合P1中路径的编号,为正整数,并且j≠i;反例集合P1中路径的编号由用户按顺序编号,其中,Event_P表示事件集合,i,j为变量,i和j的值不断变化,由步骤1-3-1-2检测的过程决定,比较的是路径编号;
步骤1-3-1-2,对当前检测路径都进行判断过程,从i=1开始,j≠i,依次进行如下判断:
如果表示事件集合Event_P(i)中的事件都在事件集合Event_P(j)中,并且Event_P(i)包含的事件个数小于Event_P(j)包含的事件个数,则判断当前检测路径包含了反例集合P1中除了当前检测路径之外的任意一条路径;
如果Event_P(i)=Event_P(j),表示事件集合Event_P(j)与事件集合Event_P(i)为同一个事件集合,这两个事件集合相等,并且Event_P(i)包含的事件个数等于Event_P(j)包含的事件个数,则判断当前检测路径等于反例集合P1中除了当前检测路径之外的任意一条路径;
如果当前检测路径包含了反例集合P1中除了当前检测路径之外的任意一条路径,或当前检测路径又等于反例集合P1中除了当前检测路径之外的任意一条路径,将当前检测路径作为非最短路径加入非最短路径集合P′d中;
步骤1-3-1-3,在步骤1-3-1-2中的判断完毕后,如果当前检测路径已作为非最短路径加入到非最短路径集合P′d中,则进行反例集合P1中的下一条路径判断,将i更新为i+1,当前检测路径为反例集合P1中编号为i的路径,如果i小于等于反例集合P1中路径的个数,继续进行步骤1-3-1-2判断过程;
当i大于反例集合P1中路径的个数,停止步骤1-3-1-2的判断过程,若此时停止判断过程时,当前检测路径不为非最短路径,则当前检测路径再作为最短路径加入到最短路径集合Pd中;取反例集合P1中下一条路径作为当前检测路径,重复步骤1-3-1-1,直到反例集合P1中所有路径都经过判断,得到最短路径集合Pd和非最短路径集合P′d。
6.根据权利要求5所述的系统,其特征在于,步骤2具体包括如下步骤:
步骤2-1,所述最短路径事件处理模块判断路径中包含事件的数量是否小于等于路径L'n中包含的事件数量,判断的方法为:分别对路径路径L'n中包含的事件进行计数,比较两者的数量大小,当路径中包含事件的数量小于等于路径L'n中包含的事件数量,再执行步骤2-2,并且分别对路径路径L'n中包含的事件进行编号,对路径中事件编号的顺序为按照路径中事件有序序列中事件先后顺序发生的顺序分别编号,则路径中m个事件按时间发生先后顺序依次记为m为路径中包含的事件个数;对路径L'n中事件编号的顺序为按照路径L'n中事件有序序列中事件先后顺序发生的顺序分别编号,则路径L'n中l个事件按时间发生先后顺序依次记为l为路径L'n中包含的事件个数;其中,m≤l;
步骤2-2,最短路径事件处理模块从路径中的事件有序序列中先后顺序提取其中的事件,即按顺序提取表示的事件,依次在路径L'n中寻找与路径中包含的事件相同的事件,如果能在路径L'n中寻找到所有与路径中包含的事件相同的事件,再进行提取,提取的顺序为按照事件的顺序提取相应的事件,提取其代表的事件在路径L'n中的编号,按照提取的顺序组成编号序列,把编号序列的下标提取,组成下标序列,下标序列中所有下标必须满足升序排列的条件,则路径为路径L'n的子集,并且路径L'n中事件与路径中事件顺序一致,继续步骤2-3,如果不能在路径L'n中寻找到所有与路径中包含的事件相同的事件,则直接执行步骤3;
步骤2-3,如果路径为路径L'n的子集,并且路径L'n中事件与路径中事件顺序一致,所述最短路径事件处理模块将路径中包含的事件提取到事件有序集合OE1中,同时将路径L'n中包含事件提取到事件有序集合OE2中,将事件有序集合OE2与一个布尔事件集合Bn对应,布尔事件集合Bn包含l个布尔事件,第一个至第l个布尔事件依次记为布尔事件只有true、false两个值,用以表示路径L'n中包含的对应事件是否被包含在路径中;布尔事件的所有值初始被设置为真值true,布尔事件分别与路径L'n中的事件一一对应,即第一个布尔事件与第一个事件相对应,当布尔事件的值为true,表示路径L'n中包含的第一个事件被包含在路径中,当布尔事件的值为false,表示路径L'n中包含的第一个事件不被包含在路径中;依次类推,第l个布尔事件与第l个事件相对应,当布尔事件的值为true,表示路径L'n中包含的第l个事件被包含在路径中,当布尔事件的值为false,表示路径L'n中包含的第l个事件不被包含在路径中,即布尔事件与路径L'n中被编号的事件的下标相等,则两者存在对应关系;为将在事件有序集合OE2而不在事件有序集合OE1中的事件对应的布尔事件的值设置为假值false,与被设置为false的布尔事件下标相同的在路径L'n中的事件取反,路径L'n中包含的事件在事件有序集合OE2中而不在事件有序集合OE1中的事件取反,得到的路径命名为并建立路径对其中,事件有序集合为事件按其发生时间先后顺序排列的事件集合。
7.根据权利要求6所述的系统,其特征在于,步骤3包括如下步骤:
步骤3-1,所述事件顺序检测模块从需要检测的路径集合即所述最短路径集合Pd中一一提取路径进行比较,设当前提取的路径为L1,接着,从所述最短路径集合Pd中一一提取除了路径L1以外的路径以进行比较,设所述最短路径集合Pd中提取的与路径L1进行比较的路径为L2,根据每次提取比较的路径不同,L2代表的路径也不同,将路径L1中包含的事件提取到事件有序集合OE3,同时将路径L2中包含的事件提取到事件有序集合OE4,在事件有序集合OE3、事件有序集合OE4中的事件按照事件发生的时间先后顺序排列,对比事件有序集合OE3、事件有序集合OE4中的事件是否完全相等并且排列的顺序也完全一致,如果是,则路径L1、路径L2为同一条路径,将路径L2从最短路径集合Pd中去除;
步骤3-2,比较事件有序集合OE3与事件有序集合OE4中包含的事件,把相同的事件分别提取到事件有序集合OE8以及事件有序集合OE9中,其中,事件有序集合OE8中事件排列的顺序与事件有序集合OE3中相同事件排列的顺序一致,事件有序集合OE9中事件排列的顺序与事件有序集合OE4中相同事件排列的顺序一致;从事件有序集合OE8提取所有事件有序对,为每一个事件有序对配对一个顺序标签,顺序标签为一个布尔变量,当顺序标签的值为真值true,表示其配对的事件有序对为顺序相关的,当顺序标签的值为假值false,表示其配对的事件有序对不是顺序相关的;初始时,置所有的顺序标签为真值true,具体过程如下:
所述事件有序对包含事件一、事件二,事件有序对被表示为<Event1,Event2>,表示事件一发生在事件二之前,其中事件一被表示为Event1,事件二被表示为Event2;Event1、Event2同时表示事件变量,用于代表不同的事件;从事件有序集合OE8中按照其中排列的先后顺序依次提取一个事件到Event1,提取后再从事件有序集合OE8中排列在事件Event1后的事件中依次提取一个事件到Event2,完成一个事件有序对<Event1,Event2>后,从事件有序集合OE9按照事件排列先后的顺序寻找与Event2代表的事件相同的事件,其后,在事件有序集合OE9中寻找排列Event2代表事件相同的事件,如果找到后,并且Event1代表相同的事件在事件有序集合OE9中排列在与Event2代表事件相同的事件之后,如果相等,置事件有序对<Ev...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。