SPIN
Menu
使い方
singularity shell --shell /bin/zsh /mnt/nvme0/singularity/teachers/kono/spin/spin.sif % ls Examples Book_1991/ a.out* eratosthenes.pml for_example.pml leader_trace.pml pan.c pathfinder.pml snoopy.pml wordcount.pml Exercises/ abp.pml ex_1f.pml.trail for_select_example.pml life.pml pan.h peterson.pml sort.pml LTL/ calculator.pml ex_3a.pml.trail hajek.pml loops.pml pan.m priorities.pml test_mtype.pml README_tests.txt cambridge.pml ex_3c.pml.trail hello.pml manna_pnueli.pml pan.p rtos1.pml welfare.pml _spin_nvr.tmp dtp.pml ex_4.pml.trail leader0.pml pan.b pan.t sat.pml werkplaats.pml
Spin のExamples を singularity の中からコピーする
% rsync -av /opt/Spin/Examples ~/srcその Examples を実行してみる
% spin Examples/for_example.pml 1: 1 12 1 (len(x)=3) 2: 0 10 0 (len(x)=3) 3: 0 10 0 (len(x)=3) 1 process createdこれは、単なる一回の実行
これをモデル検査するには、pan.c を生成してコンパイルして実行する
% spin -a Examples/pathfinder.pml % clang -O pan.c % ./a.outこれで、モデル検査が実行される
pan:1: invalid end state (at depth 4) pan: wrote pathfinder.pml.trail (Spin Version 6.5.2 -- 15 February 2024) Warning: Search not completed + Partial Order Reduction Full statespace search for: never claim - (none specified) assertion violations + acceptance cycles - (not selected) invalid end states + State-vector 28 byte, depth reached 5, errors: 1 5 states, stored 1 states, matched 6 transitions (= stored+matched) 2 atomic steps hash conflicts: 0 (resolved) Stats on memory usage (in Megabytes): 0.000 equivalent memory usage for states (stored*(State-vector + overhead)) 0.290 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 pan: elapsed time 0 seconds