I wrote a very simple model for EPR pair measurement or Bell states. It is as follows:
dtmc
module EPRpair
EPRstate : [1..4];
[initi] true -> 1/4 : (EPRstate'=1) + 1/4 : (EPRstate'=2) + 1/4 : (EPRstate'=3) + 1/4 : (EPRstate'=4);
[firstmeas] true -> (EPRstate' = EPRstate);
[secondmeas] true -> (EPRstate' = EPRstate);
endmodule
module Observer
comp_state : [0..2] init 0;
outcome1 : [0..2];
outcome2 : [0..2]; //value of 2 represents an unknown state.
[initi] (comp_state=0) -> (comp_state'=1);
[firstmeas] (comp_state=1) -> 1/2 : (outcome1'=0) & (comp_state'=2) + 1/2 : (outcome1'=1) & (comp_state'=2);
[secondmeas] (comp_state=2) & ((EPRstate=1) | (EPRstate=2)) -> (outcome2'=1-outcome1) & (comp_state'=2);
[secondmeas] (comp_state=2) & ((EPRstate=3) | (EPRstate=4)) -> (outcome2'=outcome1) & (comp_state'=2);
endmodule
However when I try to verify the model with property P=? [ ((comp_state=2)&(outcome1=1))=>((comp_state=2)&(outcome2=1)) ] ,
It gave me can error stating:
Probabilities in command 3 of module "Observer" sum to less than one (e.g. 0.0) for some states. Perhaps some of the updates give out-of-range values. One possible solution is to strengthen the guard (line 19, column 1).
How do I resolve this.
Thanks.