dtmc const double p; module test // local state s : [0..4] init 0; [] s=0 -> p*(1-p) : (s'=1) + (1-p*(1-p)) : (s'=2); [] s=1 -> p : (s'=3) + (1-p) : (s'=4); [] s=2 -> 0.5*p : (s'=3) + (1-0.5*p) : (s'=4); [] s=3 -> 1 : (s'=3); [] s=4 -> 1 : (s'=4); endmodule // Dot output: //digraph model { // 0 [ label = "0: {init}" ]; // 1 [ label = "1: {}" ]; // 2 [ label = "2: {}" ]; // 3 [ label = "3: {}" ]; // 4 [ label = "4: {}" ]; // 0 -> 1 [ label= "(-1 * ((p) * (p+(-1))))/(1)" ]; // 0 -> 2 [ label= "(p^2+(-1)*p+1)/(1)" ]; // 1 -> 3 [ label= "(p)/(1)" ]; // 1 -> 4 [ label= "(1-p)/(1)" ]; // 2 -> 3 [ label= "(1-(p)/(2))" ]; // 2 -> 4 [ label= "(p)/(2)" ]; // 3 -> 3 [ label= "1" ]; // 4 -> 4 [ label= "1" ]; //}