00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00042 #ifndef __NUSMV_CORE_SIMULATE_SIMULATE_H__
00043 #define __NUSMV_CORE_SIMULATE_SIMULATE_H__
00044
00045 #include "nusmv/core/utils/utils.h"
00046 #include "nusmv/core/dd/dd.h"
00047 #include "nusmv/core/fsm/bdd/BddFsm.h"
00048 #include "nusmv/core/node/node.h"
00049 #include "nusmv/core/trace/TraceMgr.h"
00050 #include "nusmv/core/trace/TraceLabel.h"
00051
00052
00053
00054
00055
00061 #define ENV_SIMULATE_STATE "esimulatestate"
00062
00063
00064
00065
00066
00072 typedef enum {Deterministic, Random, Interactive} Simulation_Mode;
00073
00074
00075
00076
00077
00095 bdd_ptr
00096 Simulate_ChooseOneState(NuSMVEnv_ptr, BddFsm_ptr, bdd_ptr,
00097 Simulation_Mode, int);
00098
00104 void
00105 Simulate_ChooseOneStateInput(NuSMVEnv_ptr env, BddFsm_ptr,
00106 bdd_ptr, bdd_ptr,
00107 Simulation_Mode, int,
00108 bdd_ptr*, bdd_ptr*);
00109
00121 node_ptr
00122 Simulate_MultipleSteps(NuSMVEnv_ptr, BddFsm_ptr, bdd_ptr, boolean,
00123 Simulation_Mode, int, int);
00124
00130 int
00131 Simulate_pick_state(const NuSMVEnv_ptr env,
00132 TraceLabel label,
00133 const Simulation_Mode mode,
00134 const int display_all, const boolean verbose,
00135 bdd_ptr bdd_constraints);
00136
00142 int
00143 Simulate_simulate(const NuSMVEnv_ptr env,
00144 const boolean time_shift, const Simulation_Mode mode,
00145 const int steps, const int display_all,
00146 const boolean printrace, const boolean only_changes,
00147 const bdd_ptr bdd_constr);
00148
00154 int Simulate_goto_state(NuSMVEnv_ptr env,
00155 TraceLabel label);
00156
00162 int Simulate_print_current_state(NuSMVEnv_ptr env,
00163 boolean Verbosely);
00164
00170 void Simulate_Pkg_init(NuSMVEnv_ptr env);
00171
00177 void Simulate_Pkg_quit(NuSMVEnv_ptr env);
00178
00187 TraceLabel
00188 Simulate_get_new_trace_no_from_label(NuSMVEnv_ptr env,
00189 TraceMgr_ptr gtm,
00190 const char* str_label,
00191 int* out_tr_number);
00192
00211 bdd_ptr simulate_get_constraints_from_string(NuSMVEnv_ptr env,
00212 const char* constr_str,
00213 BddEnc_ptr enc,
00214 boolean allow_nexts,
00215 boolean allow_inputs);
00216
00217
00218 #endif