Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AcceptanceCondition.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <memory>
5#include <vector>
6#include "cpphoafparser/consumer/hoa_consumer.hh"
9
10namespace storm {
11namespace automata {
13 public:
14 typedef std::shared_ptr<AcceptanceCondition> ptr;
15 typedef cpphoafparser::HOAConsumer::acceptance_expr acceptance_expr;
16
17 AcceptanceCondition(std::size_t numberOfStates, unsigned int numberOfAcceptanceSets, acceptance_expr::ptr acceptance);
18 bool isAccepting(const storm::storage::StateBlock& scc) const;
19
20 unsigned int getNumberOfAcceptanceSets() const;
22 const storm::storage::BitVector& getAcceptanceSet(unsigned int index) const;
23
24 acceptance_expr::ptr getAcceptanceExpression() const;
25
26 AcceptanceCondition::ptr lift(std::size_t productNumberOfStates, std::function<std::size_t(std::size_t)> mapping) const;
27
28 std::vector<std::vector<acceptance_expr::ptr>> extractFromDNF() const;
29
30 private:
31 bool isAccepting(const storm::storage::StateBlock& scc, acceptance_expr::ptr expr) const;
32 void extractFromDNFRecursion(acceptance_expr::ptr e, std::vector<std::vector<acceptance_expr::ptr>>& dnf, bool topLevel) const;
33
34 unsigned int numberOfAcceptanceSets;
35 acceptance_expr::ptr acceptance;
36 std::vector<storm::storage::BitVector> acceptanceSets;
37};
38} // namespace automata
39} // namespace storm
storm::storage::BitVector & getAcceptanceSet(unsigned int index)
cpphoafparser::HOAConsumer::acceptance_expr acceptance_expr
std::shared_ptr< AcceptanceCondition > ptr
AcceptanceCondition::ptr lift(std::size_t productNumberOfStates, std::function< std::size_t(std::size_t)> mapping) const
std::vector< std::vector< acceptance_expr::ptr > > extractFromDNF() const
acceptance_expr::ptr getAcceptanceExpression() const
bool isAccepting(const storm::storage::StateBlock &scc) const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
LabParser.cpp.
Definition cli.cpp:18