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
00039 #ifndef __NUSMV_SHELL_BMC_BMC_CMD_H__
00040 #define __NUSMV_SHELL_BMC_BMC_CMD_H__
00041
00042 #if HAVE_CONFIG_H
00043 # include "nusmv-config.h"
00044 #endif
00045
00046 #include "nusmv/core/prop/Prop.h"
00047 #include "nusmv/core/utils/utils.h"
00048 #include "nusmv/core/sat/sat.h"
00049 #include "nusmv/core/utils/bmc_profiler.h"
00050 #include "nusmv/core/utils/watchdog_util.h"
00051
00057 #define BMC_USAGE 2
00058
00064 #define IS_INC_SAT true
00065
00071 #define IS_BMC_DUMP true
00072
00075
00076
00077
00078
00086 void Bmc_AddCmd(NuSMVEnv_ptr env);
00087
00093 void Bmc_Cmd_quit(NuSMVEnv_ptr env);
00094
00102 Outcome Bmc_Cmd_compute_rel_loop(NuSMVEnv_ptr const env,
00103 int* const rel_loop,
00104 const char* str_loop,
00105 const int k);
00106
00121 int Bmc_CommandBmcSetup(NuSMVEnv_ptr env, int argc, char** argv);
00122
00174 int Bmc_CommandBmcSimulate(NuSMVEnv_ptr env, int argc, char** argv);
00175
00233 int
00234 Bmc_CommandBmcIncSimulate(NuSMVEnv_ptr env, int argc, char** argv);
00235
00273 int Bmc_CommandBmcPickState(NuSMVEnv_ptr env, int argc, char** argv);
00274
00303 int
00304 Bmc_CommandBmcSimulateCheckFeasibleConstraints(NuSMVEnv_ptr env, int argc, char** argv);
00305
00381 int Bmc_CommandGenLtlSpecBmc(NuSMVEnv_ptr env, int argc, char** argv);
00382
00445 int
00446 Bmc_CommandGenLtlSpecBmcOnePb(NuSMVEnv_ptr env, int argc, char** argv);
00447
00518 int
00519 Bmc_CommandCheckLtlSpecBmc(NuSMVEnv_ptr env, int argc, char** argv);
00520
00579 int
00580 Bmc_CommandCheckLtlSpecBmcOnePb(NuSMVEnv_ptr env, int argc, char** argv);
00581
00620 int Bmc_CommandGenInvarBmc(NuSMVEnv_ptr env, int argc, char** argv);
00621
00667 int Bmc_CommandCheckInvarBmc(NuSMVEnv_ptr env, int argc, char** argv);
00668
00703 Outcome
00704 Bmc_cmd_options_handling(NuSMVEnv_ptr env, int argc, char** argv,
00705 Prop_Type prop_type,
00706 Prop_ptr* res_prop,
00707 int* res_k,
00708 int* res_l,
00709 char** res_a,
00710 char** res_s,
00711 char** res_o,
00712 boolean* res_e,
00713 int *res_step_k);
00714
00715
00716 #if NUSMV_HAVE_INCREMENTAL_SAT
00717
00774 int
00775 Bmc_CommandCheckLtlSpecBmcInc(NuSMVEnv_ptr env, int argc, char** argv);
00776
00814 int
00815 Bmc_CommandCheckInvarBmcInc(NuSMVEnv_ptr env, int argc, char** argv);
00816 #endif
00817
00818
00819 #if NUSMV_HAVE_BMC_PROFILER_LIBRARY
00820 int Bmc_CommandProfile(NuSMVEnv_ptr env, int argc, char ** argv);
00821 #endif
00822
00823 #if NUSMV_HAVE_WATCHDOG_LIBRARY
00824 int Bmc_CommandWatchdog(NuSMVEnv_ptr env, int argc, char ** argv);
00825 #endif
00826
00829 #endif