@ -122,7 +122,7 @@ void define_prism(py::module& m) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    py : : class_ < BooleanVariable ,  std : : shared_ptr < BooleanVariable > >  boolean_variable ( m ,  " PrismBooleanVariable " ,  variable ,  " A program boolean variable in a Prism program " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    boolean_variable . def ( " __str__ " ,  & streamToString < BooleanVariable > ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    define_stateGeneration < uint32_t ,  storm : : RationalNumber > ( m ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    //define_stateGeneration<uint32_t, storm::RationalNumber>(m);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					class  ValuationMapping  {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -364,59 +364,59 @@ std::map<uint32_t, std::pair<storm::RationalNumber, storm::RationalNumber>> simu 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					template  < typename  StateType ,  typename  ValueType >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					void  define_stateGeneration ( py : : module &  m )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    py : : class_ < ValuationMapping ,  std : : shared_ptr < ValuationMapping > >  valuation_mapping ( m ,  " ValuationMapping " ,  "  A valuation mapping for a state consists of a mapping from variable to value for each of the three types. " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    valuation_mapping   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def_readonly ( " boolean_values " ,  & ValuationMapping : : booleanValues )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def_readonly ( " integer_values " ,  & ValuationMapping : : integerValues )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def_readonly ( " rational_values " ,  & ValuationMapping : : rationalValues )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " __str__ " ,  & ValuationMapping : : toString ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    py : : class_ < GeneratorChoice < StateType ,  ValueType > ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              std : : shared_ptr < GeneratorChoice < StateType ,  ValueType > > >   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        generator_choice ( m ,  " GeneratorChoice " ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Representation  of  a  choice  taken  by  the  generator .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : ivar  origins :  A  list  of  command  ids  that  generated  this  choice .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : vartype  origins :  List [ int ]   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : ivar  distribution :  The  probability  distribution  of  this  choice .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : vartype  distribution :  List [ Pair [ StateId ,  Probability ] ]   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ) doc " );   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    generator_choice   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def_readonly ( " origins " ,  & GeneratorChoice < StateType ,  ValueType > : : origins )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def_readonly ( " distribution " ,  & GeneratorChoice < StateType ,  ValueType > : : distribution ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    py : : class_ < StateGenerator < StateType ,  ValueType > ,  std : : shared_ptr < StateGenerator < StateType ,  ValueType > > >  state_generator ( m ,  " StateGenerator " ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        Interactively  explore  states  using  Storm ' s  PrismNextStateGenerator .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        : ivar  program :  A  PRISM  program .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ) doc " );   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    state_generator   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( py : : init < storm : : prism : : Program  const & > ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " load_initial_state " ,  & StateGenerator < StateType ,  ValueType > : : loadInitialState ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Loads  the  ( unique )  initial  state .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Multiple  initial  states  are  not  supported .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : rtype :  the  ID  of  the  initial  state .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) doc " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " load " ,  & StateGenerator < StateType ,  ValueType > : : load ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : param  state_id :  The  ID  of  the  state  to  load .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) doc " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " current_state_to_valuation " ,  & StateGenerator < StateType ,  ValueType > : : currentStateToValuation ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Return  a  valuation  for  the  currently  loaded  state .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : rtype :  stormpy . ValuationMapping   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) doc " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " current_state_satisfies " ,  & StateGenerator < StateType ,  ValueType > : : satisfies ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Check  if  the  currently  loaded  state  satisfies  the  given  expression .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : param  stormpy . Expression  expression :  The  expression  to  check  against .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : rtype :  bool   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) doc " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . def ( " expand " ,  & StateGenerator < StateType ,  ValueType > : : expand ,  R " doc(   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            Expand  the  currently  loaded  state  and  return  its  successors .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            : rtype :  [ GeneratorChoice ]   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) doc " );   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    m . def ( " simulate " ,  & simulate ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    py::class_<ValuationMapping, std::shared_ptr<ValuationMapping>> valuation_mapping(m, "ValuationMapping", " A valuation mapping for a state consists of a mapping from variable to value for each of the three types.");
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    valuation_mapping
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def_readonly("boolean_values", &ValuationMapping::booleanValues)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def_readonly("integer_values", &ValuationMapping::integerValues)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def_readonly("rational_values", &ValuationMapping::rationalValues)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("__str__", &ValuationMapping::toString);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    py::class_<GeneratorChoice<StateType, ValueType>,
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//              std::shared_ptr<GeneratorChoice<StateType, ValueType>>>
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        generator_choice(m, "GeneratorChoice", R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Representation of a choice taken by the generator.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :ivar origins: A list of command ids that generated this choice.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :vartype origins: List[int]
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :ivar distribution: The probability distribution of this choice.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :vartype distribution: List[Pair[StateId, Probability]]
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    )doc");
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    generator_choice
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def_readonly("origins", &GeneratorChoice<StateType, ValueType>::origins)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def_readonly("distribution", &GeneratorChoice<StateType, ValueType>::distribution);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    py::class_<StateGenerator<StateType, ValueType>, std::shared_ptr<StateGenerator<StateType, ValueType>>> state_generator(m, "StateGenerator", R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        Interactively explore states using Storm's PrismNextStateGenerator.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        :ivar program: A PRISM program.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    )doc");
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    state_generator
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def(py::init<storm::prism::Program const&>())
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("load_initial_state", &StateGenerator<StateType, ValueType>::loadInitialState, R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Loads the (unique) initial state.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Multiple initial states are not supported.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :rtype: the ID of the initial state.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        )doc")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("load", &StateGenerator<StateType, ValueType>::load, R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :param state_id: The ID of the state to load.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        )doc")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("current_state_to_valuation", &StateGenerator<StateType, ValueType>::currentStateToValuation, R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Return a valuation for the currently loaded state.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :rtype: stormpy.ValuationMapping
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        )doc")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("current_state_satisfies", &StateGenerator<StateType, ValueType>::satisfies, R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Check if the currently loaded state satisfies the given expression.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :param stormpy.Expression expression: The expression to check against.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :rtype: bool
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        )doc")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        .def("expand", &StateGenerator<StateType, ValueType>::expand, R"doc(
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            Expand the currently loaded state and return its successors.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//            :rtype: [GeneratorChoice]
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//        )doc");
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					// 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					//    m.def("simulate", &simulate);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}