使用SPIN工具验证LTL的步骤是什么?
我用Spin写了一个模型。我想检查一下模型上的LTL。 例如:使用SPIN工具验证LTL的步骤是什么?,spin,promela,Spin,Promela,我用Spin写了一个模型。我想检查一下模型上的LTL。 例如: ltl L1 {<>[]Working} verification result: spin -a foo.pml ltl ltl_0: [] (foo) gcc -DMEMLIM=1024 -O2 -DXUSAFE -o pan pan.c ./pan -m10000 -a -c1 Pid: 21462 (Spin Version 6.2.4 -- 21 November 2012) + Partial
ltl L1 {<>[]Working}
verification result:
spin -a foo.pml
ltl ltl_0: [] (foo)
gcc -DMEMLIM=1024 -O2 -DXUSAFE -o pan pan.c
./pan -m10000 -a -c1
Pid: 21462
(Spin Version 6.2.4 -- 21 November 2012)
+ Partial Order Reduction
...
pan: elapsed time 0 seconds
No errors found -- did you verify all claims?
ltl1{[]工作}
在验证窗口中,我选择选项“使用索赔”,然后单击“运行”:
ltl L1:([](工作))
gcc-DMEMLIM=1024-O2-DXUSAFE-w-o pan.c
现在我不知道下一步该怎么办。。。?
我试着用谷歌寻找答案,但是没有关于如何使用Spin的指南
foo.pml
spin-a foo.pml
gcc-o foo.exe pan.c
(Windows)foo.exe-a
使用
-a
运行可执行文件是关键,否则,不会检查LTL属性。在单击“运行”后的“验证”窗口中,应该有验证结果。它看起来像这样(例如):
你没有看到这些吗?或者您看到了一些东西但无法解释它?嘿,应该有一个选项可以从spin本身编译它。。但由于某些原因,Spin无法识别我的C编译器。。即使我更改了“环境变量”。@JuniorFasco“从spin本身编译它”是什么意思?@JuniorFasco现在确实存在一个命令
spin
调用gcc
并运行生成的pan
。请注意,此选项是新的,过去没有类似的选项。为什么不接受@Matte Schwerhoff?
verification result:
spin -a foo.pml
ltl ltl_0: [] (foo)
gcc -DMEMLIM=1024 -O2 -DXUSAFE -o pan pan.c
./pan -m10000 -a -c1
Pid: 21462
(Spin Version 6.2.4 -- 21 November 2012)
+ Partial Order Reduction
...
pan: elapsed time 0 seconds
No errors found -- did you verify all claims?