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