Browse Source

SMT encoding for SEQ gate

tempestpy_adaptions
Matthias Volk 7 years ago
parent
commit
09797dae5a
  1. 12
      src/storm-dft/modelchecker/dft/DFTASFChecker.cpp

12
src/storm-dft/modelchecker/dft/DFTASFChecker.cpp

@ -544,8 +544,18 @@ namespace storm {
break; break;
} }
case storm::storage::DFTElementType::SEQ: case storm::storage::DFTElementType::SEQ:
STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "SMT encoding of SEQs is not implemented yet.");
{
// Constraint for SEQ gate (constraint 4)
// As the restriction is not a gate we have to enumerate its children here
auto seq = std::static_pointer_cast<storm::storage::DFTRestriction<double> const>(element);
for (auto const& child : seq->children()) {
childVarIndices.push_back(timePointVariables.at(child->id()));
}
constraints.push_back(std::make_shared<Sorted>(childVarIndices));
constraints.back()->setDescription("SEQ gate " + element->name());
break; break;
}
case storm::storage::DFTElementType::SPARE: case storm::storage::DFTElementType::SPARE:
{ {
auto spare = std::static_pointer_cast<storm::storage::DFTSpare<double> const>(element); auto spare = std::static_pointer_cast<storm::storage::DFTSpare<double> const>(element);

Loading…
Cancel
Save