| 
					
					
						
							
						
					
					
				 | 
				@ -68,6 +68,38 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				            // A predicate that needs to be satisfied by states for the label to be attached. | 
				 | 
				 | 
				            // A predicate that needs to be satisfied by states for the label to be attached. | 
			
		
		
	
		
			
				 | 
				 | 
				            storm::expressions::Expression statePredicateExpression; | 
				 | 
				 | 
				            storm::expressions::Expression statePredicateExpression; | 
			
		
		
	
		
			
				 | 
				 | 
				        }; | 
				 | 
				 | 
				        }; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        class ObservationLabel : public Label { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        public: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            /*! | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * Creates a label with the given name and state predicate expression. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * @param name The name of the label. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * @param statePredicateExpression The predicate that needs to hold before taking a transition with the previously | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * specified name in order to obtain the reward. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * @param filename The filename in which the transition reward is defined. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             * @param lineNumber The line number in which the transition reward is defined. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             */ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel(std::string const& name, storm::expressions::Expression const& statePredicateExpression, std::string const& filename = "", uint_fast64_t lineNumber = 0); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            // Create default implementations of constructors/assignment. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel() = default; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel(ObservationLabel const& other) = default; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel& operator=(ObservationLabel const& other)= default; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel(ObservationLabel&& other) = default; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel& operator=(ObservationLabel&& other) = default; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            /*! | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            * Substitutes all identifiers in the expression of the label according to the given map. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            * | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            * @param substitution The substitution to perform. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            * @return The resulting label. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            */ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            ObservationLabel substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        }; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				    } // namespace prism | 
				 | 
				 | 
				    } // namespace prism | 
			
		
		
	
		
			
				 | 
				 | 
				} // namespace storm | 
				 | 
				 | 
				} // namespace storm | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
					
					
				 | 
				
  |