55 std::vector<boost::optional<TimeBound>> lowerBounds, upperBounds;
56 std::vector<TimeBoundReference> timeBoundReferences;
61 lowerBounds.emplace_back();
66 upperBounds.emplace_back();
71 std::vector<std::shared_ptr<Formula const>> leftSubformulas, rightSubformulas;
73 leftSubformulas.push_back(boost::any_cast<std::shared_ptr<Formula>>(f.
getLeftSubformula(i).
accept(*
this, data)));
76 return std::static_pointer_cast<Formula>(
77 std::make_shared<BoundedUntilFormula>(leftSubformulas, rightSubformulas, lowerBounds, upperBounds, timeBoundReferences));
79 std::shared_ptr<Formula> left = boost::any_cast<std::shared_ptr<Formula>>(f.
getLeftSubformula().
accept(*
this, data));
80 std::shared_ptr<Formula> right = boost::any_cast<std::shared_ptr<Formula>>(f.
getRightSubformula().
accept(*
this, data));
81 return std::static_pointer_cast<Formula>(std::make_shared<BoundedUntilFormula>(left, right, lowerBounds, upperBounds, timeBoundReferences));
87 std::vector<TimeBound> bounds;
88 std::vector<TimeBoundReference> timeBoundReferences;
93 boost::optional<RewardAccumulation> optionalRewardAccumulation;
97 return std::static_pointer_cast<Formula>(std::make_shared<CumulativeRewardFormula>(bounds, timeBoundReferences, optionalRewardAccumulation));