Matthias Volk
7 years ago
6 changed files with 396 additions and 4 deletions
-
358lib/stormpy/examples/files/dtmc/die.jani
-
1src/core/input.cpp
-
11src/storage/expressions.cpp
-
2tests/core/test_modelchecking.py
-
6tests/core/test_parse.py
-
22tests/storage/test_model.py
@ -0,0 +1,358 @@ |
|||
{ |
|||
"jani-version": 1, |
|||
"name": "die.jani", |
|||
"type": "dtmc", |
|||
"features": [ "derived-operators" ], |
|||
"variables": [ |
|||
{ |
|||
"name": "s", |
|||
"type": { |
|||
"base": "int", |
|||
"kind": "bounded", |
|||
"lower-bound": 0, |
|||
"upper-bound": 7 |
|||
}, |
|||
"initial-value": 0 |
|||
}, |
|||
{ |
|||
"name": "d", |
|||
"type": { |
|||
"base": "int", |
|||
"kind": "bounded", |
|||
"lower-bound": 0, |
|||
"upper-bound": 6 |
|||
}, |
|||
"initial-value": 0 |
|||
} |
|||
], |
|||
"properties": [ |
|||
{ |
|||
"name": "Probability to throw a six", |
|||
"expression": { |
|||
"op": "filter", |
|||
"fun": "max", |
|||
"states": { "op": "initial" }, |
|||
"values": { |
|||
"op": "Pmin", |
|||
"exp": { |
|||
"op": "U", |
|||
"left": true, |
|||
"right": { |
|||
"op": "∧", |
|||
"left": { |
|||
"op": "=", |
|||
"left": "s", |
|||
"right": 7 |
|||
}, |
|||
"right": { |
|||
"op": "=", |
|||
"left": "d", |
|||
"right": 6 |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
"name": "Expected number of coin flips", |
|||
"expression": { |
|||
"op": "filter", |
|||
"fun": "max", |
|||
"states": { "op": "initial" }, |
|||
"values": { |
|||
"op": "Emin", |
|||
"accumulate": [ "steps" ], |
|||
"exp": 1, |
|||
"reach": { |
|||
"op": "=", |
|||
"left": "s", |
|||
"right": 7 |
|||
} |
|||
} |
|||
} |
|||
} |
|||
], |
|||
"automata": [ |
|||
{ |
|||
"name": "die", |
|||
"locations": [{ "name": "l" }], |
|||
"initial-locations": ["l"], |
|||
"edges": [ |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"op": "=", |
|||
"left": "s", |
|||
"right": 0 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 1 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 2 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 1 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 3 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 4 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 2 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 5 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 6 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 3 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 1 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 1 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 4 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 2 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 3 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 5 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 4 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 5 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 6 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 2 |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"probability": { "exp": 0.5 }, |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
}, |
|||
{ |
|||
"ref": "d", |
|||
"value": 6 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"location": "l", |
|||
"guard": { |
|||
"exp": { |
|||
"left": "s", |
|||
"op": "=", |
|||
"right": 7 |
|||
} |
|||
}, |
|||
"destinations": [ |
|||
{ |
|||
"location": "l", |
|||
"assignments": [ |
|||
{ |
|||
"ref": "s", |
|||
"value": 7 |
|||
} |
|||
] |
|||
} |
|||
] |
|||
} |
|||
] |
|||
|
|||
} |
|||
], |
|||
"system": { |
|||
"elements": [ { "automaton": "die" } ] |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue