Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 验证Dekker';基于NuSMV的s互斥算法_Algorithm_Verification_Mutual Exclusion_Model Checking_Nusmv - Fatal编程技术网

Algorithm 验证Dekker';基于NuSMV的s互斥算法

Algorithm 验证Dekker';基于NuSMV的s互斥算法,algorithm,verification,mutual-exclusion,model-checking,nusmv,Algorithm,Verification,Mutual Exclusion,Model Checking,Nusmv,我使用NuSMV验证Dekker算法,代码如下: MODULE main VAR b1 : {true, false}; b2 : {true, false}; k : {1, 2}; pr1 : process proc(k, b1, b2, 1); pr2 : process proc(k, b2, b1, 2); ASSIGN init(b1) := false; init(b2) := false; init(k) := {1, 2}; MODULE proc(k, bi, bj, i

我使用NuSMV验证Dekker算法,代码如下:

MODULE main
VAR
b1 : {true, false};
b2 : {true, false};
k : {1, 2};
pr1 : process proc(k, b1, b2, 1);
pr2 : process proc(k, b2, b1, 2);
ASSIGN
init(b1) := false;
init(b2) := false;
init(k) := {1, 2};

MODULE proc(k, bi, bj, i)
VAR
state : {noncritical, test_bj, ftest_k,
stest_k, critical};
DEFINE
j :=
case
i = 1 : 2;
i = 2 : 1;
esac;
ASSIGN
init(state) := noncritical;
next(state) :=
case
state = noncritical : {noncritical, test_bj};
state = test_bj & (bj = false) : critical;
state = test_bj & (bj = true) : ftest_k;
state = ftest_k & (k = j) : stest_k;
state = ftest_k & (k != j) : test_bj;
state = stest_k & (k = j) : stest_k;
state = stest_k & (k !=j) : test_bj;
state = critical : {critical, noncritical};
esac;
next(bi) :=
case
state = noncritical &
next(state) = test_bj : true;
state = ftest_k & (k = j) : false;
state = stest_k & (k != j) : true;
state = critical &
next(state) = noncritical : false;
1 : bi;
esac;
next(k) :=
case
state = critical &
next(state) = noncritical : j;
1 : k;
esac;

FAIRNESS
running
FAIRNESS
!(state = critical)
FAIRNESS
!(state = noncritical)
但反馈与图片类似,它显示非法的左操作数类型“:”。它应该是布尔值。我不知道为什么。请帮帮我。。。代码怎么了 改变

1 : whatever

这将修复语法错误

我希望这对你有帮助

TRUE : whatever