401 lines
13 KiB
401 lines
13 KiB
#include "src/logic/Formulas.h"
|
|
|
|
namespace storm {
|
|
namespace logic {
|
|
bool Formula::isPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isBinaryStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isUnaryStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isBinaryBooleanStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isUnaryBooleanStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isBooleanLiteralFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isTrueFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isFalseFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isAtomicExpressionFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isAtomicLabelFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isUntilFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isBoundedUntilFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isEventuallyFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isGloballyFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isBinaryPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isUnaryPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isConditionalPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isNextFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isLongRunAverageOperatorFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isExpectedTimeOperatorFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isRewardPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isCumulativeRewardFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isInstantaneousRewardFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isReachabilityRewardFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isProbabilityOperatorFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isRewardOperatorFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isPctlPathFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isPctlStateFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isCslPathFormula() const {
|
|
return this->isPctlPathFormula();
|
|
}
|
|
|
|
bool Formula::isCslStateFormula() const {
|
|
return this->isPctlStateFormula();
|
|
}
|
|
|
|
bool Formula::isPltlFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isLtlFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::isPropositionalFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsBoundedUntilFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsNextFormula() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsProbabilityOperator() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsNestedProbabilityOperators() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsRewardOperator() const {
|
|
return false;
|
|
}
|
|
|
|
bool Formula::containsNestedRewardOperators() const {
|
|
return false;
|
|
}
|
|
|
|
std::shared_ptr<Formula const> Formula::getTrueFormula() {
|
|
return std::shared_ptr<Formula const>(new BooleanLiteralFormula(true));
|
|
}
|
|
|
|
PathFormula& Formula::asPathFormula() {
|
|
return dynamic_cast<PathFormula&>(*this);
|
|
}
|
|
|
|
PathFormula const& Formula::asPathFormula() const {
|
|
return dynamic_cast<PathFormula const&>(*this);
|
|
}
|
|
|
|
StateFormula& Formula::asStateFormula() {
|
|
return dynamic_cast<StateFormula&>(*this);
|
|
}
|
|
|
|
StateFormula const& Formula::asStateFormula() const {
|
|
return dynamic_cast<StateFormula const&>(*this);
|
|
}
|
|
|
|
BinaryStateFormula& Formula::asBinaryStateFormula() {
|
|
return dynamic_cast<BinaryStateFormula&>(*this);
|
|
}
|
|
|
|
BinaryStateFormula const& Formula::asBinaryStateFormula() const {
|
|
return dynamic_cast<BinaryStateFormula const&>(*this);
|
|
}
|
|
|
|
UnaryStateFormula& Formula::asUnaryStateFormula() {
|
|
return dynamic_cast<UnaryStateFormula&>(*this);
|
|
}
|
|
|
|
UnaryStateFormula const& Formula::asUnaryStateFormula() const {
|
|
return dynamic_cast<UnaryStateFormula const&>(*this);
|
|
}
|
|
|
|
ConditionalPathFormula& Formula::asConditionalPathFormula() {
|
|
return dynamic_cast<ConditionalPathFormula&>(*this);
|
|
}
|
|
|
|
ConditionalPathFormula const& Formula::asConditionalPathFormula() const {
|
|
return dynamic_cast<ConditionalPathFormula const&>(*this);
|
|
}
|
|
|
|
BinaryBooleanStateFormula& Formula::asBinaryBooleanStateFormula() {
|
|
return dynamic_cast<BinaryBooleanStateFormula&>(*this);
|
|
}
|
|
|
|
BinaryBooleanStateFormula const& Formula::asBinaryBooleanStateFormula() const {
|
|
return dynamic_cast<BinaryBooleanStateFormula const&>(*this);
|
|
}
|
|
|
|
UnaryBooleanStateFormula& Formula::asUnaryBooleanStateFormula() {
|
|
return dynamic_cast<UnaryBooleanStateFormula&>(*this);
|
|
}
|
|
|
|
UnaryBooleanStateFormula const& Formula::asUnaryBooleanStateFormula() const {
|
|
return dynamic_cast<UnaryBooleanStateFormula const&>(*this);
|
|
}
|
|
|
|
BooleanLiteralFormula& Formula::asBooleanLiteralFormula() {
|
|
return dynamic_cast<BooleanLiteralFormula&>(*this);
|
|
}
|
|
|
|
BooleanLiteralFormula const& Formula::asBooleanLiteralFormula() const {
|
|
return dynamic_cast<BooleanLiteralFormula const&>(*this);
|
|
}
|
|
|
|
AtomicExpressionFormula& Formula::asAtomicExpressionFormula() {
|
|
return dynamic_cast<AtomicExpressionFormula&>(*this);
|
|
}
|
|
|
|
AtomicExpressionFormula const& Formula::asAtomicExpressionFormula() const {
|
|
return dynamic_cast<AtomicExpressionFormula const&>(*this);
|
|
}
|
|
|
|
AtomicLabelFormula& Formula::asAtomicLabelFormula() {
|
|
return dynamic_cast<AtomicLabelFormula&>(*this);
|
|
}
|
|
|
|
AtomicLabelFormula const& Formula::asAtomicLabelFormula() const {
|
|
return dynamic_cast<AtomicLabelFormula const&>(*this);
|
|
}
|
|
|
|
UntilFormula& Formula::asUntilFormula() {
|
|
return dynamic_cast<UntilFormula&>(*this);
|
|
}
|
|
|
|
UntilFormula const& Formula::asUntilFormula() const {
|
|
return dynamic_cast<UntilFormula const&>(*this);
|
|
}
|
|
|
|
BoundedUntilFormula& Formula::asBoundedUntilFormula() {
|
|
return dynamic_cast<BoundedUntilFormula&>(*this);
|
|
}
|
|
|
|
BoundedUntilFormula const& Formula::asBoundedUntilFormula() const {
|
|
return dynamic_cast<BoundedUntilFormula const&>(*this);
|
|
}
|
|
|
|
EventuallyFormula& Formula::asEventuallyFormula() {
|
|
return dynamic_cast<EventuallyFormula&>(*this);
|
|
}
|
|
|
|
EventuallyFormula const& Formula::asEventuallyFormula() const {
|
|
return dynamic_cast<EventuallyFormula const&>(*this);
|
|
}
|
|
|
|
GloballyFormula& Formula::asGloballyFormula() {
|
|
return dynamic_cast<GloballyFormula&>(*this);
|
|
}
|
|
|
|
GloballyFormula const& Formula::asGloballyFormula() const {
|
|
return dynamic_cast<GloballyFormula const&>(*this);
|
|
}
|
|
|
|
BinaryPathFormula& Formula::asBinaryPathFormula() {
|
|
return dynamic_cast<BinaryPathFormula&>(*this);
|
|
}
|
|
|
|
BinaryPathFormula const& Formula::asBinaryPathFormula() const {
|
|
return dynamic_cast<BinaryPathFormula const&>(*this);
|
|
}
|
|
|
|
UnaryPathFormula& Formula::asUnaryPathFormula() {
|
|
return dynamic_cast<UnaryPathFormula&>(*this);
|
|
}
|
|
|
|
UnaryPathFormula const& Formula::asUnaryPathFormula() const {
|
|
return dynamic_cast<UnaryPathFormula const&>(*this);
|
|
}
|
|
|
|
NextFormula& Formula::asNextFormula() {
|
|
return dynamic_cast<NextFormula&>(*this);
|
|
}
|
|
|
|
NextFormula const& Formula::asNextFormula() const {
|
|
return dynamic_cast<NextFormula const&>(*this);
|
|
}
|
|
|
|
LongRunAverageOperatorFormula& Formula::asLongRunAverageOperatorFormula() {
|
|
return dynamic_cast<LongRunAverageOperatorFormula&>(*this);
|
|
}
|
|
|
|
LongRunAverageOperatorFormula const& Formula::asLongRunAverageOperatorFormula() const {
|
|
return dynamic_cast<LongRunAverageOperatorFormula const&>(*this);
|
|
}
|
|
|
|
ExpectedTimeOperatorFormula& Formula::asExpectedTimeOperatorFormula() {
|
|
return dynamic_cast<ExpectedTimeOperatorFormula&>(*this);
|
|
}
|
|
|
|
ExpectedTimeOperatorFormula const& Formula::asExpectedTimeOperatorFormula() const {
|
|
return dynamic_cast<ExpectedTimeOperatorFormula const&>(*this);
|
|
}
|
|
|
|
RewardPathFormula& Formula::asRewardPathFormula() {
|
|
return dynamic_cast<RewardPathFormula&>(*this);
|
|
}
|
|
|
|
RewardPathFormula const& Formula::asRewardPathFormula() const {
|
|
return dynamic_cast<RewardPathFormula const&>(*this);
|
|
}
|
|
|
|
CumulativeRewardFormula& Formula::asCumulativeRewardFormula() {
|
|
return dynamic_cast<CumulativeRewardFormula&>(*this);
|
|
}
|
|
|
|
CumulativeRewardFormula const& Formula::asCumulativeRewardFormula() const {
|
|
return dynamic_cast<CumulativeRewardFormula const&>(*this);
|
|
}
|
|
|
|
InstantaneousRewardFormula& Formula::asInstantaneousRewardFormula() {
|
|
return dynamic_cast<InstantaneousRewardFormula&>(*this);
|
|
}
|
|
|
|
InstantaneousRewardFormula const& Formula::asInstantaneousRewardFormula() const {
|
|
return dynamic_cast<InstantaneousRewardFormula const&>(*this);
|
|
}
|
|
|
|
ReachabilityRewardFormula& Formula::asReachabilityRewardFormula() {
|
|
return dynamic_cast<ReachabilityRewardFormula&>(*this);
|
|
}
|
|
|
|
ReachabilityRewardFormula const& Formula::asReachabilityRewardFormula() const {
|
|
return dynamic_cast<ReachabilityRewardFormula const&>(*this);
|
|
}
|
|
|
|
ProbabilityOperatorFormula& Formula::asProbabilityOperatorFormula() {
|
|
return dynamic_cast<ProbabilityOperatorFormula&>(*this);
|
|
}
|
|
|
|
ProbabilityOperatorFormula const& Formula::asProbabilityOperatorFormula() const {
|
|
return dynamic_cast<ProbabilityOperatorFormula const&>(*this);
|
|
}
|
|
|
|
RewardOperatorFormula& Formula::asRewardOperatorFormula() {
|
|
return dynamic_cast<RewardOperatorFormula&>(*this);
|
|
}
|
|
|
|
RewardOperatorFormula const& Formula::asRewardOperatorFormula() const {
|
|
return dynamic_cast<RewardOperatorFormula const&>(*this);
|
|
}
|
|
|
|
std::vector<std::shared_ptr<AtomicExpressionFormula const>> Formula::getAtomicExpressionFormulas() const {
|
|
std::vector<std::shared_ptr<AtomicExpressionFormula const>> result;
|
|
this->gatherAtomicExpressionFormulas(result);
|
|
return result;
|
|
}
|
|
|
|
std::vector<std::shared_ptr<AtomicLabelFormula const>> Formula::getAtomicLabelFormulas() const {
|
|
std::vector<std::shared_ptr<AtomicLabelFormula const>> result;
|
|
this->gatherAtomicLabelFormulas(result);
|
|
return result;
|
|
}
|
|
|
|
std::shared_ptr<Formula const> Formula::asSharedPointer() {
|
|
return this->shared_from_this();
|
|
}
|
|
|
|
std::shared_ptr<Formula const> Formula::asSharedPointer() const {
|
|
return this->shared_from_this();
|
|
}
|
|
|
|
void Formula::gatherAtomicExpressionFormulas(std::vector<std::shared_ptr<AtomicExpressionFormula const>>& atomicExpressionFormulas) const {
|
|
return;
|
|
}
|
|
|
|
void Formula::gatherAtomicLabelFormulas(std::vector<std::shared_ptr<AtomicLabelFormula const>>& atomicExpressionFormulas) const {
|
|
return;
|
|
}
|
|
|
|
std::ostream& operator<<(std::ostream& out, Formula const& formula) {
|
|
return formula.writeToStream(out);
|
|
}
|
|
}
|
|
}
|