@@ -369,6 +369,16 @@ void jbmc_parse_optionst::get_command_line_options(optionst &options)
369
369
" symex-coverage-report" ,
370
370
cmdline.get_value (" symex-coverage-report" ));
371
371
372
+ if (cmdline.isset (" validate-ssa-equation" ))
373
+ {
374
+ options.set_option (" validate-ssa-equation" , true );
375
+ }
376
+
377
+ if (cmdline.isset (" validate-goto-model" ))
378
+ {
379
+ options.set_option (" validate-goto-model" , true );
380
+ }
381
+
372
382
PARSE_OPTIONS_GOTO_TRACE (cmdline, options);
373
383
374
384
if (cmdline.isset (" no-lazy-methods" ))
@@ -553,6 +563,11 @@ int jbmc_parse_optionst::doit()
553
563
if (set_properties (goto_model))
554
564
return 7 ; // should contemplate EX_USAGE from sysexits.h
555
565
566
+ if (cmdline.isset (" validate-goto-model" ))
567
+ {
568
+ goto_model.validate (validation_modet::INVARIANT);
569
+ }
570
+
556
571
// The `configure_bmc` callback passed will enable enum-unwind-static if
557
572
// applicable.
558
573
return bmct::do_language_agnostic_bmc (
@@ -585,6 +600,11 @@ int jbmc_parse_optionst::doit()
585
600
// particular function:
586
601
add_failed_symbols (lazy_goto_model.symbol_table );
587
602
603
+ if (cmdline.isset (" validate-goto-model" ))
604
+ {
605
+ lazy_goto_model.validate (validation_modet::INVARIANT);
606
+ }
607
+
588
608
// Provide show-goto-functions and similar dump functions after symex
589
609
// executes. If --paths is active, these dump routines run after every
590
610
// paths iteration. Its return value indicates that if we ran any dump
@@ -1141,6 +1161,7 @@ void jbmc_parse_optionst::help()
1141
1161
" --version show version and exit\n "
1142
1162
" --xml-ui use XML-formatted output\n "
1143
1163
" --json-ui use JSON-formatted output\n "
1164
+ HELP_VALIDATE
1144
1165
HELP_GOTO_TRACE
1145
1166
HELP_FLUSH
1146
1167
" --verbosity # verbosity level\n "
0 commit comments