Browse Source
added testcase messageHack (messageHack.nm) to SmgRpatlModelCheckerTest.cpp
tempestpy_adaptions
added testcase messageHack (messageHack.nm) to SmgRpatlModelCheckerTest.cpp
tempestpy_adaptions
2 changed files with 117 additions and 0 deletions
-
52resources/examples/testfiles/smg/messageHack.nm
-
65src/test/storm/modelchecker/rpatl/smg/SmgRpatlModelCheckerTest.cpp
@ -0,0 +1,52 @@ |
|||
// PRISM Model of hacking a communication |
|||
// - Bob and Alice are chatting. |
|||
// - Eve wants to hack the messages from Bob. |
|||
// - The propability of successfull hacking is 0.05. |
|||
|
|||
smg |
|||
|
|||
player bob |
|||
[receiveB], [readWriteB], [sendB], [waitB] |
|||
endplayer |
|||
|
|||
player alice |
|||
[receiveA], [readWriteA], [sendA], [waitA] |
|||
endplayer |
|||
|
|||
player eve |
|||
[hackE], [waitE] |
|||
endplayer |
|||
|
|||
// 0 bob, 1 eve, 2 alice |
|||
global move : [0..2] init 0; |
|||
// |
|||
global bobSent : [0..1] init 0; |
|||
global hacked : [0..1] init 0; |
|||
|
|||
label "hacked" = hacked=1; |
|||
|
|||
module communication |
|||
bobReceived : [0..1] init 0; |
|||
bobWroteMessage : [0..1] init 1; |
|||
aliceReceived : [0..1] init 0; |
|||
aliceWroteMessage : [0..1] init 0; |
|||
aliceSent : [0..1] init 0; |
|||
|
|||
// bob's communication part |
|||
[receiveB] move=0 & aliceSent=1 -> (bobReceived'=1) & (aliceSent'=0) & (move'=1); |
|||
[readWriteB] move=0 & bobReceived=1 -> (bobWroteMessage'=1) & (bobReceived'=0) & (move'=1); |
|||
[sendB] move=0 & bobWroteMessage=1 -> (bobSent'=1) & (bobWroteMessage'=0) & (move'=1); |
|||
[waitB] move=0 & !(aliceSent=1 | bobReceived=1 | bobWroteMessage=1) -> (move'=1); |
|||
|
|||
// alice's communication part |
|||
[receiveA] move=2 & bobSent=1 -> (aliceReceived'=1) & (bobSent'=0) & (move'=0); |
|||
[readWriteA] move=2 & aliceReceived=1 -> (aliceWroteMessage'=1) & (aliceReceived'=0) & (move'=0); |
|||
[sendA] move=2 & aliceWroteMessage=1 -> (aliceSent'=1) & (aliceWroteMessage'=0) & (move'=0); |
|||
[waitA] move=2 & !(bobSent=1 | aliceReceived=1 | aliceWroteMessage=1) -> (move'=0); |
|||
|
|||
endmodule |
|||
|
|||
module hacking |
|||
[hackE] move=1 & bobSent=1 -> 0.05: (hacked'=1) & (move'=2) + 0.95: (move'=2); |
|||
[waitE] move=1 & !(bobSent=1) -> (move'=2); |
|||
endmodule |
Write
Preview
Loading…
Cancel
Save
Reference in new issue