py::class_<storm::logic::PathFormula,std::shared_ptr<storm::logic::PathFormula>>pathFormula(m,"PathFormula","Formula about the probability of a set of paths in an automaton",formula);
py::class_<storm::logic::UnaryPathFormula,std::shared_ptr<storm::logic::UnaryPathFormula>>unaryPathFormula(m,"UnaryPathFormula","Path formula with one operand",pathFormula);
py::class_<storm::logic::EventuallyFormula,std::shared_ptr<storm::logic::EventuallyFormula>>(m,"EventuallyFormula","Formula for eventually",unaryPathFormula);
py::class_<storm::logic::GloballyFormula,std::shared_ptr<storm::logic::GloballyFormula>>(m,"GloballyFormula","Formula for globally",unaryPathFormula);
py::class_<storm::logic::BinaryPathFormula,std::shared_ptr<storm::logic::BinaryPathFormula>>binaryPathFormula(m,"BinaryPathFormula","Path formula with two operands",pathFormula);
py::class_<storm::logic::BoundedUntilFormula,std::shared_ptr<storm::logic::BoundedUntilFormula>>(m,"BoundedUntilFormula","Until Formula with either a step or a time bound.",binaryPathFormula);
py::class_<storm::logic::BoundedUntilFormula,std::shared_ptr<storm::logic::BoundedUntilFormula>>(m,"BoundedUntilFormula","Until Formula with either a step or a time bound.",binaryPathFormula)
.def_property_readonly("is_multidimensional",&storm::logic::BoundedUntilFormula::isMultiDimensional,"Is the bound multi-dimensional")
py::class_<storm::logic::ConditionalFormula,std::shared_ptr<storm::logic::ConditionalFormula>>(m,"ConditionalFormula","Formula with the right hand side being a condition.",formula);
py::class_<storm::logic::UntilFormula,std::shared_ptr<storm::logic::UntilFormula>>(m,"UntilFormula","Path Formula for unbounded until",binaryPathFormula);