使用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

我用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 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?