Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
FragmentSpecification.cpp
Go to the documentation of this file.
2
3#include <iostream>
5
6namespace storm {
7namespace logic {
8
11
12 propositional.setBooleanLiteralFormulasAllowed(true);
13 propositional.setBinaryBooleanStateFormulasAllowed(true);
14 propositional.setUnaryBooleanStateFormulasAllowed(true);
15 propositional.setAtomicExpressionFormulasAllowed(true);
16 propositional.setAtomicLabelFormulasAllowed(true);
17
18 return propositional;
19}
20
23
24 reachability.setProbabilityOperatorsAllowed(true);
25 reachability.setUntilFormulasAllowed(true);
26 reachability.setReachabilityProbabilityFormulasAllowed(true);
27 reachability.setOperatorAtTopLevelRequired(true);
28 reachability.setNestedOperatorsAllowed(false);
29
30 return reachability;
31}
32
35
36 pctl.setProbabilityOperatorsAllowed(true);
37 pctl.setGloballyFormulasAllowed(true);
38 pctl.setReachabilityProbabilityFormulasAllowed(true);
39 pctl.setNextFormulasAllowed(true);
40 pctl.setUntilFormulasAllowed(true);
41 pctl.setBoundedUntilFormulasAllowed(true);
42 pctl.setStepBoundedUntilFormulasAllowed(true);
43 pctl.setTimeBoundedUntilFormulasAllowed(true);
44
45 return pctl;
46}
47
50
51 pctlstar.setBinaryBooleanPathFormulasAllowed(true);
52 pctlstar.setUnaryBooleanPathFormulasAllowed(true);
53 pctlstar.setNestedOperatorsAllowed(true);
54 pctlstar.setNestedPathFormulasAllowed(true);
55 pctlstar.setHOAPathFormulasAllowed(true);
56
57 return pctlstar;
58}
59
62
63 flatPctl.setNestedOperatorsAllowed(false);
64
65 return flatPctl;
66}
67
70
71 // TODO: Only allow OperatorFormulas when they are inside of a GameFormula?
72 // TODO: Require that operator formulas are required at the top level of a GameFormula?
73 rpatl.setGameFormulasAllowed(true);
74 rpatl.setRewardOperatorsAllowed(true);
75 rpatl.setLongRunAverageRewardFormulasAllowed(true);
76 rpatl.setLongRunAverageOperatorsAllowed(true);
77
78 return rpatl;
79}
80
83
84 prctl.setRewardOperatorsAllowed(true);
85 prctl.setCumulativeRewardFormulasAllowed(true);
86 prctl.setInstantaneousFormulasAllowed(true);
87 prctl.setReachabilityRewardFormulasAllowed(true);
88 prctl.setLongRunAverageOperatorsAllowed(true);
89 prctl.setStepBoundedCumulativeRewardFormulasAllowed(true);
90 prctl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
91
92 return prctl;
93}
94
97
98 prctlstar.setRewardOperatorsAllowed(true);
99 prctlstar.setCumulativeRewardFormulasAllowed(true);
100 prctlstar.setInstantaneousFormulasAllowed(true);
101 prctlstar.setReachabilityRewardFormulasAllowed(true);
102 prctlstar.setLongRunAverageOperatorsAllowed(true);
103 prctlstar.setStepBoundedCumulativeRewardFormulasAllowed(true);
104 prctlstar.setTimeBoundedCumulativeRewardFormulasAllowed(true);
105
106 return prctlstar;
107}
108
111
112 csl.setTimeBoundedUntilFormulasAllowed(true);
113
114 return csl;
115}
116
119
120 cslstar.setBinaryBooleanPathFormulasAllowed(true);
121 cslstar.setUnaryBooleanPathFormulasAllowed(true);
122 cslstar.setNestedOperatorsAllowed(true);
123 cslstar.setNestedPathFormulasAllowed(true);
124 cslstar.setHOAPathFormulasAllowed(true);
125
126 return cslstar;
127}
128
131
132 csrl.setRewardOperatorsAllowed(true);
133 csrl.setCumulativeRewardFormulasAllowed(true);
134 csrl.setInstantaneousFormulasAllowed(true);
135 csrl.setReachabilityRewardFormulasAllowed(true);
136 csrl.setLongRunAverageOperatorsAllowed(true);
137 csrl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
138
139 return csrl;
140}
141
144
145 csrlstar.setRewardOperatorsAllowed(true);
146 csrlstar.setCumulativeRewardFormulasAllowed(true);
147 csrlstar.setInstantaneousFormulasAllowed(true);
148 csrlstar.setReachabilityRewardFormulasAllowed(true);
149 csrlstar.setLongRunAverageOperatorsAllowed(true);
150 csrlstar.setTimeBoundedCumulativeRewardFormulasAllowed(true);
151
152 return csrlstar;
153}
154
157
158 multiObjective.setMultiObjectiveFormulasAllowed(true);
159 multiObjective.setMultiObjectiveFormulaAtTopLevelRequired(true);
160 multiObjective.setNestedMultiObjectiveFormulasAllowed(false);
161 multiObjective.setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(true);
162 multiObjective.setNestedOperatorsInsideMultiObjectiveFormulasAllowed(false);
163 multiObjective.setProbabilityOperatorsAllowed(true);
164 multiObjective.setUntilFormulasAllowed(true);
165 multiObjective.setGloballyFormulasAllowed(true);
166 multiObjective.setReachabilityProbabilityFormulasAllowed(true);
167 multiObjective.setRewardOperatorsAllowed(true);
168 multiObjective.setReachabilityRewardFormulasAllowed(true);
169 multiObjective.setTotalRewardFormulasAllowed(true);
170 multiObjective.setBoundedUntilFormulasAllowed(true);
171 multiObjective.setStepBoundedUntilFormulasAllowed(true);
172 multiObjective.setTimeBoundedUntilFormulasAllowed(true);
173 multiObjective.setLongRunAverageOperatorsAllowed(true);
174 multiObjective.setLongRunAverageRewardFormulasAllowed(true);
175
176 return multiObjective;
177}
178
181
182 lexObjective.setMultiObjectiveFormulasAllowed(true);
183 lexObjective.setMultiObjectiveFormulaAtTopLevelRequired(true);
184 lexObjective.setNestedMultiObjectiveFormulasAllowed(false);
185 lexObjective.setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(true);
186 lexObjective.setNestedOperatorsInsideMultiObjectiveFormulasAllowed(false);
187 lexObjective.setProbabilityOperatorsAllowed(true);
188 lexObjective.setUntilFormulasAllowed(true);
189 lexObjective.setGloballyFormulasAllowed(true);
190 lexObjective.setReachabilityProbabilityFormulasAllowed(true);
191 lexObjective.setRewardOperatorsAllowed(true);
192 lexObjective.setReachabilityRewardFormulasAllowed(true);
193 lexObjective.setTotalRewardFormulasAllowed(true);
194 lexObjective.setBoundedUntilFormulasAllowed(true);
195 lexObjective.setStepBoundedUntilFormulasAllowed(true);
196 lexObjective.setTimeBoundedUntilFormulasAllowed(true);
197 lexObjective.setLongRunAverageOperatorsAllowed(true);
198 lexObjective.setLongRunAverageRewardFormulasAllowed(true);
199
200 lexObjective.setCumulativeRewardFormulasAllowed(true);
201 lexObjective.setInstantaneousFormulasAllowed(true);
202 lexObjective.setStepBoundedCumulativeRewardFormulasAllowed(true);
203 lexObjective.setTimeBoundedCumulativeRewardFormulasAllowed(true);
204 lexObjective.setBinaryBooleanPathFormulasAllowed(true);
205 lexObjective.setUnaryBooleanPathFormulasAllowed(true);
206 lexObjective.setNestedOperatorsAllowed(true);
207 lexObjective.setNestedPathFormulasAllowed(true);
208 lexObjective.setHOAPathFormulasAllowed(true);
209 lexObjective.setProbabilityOperatorsAllowed(true);
210 lexObjective.setGloballyFormulasAllowed(true);
211 lexObjective.setReachabilityProbabilityFormulasAllowed(true);
212 lexObjective.setNextFormulasAllowed(true);
213 lexObjective.setUntilFormulasAllowed(true);
214 lexObjective.setBoundedUntilFormulasAllowed(true);
215 lexObjective.setStepBoundedUntilFormulasAllowed(true);
216 lexObjective.setTimeBoundedUntilFormulasAllowed(true);
217
218 return lexObjective;
219}
220
223
224 quantiles.setQuantileFormulasAllowed(true);
225 quantiles.setQuantileFormulaAtTopLevelRequired(true);
226 quantiles.setProbabilityOperatorsAllowed(true);
227 quantiles.setRewardOperatorsAllowed(true);
228 quantiles.setBoundedUntilFormulasAllowed(true);
229 quantiles.setStepBoundedUntilFormulasAllowed(true);
230 quantiles.setTimeBoundedUntilFormulasAllowed(true);
231 quantiles.setRewardBoundedUntilFormulasAllowed(true);
232 quantiles.setStepBoundedCumulativeRewardFormulasAllowed(true);
233 quantiles.setTimeBoundedCumulativeRewardFormulasAllowed(true);
234 quantiles.setRewardBoundedCumulativeRewardFormulasAllowed(true);
235 quantiles.setCumulativeRewardFormulasAllowed(true);
236 quantiles.setMultiDimensionalBoundedUntilFormulasAllowed(true);
237 quantiles.setMultiDimensionalCumulativeRewardFormulasAllowed(true);
238
239 return quantiles;
240}
241
243 probabilityOperator = false;
244 rewardOperator = false;
245 expectedTimeOperator = false;
246 longRunAverageOperator = false;
247
248 multiObjectiveFormula = false;
249 quantileFormula = false;
250
251 globallyFormula = false;
252 reachabilityProbabilityFormula = false;
253 nextFormula = false;
254 untilFormula = false;
255 boundedUntilFormula = false;
256 weakUntilFormula = false;
257 releaseFormula = false;
258 hoaPathFormula = false;
259
260 atomicExpressionFormula = false;
261 atomicLabelFormula = false;
262 booleanLiteralFormula = false;
263 unaryBooleanStateFormula = false;
264 binaryBooleanStateFormula = false;
265 unaryBooleanPathFormula = false;
266 binaryBooleanPathFormula = false;
267
268 cumulativeRewardFormula = false;
269 instantaneousRewardFormula = false;
270 reachabilityRewardFormula = false;
271 longRunAverageRewardFormula = false;
272 totalRewardFormula = false;
273
274 conditionalProbabilityFormula = false;
275 conditionalRewardFormula = false;
276
277 reachabilityTimeFormula = false;
278
279 gameFormula = false;
280
281 nestedOperators = true;
282 nestedPathFormulas = false;
283 nestedMultiObjectiveFormulas = false;
284 nestedOperatorsInsideMultiObjectiveFormulas = false;
285 onlyEventuallyFormuluasInConditionalFormulas = true;
286 stepBoundedUntilFormulas = false;
287 timeBoundedUntilFormulas = false;
288 rewardBoundedUntilFormulas = false;
289 multiDimensionalBoundedUntilFormulas = false;
290 stepBoundedCumulativeRewardFormulas = false;
291 timeBoundedCumulativeRewardFormulas = false;
292 rewardBoundedCumulativeRewardFormulas = false;
293 multiDimensionalCumulativeRewardFormulas = false;
294
295 qualitativeOperatorResults = true;
296 quantitativeOperatorResults = true;
297
298 operatorAtTopLevelRequired = false;
299 multiObjectiveFormulaAtTopLevelRequired = false;
300 operatorsAtTopLevelOfMultiObjectiveFormulasRequired = false;
301 quantileFormulaAtTopLevelRequired = false;
302
303 rewardAccumulation = false;
304
305 discountedCumulativeRewardFormula = false;
306 discountedTotalRewardFormula = false;
307}
308
312
314 return probabilityOperator;
315}
316
318 this->probabilityOperator = newValue;
319 return *this;
320}
321
323 return rewardOperator;
324}
325
327 this->rewardOperator = newValue;
328 return *this;
329}
330
332 return expectedTimeOperator;
333}
334
336 this->expectedTimeOperator = newValue;
337 return *this;
338}
339
341 return longRunAverageOperator;
342}
343
345 this->longRunAverageOperator = newValue;
346 return *this;
347}
348
350 return multiObjectiveFormula;
351}
352
354 this->multiObjectiveFormula = newValue;
355 return *this;
356}
357
359 return quantileFormula;
360}
361
363 this->quantileFormula = newValue;
364 return *this;
365}
366
368 return globallyFormula;
369}
370
372 this->globallyFormula = newValue;
373 return *this;
374}
375
377 return reachabilityProbabilityFormula;
378}
379
381 this->reachabilityProbabilityFormula = newValue;
382 return *this;
383}
384
386 return nextFormula;
387}
388
390 this->nextFormula = newValue;
391 return *this;
392}
393
395 return untilFormula;
396}
397
399 this->untilFormula = newValue;
400 return *this;
401}
402
404 return weakUntilFormula;
405}
406
408 this->weakUntilFormula = newValue;
409 return *this;
410}
411
413 return releaseFormula;
414}
415
417 this->releaseFormula = newValue;
418 return *this;
419}
420
422 return boundedUntilFormula;
423}
424
426 this->boundedUntilFormula = newValue;
427 return *this;
428}
429
431 return hoaPathFormula;
432}
433
435 this->hoaPathFormula = newValue;
436 return *this;
437}
438
440 return atomicExpressionFormula;
441}
442
444 this->atomicExpressionFormula = newValue;
445 return *this;
446}
447
449 return atomicLabelFormula;
450}
451
453 this->atomicLabelFormula = newValue;
454 return *this;
455}
456
458 return booleanLiteralFormula;
459}
460
462 this->booleanLiteralFormula = newValue;
463 return *this;
464}
465
467 return unaryBooleanStateFormula;
468}
469
471 this->unaryBooleanStateFormula = newValue;
472 return *this;
473}
474
476 return unaryBooleanPathFormula;
477}
478
480 this->unaryBooleanPathFormula = newValue;
481 return *this;
482}
483
485 return binaryBooleanStateFormula;
486}
487
489 this->binaryBooleanStateFormula = newValue;
490 return *this;
491}
492
494 return binaryBooleanPathFormula;
495}
496
498 this->binaryBooleanPathFormula = newValue;
499 return *this;
500}
501
503 return cumulativeRewardFormula;
504}
505
507 this->cumulativeRewardFormula = newValue;
508 return *this;
509}
510
512 return instantaneousRewardFormula;
513}
514
516 this->instantaneousRewardFormula = newValue;
517 return *this;
518}
519
521 return reachabilityRewardFormula;
522}
523
525 this->reachabilityRewardFormula = newValue;
526 return *this;
527}
528
530 return longRunAverageRewardFormula;
531}
532
534 this->longRunAverageRewardFormula = newValue;
535 return *this;
536}
537
539 return totalRewardFormula;
540}
541
543 this->totalRewardFormula = newValue;
544 return *this;
545}
546
548 return conditionalProbabilityFormula;
549}
550
552 this->conditionalProbabilityFormula = newValue;
553 return *this;
554}
555
557 return conditionalRewardFormula;
558}
559
561 this->conditionalRewardFormula = newValue;
562 return *this;
563}
564
566 return reachabilityTimeFormula;
567}
568
570 this->reachabilityTimeFormula = newValue;
571 return *this;
572}
573
575 return this->nestedOperators;
576}
577
579 this->nestedOperators = newValue;
580 return *this;
581}
582
584 return this->nestedPathFormulas;
585}
586
588 this->nestedPathFormulas = newValue;
589 return *this;
590}
591
593 return this->nestedMultiObjectiveFormulas;
594}
595
597 this->nestedMultiObjectiveFormulas = newValue;
598 return *this;
599}
600
602 return this->nestedOperatorsInsideMultiObjectiveFormulas;
603}
604
606 this->nestedOperatorsInsideMultiObjectiveFormulas = newValue;
607 return *this;
608}
609
611 return this->onlyEventuallyFormuluasInConditionalFormulas;
612}
613
615 this->onlyEventuallyFormuluasInConditionalFormulas = newValue;
616 return *this;
617}
618
620 return this->stepBoundedUntilFormulas;
621}
622
624 this->stepBoundedUntilFormulas = newValue;
625 return *this;
626}
627
629 return this->timeBoundedUntilFormulas;
630}
631
633 this->timeBoundedUntilFormulas = newValue;
634 return *this;
635}
636
638 return this->rewardBoundedUntilFormulas;
639}
640
642 this->rewardBoundedUntilFormulas = newValue;
643 return *this;
644}
645
647 return this->multiDimensionalBoundedUntilFormulas;
648}
649
651 this->multiDimensionalBoundedUntilFormulas = newValue;
652 return *this;
653}
654
656 return this->stepBoundedCumulativeRewardFormulas;
657}
658
660 this->stepBoundedCumulativeRewardFormulas = newValue;
661 return *this;
662}
663
665 return this->timeBoundedCumulativeRewardFormulas;
666}
667
669 this->timeBoundedCumulativeRewardFormulas = newValue;
670 return *this;
671}
672
674 return this->rewardBoundedCumulativeRewardFormulas;
675}
676
678 this->rewardBoundedCumulativeRewardFormulas = newValue;
679 return *this;
680}
681
683 return this->multiDimensionalCumulativeRewardFormulas;
684}
685
687 this->multiDimensionalCumulativeRewardFormulas = newValue;
688 return *this;
689}
690
692 this->setProbabilityOperatorsAllowed(newValue);
693 this->setRewardOperatorsAllowed(newValue);
694 this->setLongRunAverageOperatorsAllowed(newValue);
695 this->setTimeOperatorsAllowed(newValue);
696 return *this;
697}
698
700 this->setTimeOperatorsAllowed(newValue);
701 this->setReachbilityTimeFormulasAllowed(newValue);
702 return *this;
703}
704
709
711 return this->quantitativeOperatorResults;
712}
713
715 this->quantitativeOperatorResults = newValue;
716 return *this;
717}
718
720 return this->qualitativeOperatorResults;
721}
722
724 this->qualitativeOperatorResults = newValue;
725 return *this;
726}
727
729 return operatorAtTopLevelRequired;
730}
731
733 operatorAtTopLevelRequired = newValue;
734 return *this;
735}
736
738 return multiObjectiveFormulaAtTopLevelRequired;
739}
740
742 multiObjectiveFormulaAtTopLevelRequired = newValue;
743 return *this;
744}
745
747 return operatorsAtTopLevelOfMultiObjectiveFormulasRequired;
748}
749
751 operatorsAtTopLevelOfMultiObjectiveFormulasRequired = newValue;
752 return *this;
753}
754
756 return quantileFormulaAtTopLevelRequired;
757}
758
760 quantileFormulaAtTopLevelRequired = newValue;
761 return *this;
762}
763
765 return rewardAccumulation;
766}
767
769 rewardAccumulation = newValue;
770 return *this;
771}
772
774 return gameFormula;
775}
776
778 gameFormula = newValue;
779 return *this;
780}
781
783 return discountedCumulativeRewardFormula;
784}
785
787 this->discountedCumulativeRewardFormula = newValue;
788 return *this;
789}
790
792 return discountedTotalRewardFormula;
793}
794
796 this->discountedTotalRewardFormula = newValue;
797 return *this;
798}
799
800} // namespace logic
801} // namespace storm
FragmentSpecification & setConditionalRewardFormulasAllowed(bool newValue)
FragmentSpecification & setAtomicExpressionFormulasAllowed(bool newValue)
FragmentSpecification & setNextFormulasAllowed(bool newValue)
FragmentSpecification & setBinaryBooleanPathFormulasAllowed(bool newValue)
FragmentSpecification & setStepBoundedUntilFormulasAllowed(bool newValue)
FragmentSpecification & setUnaryBooleanStateFormulasAllowed(bool newValue)
FragmentSpecification & setRewardBoundedCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setRewardAccumulationAllowed(bool newValue)
FragmentSpecification & setOnlyEventuallyFormuluasInConditionalFormulasAllowed(bool newValue)
FragmentSpecification & setBinaryBooleanStateFormulasAllowed(bool newValue)
FragmentSpecification & setReleaseFormulasAllowed(bool newValue)
FragmentSpecification & setMultiDimensionalBoundedUntilFormulasAllowed(bool newValue)
FragmentSpecification & setTimeOperatorsAllowed(bool newValue)
FragmentSpecification & setUnaryBooleanPathFormulasAllowed(bool newValue)
FragmentSpecification & setAtomicLabelFormulasAllowed(bool newValue)
FragmentSpecification & setNestedMultiObjectiveFormulasAllowed(bool newValue)
FragmentSpecification & setWeakUntilFormulasAllowed(bool newValue)
FragmentSpecification & setGameFormulasAllowed(bool newValue)
FragmentSpecification & setMultiObjectiveFormulaAtTopLevelRequired(bool newValue)
FragmentSpecification & setQuantileFormulaAtTopLevelRequired(bool newValue)
FragmentSpecification & setQuantileFormulasAllowed(bool newValue)
FragmentSpecification & setOperatorAtTopLevelRequired(bool newValue)
FragmentSpecification & setBooleanLiteralFormulasAllowed(bool newValue)
FragmentSpecification & setMultiObjectiveFormulasAllowed(bool newValue)
FragmentSpecification & setGloballyFormulasAllowed(bool newValue)
FragmentSpecification & setTimeBoundedUntilFormulasAllowed(bool newValue)
FragmentSpecification & setReachabilityProbabilityFormulasAllowed(bool newValue)
FragmentSpecification & setCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setTotalRewardFormulasAllowed(bool newValue)
FragmentSpecification & setDiscountedCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setReachabilityRewardFormulasAllowed(bool newValue)
FragmentSpecification & setMultiDimensionalCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setNestedPathFormulasAllowed(bool newValue)
FragmentSpecification & setConditionalProbabilityFormulasAllowed(bool newValue)
FragmentSpecification & setRewardBoundedUntilFormulasAllowed(bool newValue)
FragmentSpecification & setLongRunAverageRewardFormulasAllowed(bool newValue)
FragmentSpecification & setQualitativeOperatorResultsAllowed(bool newValue)
FragmentSpecification & setLongRunAverageProbabilitiesAllowed(bool newValue)
FragmentSpecification & setQuantitativeOperatorResultsAllowed(bool newValue)
FragmentSpecification & setRewardOperatorsAllowed(bool newValue)
FragmentSpecification & setNestedOperatorsInsideMultiObjectiveFormulasAllowed(bool newValue)
FragmentSpecification & setBoundedUntilFormulasAllowed(bool newValue)
FragmentSpecification & setTimeBoundedCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setHOAPathFormulasAllowed(bool newValue)
FragmentSpecification & setOperatorsAllowed(bool newValue)
FragmentSpecification & setReachbilityTimeFormulasAllowed(bool newValue)
FragmentSpecification & setDiscountedTotalRewardFormulasAllowed(bool newValue)
FragmentSpecification & setInstantaneousFormulasAllowed(bool newValue)
FragmentSpecification & setUntilFormulasAllowed(bool newValue)
FragmentSpecification & setTimeAllowed(bool newValue)
FragmentSpecification & setNestedOperatorsAllowed(bool newValue)
FragmentSpecification & setStepBoundedCumulativeRewardFormulasAllowed(bool newValue)
FragmentSpecification & setProbabilityOperatorsAllowed(bool newValue)
FragmentSpecification & setLongRunAverageOperatorsAllowed(bool newValue)
FragmentSpecification & setOperatorsAtTopLevelOfMultiObjectiveFormulasRequired(bool newValue)
FragmentSpecification prctlstar()
FragmentSpecification prctl()
FragmentSpecification propositional()
FragmentSpecification lexObjective()
FragmentSpecification csrl()
FragmentSpecification pctlstar()
FragmentSpecification flatPctl()
FragmentSpecification csrlstar()
FragmentSpecification csl()
FragmentSpecification multiObjective()
FragmentSpecification pctl()
FragmentSpecification cslstar()
FragmentSpecification reachability()
FragmentSpecification quantiles()
FragmentSpecification rpatl()