In Promela/SPIN you can embed arbitrary C code including the specification of what C memory should be considered part of the exhaustively-explored state-space. Look into the language constructs: c_code, c_decl, c_state, c_track and c_expr. Note that it is usually trouble to include floating point numbers; even one, but certainly any...
random,reference,undefined,spin,promela
Seems like one or the other person stumbles upon this post, so I may as well make the answer that worked for me more visible. Go to you MinGW folder, search for stdlib.h (C:\MinGW\include) and type in (somewhere along the other #defines, e.g.: below #include <_mingw.h>): #define random rand #define...
This is because your LTL is translated into a claim with an assert statement. See the following automaton. So, without checking for assertion violations, no error can be found. (A possible explanation of different behaviors: previous versions of Spin might translate this differently, perhaps using accept instead of assert.)...
The error was because you can't assign a complete typedef variable in one go. I tried to do that by defining local variable pub p; and then after initializing all fields in p, I tried to assign in one go here pt.table[pt.last] = p. I managed to solve it like...
The verification can be stuck at line 37/40 for a couple of reasons. Your code just prior to then is: 32 if 33 :: J != myID -> ch[J] ! request, myID, myNum[myID]; 34 fi; This if statement will block forever if: J == myID or if ch[J] is full...