Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
RegionConstraintChecker.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <optional>
5#include <ostream>
6#include <string>
7#include <vector>
8
13
14namespace storm::pars::analysis {
15
18
24
32
36std::ostream& operator<<(std::ostream& out, RegionWitness const& witness);
37
39 ConstraintVerdict verdict = ConstraintVerdict::Unknown;
40
42 std::optional<RegionWitness> witness;
43
45 std::optional<storm::expressions::Expression> violatedConstraint;
46
48 std::vector<storm::expressions::Expression> undecidedConstraints;
49
50 bool holdsThroughout() const {
51 return verdict == ConstraintVerdict::Sat;
52 }
53};
54
62 public:
64
66
69
71 bool isWellDefined(RationalFunctionRegion const& region) const;
72
74 bool isGraphPreserving(RationalFunctionRegion const& region) const;
75
80 std::string const& label);
81
82 private:
84};
85
86} // namespace storm::pars::analysis
Class to collect constraints on parametric Markov chains.
std::vector< storm::expressions::Expression > ConstraintSet
The type of the collected constraints.
bool isWellDefined(RationalFunctionRegion const &region) const
Returns true iff all well-formedness constraints were proven to hold throughout the region.
RegionCheckResult checkGraphPreservation(RationalFunctionRegion const &region) const
Checks the graph-preserving constraints together with the well-formedness constraints,...
RegionConstraintChecker(storm::analysis::ConstraintCollector const &collector)
static RegionCheckResult checkConstraints(storm::analysis::ConstraintCollector::ConstraintSet const &constraints, RationalFunctionRegion const &region, std::string const &label)
Checks an arbitrary constraint set over a region.
bool isGraphPreserving(RationalFunctionRegion const &region) const
Returns true iff all graph-preserving and well-formedness constraints were proven to hold throughout ...
RegionCheckResult checkWellformedness(RationalFunctionRegion const &region) const
CheckResult
possible check results
Definition SmtSolver.h:24
storm::utility::parametric::CoefficientType< storm::RationalFunction >::type CoefficientType
storm::utility::parametric::Valuation< storm::RationalFunction > Valuation
storm::storage::ParameterRegion< storm::RationalFunction > RationalFunctionRegion
storm::solver::SmtSolver::CheckResult ConstraintVerdict
Tri-state outcome of a check: Sat means the constraint holds on the whole region, Unsat means it is v...
RationalFunctionRegion::CoefficientType CoefficientType
std::ostream & operator<<(std::ostream &stream, GraphPreservationStatus status)
std::optional< RegionWitness > witness
A point at which a constraint is violated.
std::vector< storm::expressions::Expression > undecidedConstraints
All constraints that could not be decided.
std::optional< storm::expressions::Expression > violatedConstraint
The constraint violated at the witness.
RegionWitness(RationalFunctionRegion::Valuation valuation)