나는 다음과 LTL 속성에 대한 간단한 한 Promela 모델을 확인 모델링하려고 : ltl ltl_0: (M[0]) U (M[1])
spin: couldn't find claim 2 (ignored)
0 :init ini M[0] = 1
Process Statement M[0] M[1]
0 :init ini M[1] = 0 1
여러 문장을 자주 실행해야한다는 공정성 제약 조건을 가진 프로그램에서 LTL 속성을 검증 할 수 있는지 궁금합니다. 예컨대 : bool no_flip;
bool flag;
active[1] proctype node()
{
do
:: skip -> progress00: no_flip = 1
:: skip -> progress
누군가 다음과 같은 코드를 사용하여 시간 제한을받는 이유를 설명 할 수 있다면 좋습니다. 나는 적어도 타임 아웃에 대한 생각을 이해한다고 생각하지만, do 루프를 사용하면 이것을 막을 수 있다고 생각했다. 모든 조언을 부탁드립니다. 당신이 SPIN 검증을 수행하고 문제가 이러한 '타임 아웃'으로, 발생하는 경우 mtype wantp = false;
mty
하는 Promela의 미전도 종족 오류가 나는 다음과 같은 오류가 proctype A()
{
byte cond1;
time = time + 1;
time = time + 2;
t[0] = 3;
a[0] = 2;
do
:: (a[0] == 0)->break;
:: else -> a[0] = a[0] - 1;
do
:: (t
새로 입문했습니다. 전이 시스템이 주어진 LTL 특성을 만족시키는 지 확인하고 싶습니다. 그러나 나는 promela에서 전이 시스템을 모델링하는 방법을 모른다. 예를 들어 아래에 표시된 전환 시스템에는 두 가지 상태가 있으며 초기 상태는 s0입니다. LTL 속성이 <> q인지 확인하는 방법. 아무도 promela 에서이 문제를 설명하는 방법을 알고 있습니까
그래서 내가 원하는 것은 프로세스 A가 프로세스 B에서 프로세스 D를 말하도록 메시지를 방송하는 것입니다. 어떻게 할 수 있습니까? 그렇게하는 올바른 방법은 A와 프로세스 B에서 D 사이의 채널을 가지고 다음과 같이 B에서 D로 각 프로세스에 동일한 메시지를 보내는 것 같습니다. chanA2B ! message
chanA2C ! message
chanA