check_feasibility¶
- check_feasibility(
- model: SparseModel,
- property: Property | Formula,
- *,
- region: ParameterRegion | None = None,
- region_bound: RationalFunctionCoefficient | float | int | None = None,
- method: FeasibilityMethod = FeasibilityMethod.PLA,
- region_engine: RegionCheckEngine = RegionCheckEngine.PARAMETER_LIFTING,
- environment: Environment | None = None,
Search for a well-defined parameter valuation satisfying a bounded probability or reward property.
Requires a sparse parametric DTMC or MDP with exactly one initial state. Provide exactly one of
regionorregion_bound. The region must cover all model parameters and satisfy the method’s and engine’s requirements. Standard parameter lifting, GD, and SCP require a well-defined, graph-preserving region. GD supports DTMCs only. Robust parameter lifting supports DTMCs and can include graph-changing valuations. Unsupported inputs raise an exception.For MDPs, properties have the following semantics:
Property
Schedulers that must satisfy the bound
P>=0.8 [F "target"]Every scheduler
Pmin>=0.8 [F "target"]Every scheduler
Pmax>=0.8 [F "target"]At least one scheduler (PLA only)
P<=0.8 [F "target"]Every scheduler
Pmin<=0.8 [F "target"]At least one scheduler (PLA only)
Pmax<=0.8 [F "target"]Every scheduler
- Parameters:
model – Parametric sparse DTMC or MDP.
property – Bounded probability or reward property or formula.
region – Explicit parameter region.
region_bound – Use [region_bound, 1-region_bound] for every parameter; must be in [0, 1/2]. Floats use their decimal representation, e.g. 0.2 means exactly 1/5.
method – Feasibility method: parameter lifting (PLA), gradient descent (GD), or sequential convex programming (SCP).
region_engine – Region checking engine, used only for PLA and ignored by GD and SCP. See
RegionCheckEnginefor arithmetic choices and region requirements.environment – (optional) Environment configuring the analysis.
- Returns:
Result with status EXISTS_SAT, ALL_VIOLATED, or UNKNOWN. A witness is present only for EXISTS_SAT.