一般答覆
这是一个
警告
告诉你
有些状态无法访问
由于从未进行的转换。
一般来说,这是
不
一
错误
你建模的每一个例程
,并检查您是否希望它们都无法访问。
i、 e.如果模型不正确,则说明预期行为
.
笔记
您可以使用标签
结束:
在标记有效终止状态的特定代码行之前,
e、 g.当您的程序未终止时
here
.
具体答案
我无法复制您的输出。特别是,通过运行
~$ spin -a file.pml
~$ gcc pan.c
~$ ./a.out -a
我得到了与您不同的以下输出:
(Spin Version 6.4.3 -- 16 December 2014)
+ Partial Order Reduction
Full statespace search for:
never claim + (ltl_0)
assertion violations + (if within scope of claim)
acceptance cycles + (fairness disabled)
invalid end states - (disabled by never claim)
State-vector 64 byte, depth reached 47, errors: 0
41 states, stored (58 visited)
18 states, matched
76 transitions (= visited+matched)
0 atomic steps
hash conflicts: 0 (resolved)
Stats on memory usage (in Megabytes):
0.004 equivalent memory usage for states (stored*(State-vector + overhead))
0.288 actual memory usage for states
128.000 memory used for hash table (-w24)
0.534 memory used for DFS stack (-m10000)
128.730 total actual memory usage
unreached in proctype P
(0 of 29 states)
unreached in init
(0 of 3 states)
unreached in claim ltl_0
_spin_nvr.tmp:10, state 13, "-end-"
(1 of 13 states)
pan: elapsed time 0 seconds
特别是,我缺少关于
班长
过程就我而言,从源代码来看,我得到的警告都没有问题。
快速旋转
或者你的问题中没有包含完整的源代码。在后一种情况下,您可以编辑您的问题并添加代码吗?之后我会更新我的答案。
:在评论中,您会问以下消息是什么意思:
“在权利要求ltl_0_spin_nvr中未达到。tmp:10,状态13,”-结束-”
".
如果你打开文件
_spin_nvr.tmp
,您可以看到
波美拉
代码,对应于
Bchi自动机
它只接受所有违反ltl属性的执行
[((等待->>(cs)))
.
never ltl_0 { /* !([] ((! ((P[1]@WAIT))) || (<> ((P[1]@CRITICAL))))) */
T0_init:
do
:: (! ((! ((P[1]@WAIT)))) && ! (((P[1]@CRITICAL)))) -> goto accept_S4
:: (1) -> goto T0_init
od;
accept_S4:
do
:: (! (((P[1]@CRITICAL)))) -> goto accept_S4
od;
}
该消息只是警告您,此代码的执行永远不会到达最后一个结束括号
(国家
“-为此—
),这意味着该过程永远不会终止。