Browse Source

(LTL) FragmentSpecification: add pctlstar() and prctlstar() fragments

We add the star variants (allow complex path formulas).

 Conflicts:
	src/storm/logic/FragmentSpecification.cpp
	src/storm/logic/FragmentSpecification.h
tempestpy_adaptions
Joachim Klein 4 years ago
committed by Stefan Pranger
parent
commit
fbe5236c4d
  1. 54
      src/storm/logic/FragmentSpecification.cpp
  2. 10
      src/storm/logic/FragmentSpecification.h

54
src/storm/logic/FragmentSpecification.cpp

@ -45,6 +45,17 @@ namespace storm {
return pctl; return pctl;
} }
FragmentSpecification pctlstar() {
FragmentSpecification pctlstar = pctl();
pctlstar.setBinaryBooleanPathFormulasAllowed(true);
pctlstar.setUnaryBooleanPathFormulasAllowed(true);
pctlstar.setNestedOperatorsAllowed(true);
pctlstar.setNestedPathFormulasAllowed(true);
return pctlstar;
}
FragmentSpecification flatPctl() { FragmentSpecification flatPctl() {
FragmentSpecification flatPctl = pctl(); FragmentSpecification flatPctl = pctl();
@ -53,6 +64,35 @@ namespace storm {
return flatPctl; return flatPctl;
} }
FragmentSpecification prctl() {
FragmentSpecification prctl = pctl();
prctl.setRewardOperatorsAllowed(true);
prctl.setCumulativeRewardFormulasAllowed(true);
prctl.setInstantaneousFormulasAllowed(true);
prctl.setReachabilityRewardFormulasAllowed(true);
prctl.setLongRunAverageOperatorsAllowed(true);
prctl.setStepBoundedCumulativeRewardFormulasAllowed(true);
prctl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
return prctl;
}
FragmentSpecification prctlstar() {
FragmentSpecification prctlstar = pctlstar();
prctlstar.setRewardOperatorsAllowed(true);
prctlstar.setCumulativeRewardFormulasAllowed(true);
prctlstar.setInstantaneousFormulasAllowed(true);
prctlstar.setReachabilityRewardFormulasAllowed(true);
prctlstar.setLongRunAverageOperatorsAllowed(true);
prctlstar.setStepBoundedCumulativeRewardFormulasAllowed(true);
prctlstar.setTimeBoundedCumulativeRewardFormulasAllowed(true);
return prctlstar;
}
FragmentSpecification rpatl() { FragmentSpecification rpatl() {
FragmentSpecification rpatl = propositional(); FragmentSpecification rpatl = propositional();
@ -73,20 +113,6 @@ namespace storm {
return rpatl; return rpatl;
} }
FragmentSpecification prctl() {
FragmentSpecification prctl = pctl();
prctl.setRewardOperatorsAllowed(true);
prctl.setCumulativeRewardFormulasAllowed(true);
prctl.setInstantaneousFormulasAllowed(true);
prctl.setReachabilityRewardFormulasAllowed(true);
prctl.setLongRunAverageOperatorsAllowed(true);
prctl.setStepBoundedCumulativeRewardFormulasAllowed(true);
prctl.setTimeBoundedCumulativeRewardFormulasAllowed(true);
return prctl;
}
FragmentSpecification csl() { FragmentSpecification csl() {
FragmentSpecification csl = pctl(); FragmentSpecification csl = pctl();

10
src/storm/logic/FragmentSpecification.h

@ -249,12 +249,18 @@ namespace storm {
// Flat PCTL. // Flat PCTL.
FragmentSpecification flatPctl(); FragmentSpecification flatPctl();
// rPATL for SMGs
FragmentSpecification rpatl();
// PCTL*
FragmentSpecification pctlstar();
// PCTL + cumulative, instantaneous, reachability and long-run rewards. // PCTL + cumulative, instantaneous, reachability and long-run rewards.
FragmentSpecification prctl(); FragmentSpecification prctl();
// PCTL* + cumulative, instantaneous, reachability and long-run rewards.
FragmentSpecification prctlstar();
// rPATL for SMGs
FragmentSpecification rpatl();
// Regular CSL. // Regular CSL.
FragmentSpecification csl(); FragmentSpecification csl();

Loading…
Cancel
Save