|  | 
|  | Model () | 
|  | Creates an uninitialized model. 
 | 
|  | 
|  | Model (std::string const &name, ModelType const &modelType, uint64_t version=1, boost::optional< std::shared_ptr< storm::expressions::ExpressionManager > > const &expressionManager=boost::none) | 
|  | Creates an empty model with the given type. 
 | 
|  | 
|  | Model (Model const &other) | 
|  | Copies the given model. 
 | 
|  | 
| Model & | operator= (Model const &other) | 
|  | Copy-assigns the given model. 
 | 
|  | 
|  | Model (Model &&other) | 
|  | 
| Model & | operator= (Model &&other) | 
|  | 
| storm::expressions::ExpressionManager & | getManager () const | 
|  | Retrieves the expression manager responsible for the expressions in the model. 
 | 
|  | 
| uint64_t | getJaniVersion () const | 
|  | Retrieves the JANI-version of the model. 
 | 
|  | 
| ModelType const & | getModelType () const | 
|  | Retrieves the type of the model. 
 | 
|  | 
| void | setModelType (ModelType const &) | 
|  | Changes (only) the type declaration of the model. 
 | 
|  | 
| ModelFeatures const & | getModelFeatures () const | 
|  | Retrieves the enabled model features. 
 | 
|  | 
| ModelFeatures & | getModelFeatures () | 
|  | Retrieves the enabled model features. 
 | 
|  | 
| std::string const & | getName () const | 
|  | Retrieves the name of the model. 
 | 
|  | 
| void | setName (std::string const &newName) | 
|  | Sets the name of the model. 
 | 
|  | 
| Model | flattenComposition (std::shared_ptr< storm::utility::solver::SmtSolverFactory > const &smtSolverFactory=std::make_shared< storm::utility::solver::SmtSolverFactory >()) const | 
|  | Flatten the composition to obtain an equivalent model that contains exactly one automaton that has the standard composition. 
 | 
|  | 
| bool | hasAction (std::string const &name) const | 
|  | Checks whether the model has an action with the given name. 
 | 
|  | 
| uint64_t | getActionIndex (std::string const &name) const | 
|  | Get the index of the action. 
 | 
|  | 
| std::unordered_map< std::string, uint64_t > const & | getActionToIndexMap () const | 
|  | Retrieves the mapping from action names to their indices. 
 | 
|  | 
| uint64_t | addAction (Action const &action) | 
|  | Adds an action to the model. 
 | 
|  | 
| Action const & | getAction (uint64_t index) const | 
|  | Retrieves the action with the given index. 
 | 
|  | 
| std::vector< Action > const & | getActions () const | 
|  | Retrieves the actions of the model. 
 | 
|  | 
| std::map< uint64_t, std::string > | getActionIndexToNameMap () const | 
|  | Builds a map with action indices mapped to their names. 
 | 
|  | 
| storm::storage::FlatSet< uint64_t > const & | getNonsilentActionIndices () const | 
|  | Retrieves all non-silent action indices of the model. 
 | 
|  | 
| void | addConstant (Constant const &constant) | 
|  | Adds the given constant to the model. 
 | 
|  | 
| bool | hasConstant (std::string const &name) const | 
|  | Retrieves whether the model has a constant with the given name. 
 | 
|  | 
| void | removeConstant (std::string const &name) | 
|  | Removes (without checks) a constant from the model. 
 | 
|  | 
| std::vector< Constant > const & | getConstants () const | 
|  | Retrieves the constants of the model. 
 | 
|  | 
| std::vector< Constant > & | getConstants () | 
|  | Retrieves the constants of the model. 
 | 
|  | 
| Constant const & | getConstant (std::string const &name) const | 
|  | Retrieves the constant with the given name (if any). 
 | 
|  | 
| Variable const & | addVariable (Variable const &variable) | 
|  | Adds the given variable to this model. 
 | 
|  | 
| VariableSet & | getGlobalVariables () | 
|  | Retrieves the variables of this automaton. 
 | 
|  | 
| VariableSet const & | getGlobalVariables () const | 
|  | Retrieves the variables of this automaton. 
 | 
|  | 
| std::set< storm::expressions::Variable > | getAllExpressionVariables (bool includeLocationExpressionVariables=false) const | 
|  | Retrieves all expression variables used by this model. 
 | 
|  | 
| std::set< storm::expressions::Variable > | getAllLocationExpressionVariables () const | 
|  | Retrieves all location expression variables used by this model. 
 | 
|  | 
| bool | hasGlobalVariable (std::string const &name) const | 
|  | Retrieves whether this model has a global variable with the given name. 
 | 
|  | 
| Variable const & | getGlobalVariable (std::string const &name) const | 
|  | Retrieves the global variable with the given name if one exists. 
 | 
|  | 
| bool | hasNonGlobalTransientVariable () const | 
|  | Retrieves whether this model has a non-global transient variable. 
 | 
|  | 
| FunctionDefinition const & | addFunctionDefinition (FunctionDefinition const &functionDefinition) | 
|  | Adds the given function definition. 
 | 
|  | 
| std::unordered_map< std::string, FunctionDefinition > const & | getGlobalFunctionDefinitions () const | 
|  | Retrieves all global function definitions. 
 | 
|  | 
| std::unordered_map< std::string, FunctionDefinition > & | getGlobalFunctionDefinitions () | 
|  | Retrieves all global function definitions. 
 | 
|  | 
| storm::expressions::ExpressionManager & | getExpressionManager () const | 
|  | Retrieves the manager responsible for the expressions in the JANI model. 
 | 
|  | 
| bool | hasNonTrivialRewardExpression () const | 
|  | Returns true iff there is a non-trivial reward model, i.e., a reward model that does not consist of a single, global, numerical, transient variable. 
 | 
|  | 
| bool | isNonTrivialRewardModelExpression (std::string const &identifier) const | 
|  | Returns true iff the given identifier corresponds to a non-trivial reward expression i.e., a reward model that does not consist of a single, global, numerical, transient variable. 
 | 
|  | 
| bool | addNonTrivialRewardExpression (std::string const &identifier, storm::expressions::Expression const &rewardExpression) | 
|  | Adds a reward expression, i.e., a reward model that does not consist of a single, global, numerical, transient variable. 
 | 
|  | 
| storm::expressions::Expression | getRewardModelExpression (std::string const &identifier) const | 
|  | Retrieves the defining reward expression of the reward model with the given identifier. 
 | 
|  | 
| std::vector< std::pair< std::string, storm::expressions::Expression > > | getAllRewardModelExpressions () const | 
|  | Retrieves all available reward model names and expressions of the model. 
 | 
|  | 
| std::unordered_map< std::string, storm::expressions::Expression > const & | getNonTrivialRewardExpressions () const | 
|  | Retrieves all available non-trivial reward model names and expressions of the model. 
 | 
|  | 
| std::unordered_map< std::string, storm::expressions::Expression > & | getNonTrivialRewardExpressions () | 
|  | Retrieves all available non-trivial reward model names and expressions of the model. 
 | 
|  | 
| uint64_t | addAutomaton (Automaton const &automaton) | 
|  | Adds the given automaton to the automata of this model. 
 | 
|  | 
| std::vector< Automaton > & | getAutomata () | 
|  | Retrieves the automata of the model. 
 | 
|  | 
| std::vector< Automaton > const & | getAutomata () const | 
|  | Retrieves the automata of the model. 
 | 
|  | 
| void | replaceAutomaton (uint64_t index, Automaton const &newAutomaton) | 
|  | Replaces the automaton at index with a new automaton. 
 | 
|  | 
| bool | hasAutomaton (std::string const &name) const | 
|  | Rerieves whether there exists an automaton with the given name. 
 | 
|  | 
| Automaton & | getAutomaton (std::string const &name) | 
|  | Retrieves the automaton with the given name. 
 | 
|  | 
| Automaton & | getAutomaton (uint64_t index) | 
|  | Retrieves the automaton with the given index. 
 | 
|  | 
| Automaton const & | getAutomaton (uint64_t index) const | 
|  | Retrieves the automaton with the given index. 
 | 
|  | 
| Automaton const & | getAutomaton (std::string const &name) const | 
|  | Retrieves the automaton with the given name. 
 | 
|  | 
| uint64_t | getAutomatonIndex (std::string const &name) const | 
|  | Retrieves the index of the given automaton. 
 | 
|  | 
| std::size_t | getNumberOfAutomata () const | 
|  | Retrieves the number of automata in this model. 
 | 
|  | 
| std::size_t | getNumberOfEdges () const | 
|  | Retrieves the total number of edges in this model. 
 | 
|  | 
| std::size_t | getTotalNumberOfNonTransientVariables () const | 
|  | Number of global and local variables. 
 | 
|  | 
| InformationObject | getModelInformation () const | 
|  | Returns various information of this model. 
 | 
|  | 
| void | setSystemComposition (std::shared_ptr< Composition > const &composition) | 
|  | Sets the system composition expression of the JANI model. 
 | 
|  | 
| void | setStandardSystemComposition () | 
|  | Sets the system composition to be the fully-synchronizing parallel composition of all automat. 
 | 
|  | 
| std::shared_ptr< Composition > | getStandardSystemComposition () const | 
|  | Gets the system composition as the standard, fully-synchronizing parallel composition. 
 | 
|  | 
| Composition const & | getSystemComposition () const | 
|  | Retrieves the system composition expression. 
 | 
|  | 
| void | simplifyComposition () | 
|  | Attempts to simplify the composition. 
 | 
|  | 
| std::set< std::string > | getActionNames (bool includeSilent=true) const | 
|  | Retrieves the set of action names. 
 | 
|  | 
| Model | defineUndefinedConstants (std::map< storm::expressions::Variable, storm::expressions::Expression > const &constantDefinitions) const | 
|  | Defines the undefined constants of the model by the given expressions. 
 | 
|  | 
| bool | hasUndefinedConstants () const | 
|  | Retrieves whether the model still has undefined constants. 
 | 
|  | 
| std::vector< std::reference_wrapper< Constant const > > | getUndefinedConstants () const | 
|  | Retrieves all undefined constants of the model. 
 | 
|  | 
| Model & | replaceUnassignedVariablesWithConstants () | 
|  | Replaces each variable to which we never assign a value with a constant. 
 | 
|  | 
| Model & | substituteConstantsInPlace (bool const substituteTranscendentalNumbers) | 
|  | Substitutes all constants in all expressions of the model. 
 | 
|  | 
| Model | substituteConstants () const | 
|  | Substitutes all constants in all expressions of the model. 
 | 
|  | 
| std::map< storm::expressions::Variable, storm::expressions::Expression > | getConstantsSubstitution () const | 
|  | Retrieves a mapping from expression variables associated with defined constants of the model to their (the constants') defining expression. 
 | 
|  | 
| void | substitute (std::map< storm::expressions::Variable, storm::expressions::Expression > const &substitution, bool const substituteTranscendentalNumbers) | 
|  | Substitutes all expression variables in all expressions of the model. 
 | 
|  | 
| void | substituteFunctions () | 
|  | Substitutes all function calls with the corresponding function definition. 
 | 
|  | 
| void | substituteFunctions (std::vector< Property > &properties) | 
|  | 
| Model | substituteConstantsFunctionsTranscendentals () const | 
|  | 
| bool | containsArrayVariables () const | 
|  | Returns true if at least one array variable occurs in the model. 
 | 
|  | 
| ArrayEliminatorData | eliminateArrays (bool keepNonTrivialArrayAccess=false) | 
|  | Eliminates occurring array variables and expressions by replacing array variables by multiple basic variables. 
 | 
|  | 
| void | eliminateArrays (std::vector< Property > &properties) | 
|  | Eliminates occurring array variables and expressions by replacing array variables by multiple basic variables. 
 | 
|  | 
| ModelFeatures | restrictToFeatures (ModelFeatures const &modelFeatures) | 
|  | Attempts to eliminate all features of this model that are not in the given set of features. 
 | 
|  | 
| ModelFeatures | restrictToFeatures (ModelFeatures const &modelFeatures, std::vector< Property > &properties) | 
|  | Attempts to eliminate all features of this model and the given properties that are not in the given set of features. 
 | 
|  | 
| bool | hasInitialStatesRestriction () const | 
|  | Retrieves whether there is an expression restricting the legal initial values of the global variables. 
 | 
|  | 
| bool | hasNonTrivialInitialStates () const | 
|  | Retrieves whether there are non-trivial initial states in the model or any of the contained automata. 
 | 
|  | 
| void | setInitialStatesRestriction (storm::expressions::Expression const &initialStatesRestriction) | 
|  | Sets the expression restricting the legal initial values of the global variables. 
 | 
|  | 
| storm::expressions::Expression const & | getInitialStatesRestriction () const | 
|  | Gets the expression restricting the legal initial values of the global variables. 
 | 
|  | 
| storm::expressions::Expression | getInitialStatesExpression () const | 
|  | Retrieves the expression defining the legal initial values of the variables. 
 | 
|  | 
| bool | hasTrivialInitialStatesExpression () const | 
|  | Retrieves whether the initial states expression is trivial in the sense that no automaton has an initial states restriction and all variables have initial values. 
 | 
|  | 
| storm::expressions::Expression | getInitialStatesExpression (std::vector< std::reference_wrapper< storm::jani::Automaton const > > const &automata) const | 
|  | Retrieves the expression defining the legal initial values of the variables. 
 | 
|  | 
| bool | isDeterministicModel () const | 
|  | Determines whether this model is a deterministic one in the sense that each state only has one choice. 
 | 
|  | 
| bool | isDiscreteTimeModel () const | 
|  | Determines whether this model is a discrete-time model. 
 | 
|  | 
| std::vector< storm::expressions::Expression > | getAllRangeExpressions (std::vector< std::reference_wrapper< storm::jani::Automaton const > > const &automata={}) const | 
|  | Retrieves a list of expressions that characterize the legal values of the variables in this model. 
 | 
|  | 
| bool | hasStandardComposition () const | 
|  | Retrieves whether this model has the standard composition, that is it composes all automata in parallel and synchronizes over all common actions. 
 | 
|  | 
| bool | hasStandardCompliantComposition () const | 
|  | Checks whether the composition has no nesting. 
 | 
|  | 
| void | finalize () | 
|  | After adding all components to the model, this method has to be called. 
 | 
|  | 
| void | checkValid () const | 
|  | Checks if the model is valid JANI, which should be verified before any further operations are applied to a model. 
 | 
|  | 
| storm::expressions::Expression | getLabelExpression (Variable const &transientVariable, std::vector< std::reference_wrapper< Automaton const > > const &automata) const | 
|  | Creates the expression that characterizes all states in which the provided transient boolean variable is true. 
 | 
|  | 
| storm::expressions::Expression | getLabelExpression (Variable const &transientVariable) const | 
|  | Creates the expression that characterizes all states in which the provided transient boolean variable is true. 
 | 
|  | 
| bool | undefinedConstantsAreGraphPreserving () const | 
|  | Checks that undefined constants (parameters) of the model preserve the graph of the underlying model. 
 | 
|  | 
| void | liftTransientEdgeDestinationAssignments (int64_t maxLevel=0) | 
|  | Lifts the common edge destination assignments of transient variables to edge assignments. 
 | 
|  | 
| bool | hasTransientEdgeDestinationAssignments () const | 
|  | Retrieves whether there is any transient edge destination assignment in the model. 
 | 
|  | 
| bool | usesAssignmentLevels (bool onlyTransient=false) const | 
|  | Retrieves whether the model uses an assignment level other than zero. 
 | 
|  | 
| bool | isLinear () const | 
|  | Checks the model for linearity. 
 | 
|  | 
| void | makeStandardJaniCompliant () | 
|  | 
| void | pushEdgeAssignmentsToDestinations () | 
|  | 
| bool | reusesActionsInComposition () const | 
|  | Checks whether in the composition, actions are reused: That is, if the model is put in parallel composition and the same action potentially leads to multiple edges from the same state. 
 | 
|  | 
| Model | restrictEdges (storm::storage::FlatSet< uint_fast64_t > const &automataAndEdgeIndices) const | 
|  | Creates a new model that only contains the selected edges. 
 | 
|  | 
| void | writeDotToStream (std::ostream &outStream=std::cout) const | 
|  |