./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version aa418289 Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/AutomizerReach.xml -i ../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i -s /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash a2c46755d0cb80f6b2e7b990e0a1bd9a49737b84 ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/AutomizerReach.xml -i ../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i -s /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash a2c46755d0cb80f6b2e7b990e0a1bd9a49737b84 ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Execution finished normally Writing output log to file Ultimate.log Writing human readable error path to file UltimateCounterExample.errorpath Result: FALSE --- Real Ultimate output --- This is Ultimate 0.1.23-aa41828 [2018-11-23 12:21:30,661 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:21:30,663 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:21:30,670 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:21:30,670 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:21:30,671 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:21:30,671 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:21:30,672 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:21:30,673 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:21:30,673 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:21:30,674 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:21:30,674 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:21:30,674 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:21:30,675 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:21:30,675 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:21:30,676 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:21:30,676 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:21:30,678 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:21:30,679 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:21:30,679 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:21:30,680 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:21:30,681 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:21:30,682 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:21:30,682 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:21:30,683 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:21:30,683 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:21:30,684 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:21:30,684 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:21:30,685 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:21:30,685 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:21:30,685 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:21:30,686 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:21:30,686 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:21:30,686 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:21:30,687 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:21:30,687 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:21:30,688 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Default.epf [2018-11-23 12:21:30,694 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:21:30,695 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:21:30,695 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:21:30,695 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:21:30,696 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:21:30,696 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:21:30,696 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:21:30,696 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:21:30,696 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:21:30,696 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:21:30,696 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:21:30,697 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:21:30,697 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:21:30,698 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:21:30,698 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> a2c46755d0cb80f6b2e7b990e0a1bd9a49737b84 [2018-11-23 12:21:30,719 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:21:30,727 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:21:30,729 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:21:30,730 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:21:30,730 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:21:30,731 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:30,766 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/9b878de78/7c388a5a0d1b46159bb2dbf6deaf0a0a/FLAGb01579a33 [2018-11-23 12:21:31,099 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:21:31,100 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:31,106 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/9b878de78/7c388a5a0d1b46159bb2dbf6deaf0a0a/FLAGb01579a33 [2018-11-23 12:21:31,117 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/9b878de78/7c388a5a0d1b46159bb2dbf6deaf0a0a [2018-11-23 12:21:31,120 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:21:31,121 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:21:31,122 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:21:31,122 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:21:31,125 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:21:31,126 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,128 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6c93cfda and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31, skipping insertion in model container [2018-11-23 12:21:31,128 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,136 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:21:31,155 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:21:31,294 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:21:31,296 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:21:31,315 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:21:31,323 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:21:31,323 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31 WrapperNode [2018-11-23 12:21:31,324 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:21:31,324 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:21:31,324 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:21:31,324 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:21:31,329 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,334 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,338 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:21:31,338 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:21:31,338 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:21:31,338 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:21:31,380 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,380 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,381 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,382 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,387 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,394 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,395 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... [2018-11-23 12:21:31,396 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:21:31,396 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:21:31,397 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:21:31,397 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:21:31,397 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:21:31,429 INFO L130 BoogieDeclarations]: Found specification of procedure mp_add [2018-11-23 12:21:31,429 INFO L138 BoogieDeclarations]: Found implementation of procedure mp_add [2018-11-23 12:21:31,429 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:21:31,429 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:21:31,429 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:21:31,429 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:21:31,429 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:21:31,429 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:21:31,429 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 12:21:31,429 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 12:21:31,676 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:21:31,676 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 12:21:31,676 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:31 BoogieIcfgContainer [2018-11-23 12:21:31,676 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:21:31,677 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:21:31,677 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:21:31,679 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:21:31,679 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:21:31" (1/3) ... [2018-11-23 12:21:31,680 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5fc61f87 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:21:31, skipping insertion in model container [2018-11-23 12:21:31,680 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:31" (2/3) ... [2018-11-23 12:21:31,680 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5fc61f87 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:21:31, skipping insertion in model container [2018-11-23 12:21:31,681 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:31" (3/3) ... [2018-11-23 12:21:31,682 INFO L112 eAbstractionObserver]: Analyzing ICFG byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:31,688 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:21:31,692 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:21:31,705 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:21:31,729 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:21:31,729 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:21:31,729 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:21:31,729 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:21:31,729 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:21:31,729 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:21:31,729 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:21:31,730 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:21:31,730 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:21:31,741 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states. [2018-11-23 12:21:31,745 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 12:21:31,745 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:31,746 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:31,747 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:31,750 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:31,750 INFO L82 PathProgramCache]: Analyzing trace with hash 397916932, now seen corresponding path program 1 times [2018-11-23 12:21:31,751 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:31,751 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:31,788 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:31,788 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:31,788 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:31,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:31,842 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:31,844 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:31,844 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 12:21:31,847 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 12:21:31,854 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 12:21:31,854 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:21:31,856 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 2 states. [2018-11-23 12:21:31,870 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:31,870 INFO L93 Difference]: Finished difference Result 76 states and 112 transitions. [2018-11-23 12:21:31,870 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 12:21:31,871 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 21 [2018-11-23 12:21:31,871 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:31,878 INFO L225 Difference]: With dead ends: 76 [2018-11-23 12:21:31,878 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:21:31,880 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:21:31,894 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:21:31,904 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 47. [2018-11-23 12:21:31,905 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2018-11-23 12:21:31,906 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 73 transitions. [2018-11-23 12:21:31,907 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 73 transitions. Word has length 21 [2018-11-23 12:21:31,907 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:31,907 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 73 transitions. [2018-11-23 12:21:31,907 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 12:21:31,907 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 73 transitions. [2018-11-23 12:21:31,908 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 12:21:31,908 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:31,908 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:31,908 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:31,908 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:31,909 INFO L82 PathProgramCache]: Analyzing trace with hash -1531564698, now seen corresponding path program 1 times [2018-11-23 12:21:31,909 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:31,909 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:31,910 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:31,910 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:31,910 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:31,930 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:32,006 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:32,006 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:32,007 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 12:21:32,008 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 12:21:32,008 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 12:21:32,008 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:21:32,008 INFO L87 Difference]: Start difference. First operand 47 states and 73 transitions. Second operand 3 states. [2018-11-23 12:21:32,140 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:32,140 INFO L93 Difference]: Finished difference Result 102 states and 169 transitions. [2018-11-23 12:21:32,140 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:21:32,141 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 21 [2018-11-23 12:21:32,141 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:32,142 INFO L225 Difference]: With dead ends: 102 [2018-11-23 12:21:32,142 INFO L226 Difference]: Without dead ends: 70 [2018-11-23 12:21:32,143 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 4 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:21:32,143 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2018-11-23 12:21:32,149 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 68. [2018-11-23 12:21:32,149 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 68 states. [2018-11-23 12:21:32,150 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 98 transitions. [2018-11-23 12:21:32,150 INFO L78 Accepts]: Start accepts. Automaton has 68 states and 98 transitions. Word has length 21 [2018-11-23 12:21:32,150 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:32,151 INFO L480 AbstractCegarLoop]: Abstraction has 68 states and 98 transitions. [2018-11-23 12:21:32,151 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 12:21:32,151 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 98 transitions. [2018-11-23 12:21:32,152 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 28 [2018-11-23 12:21:32,152 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:32,152 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:32,152 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:32,152 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:32,152 INFO L82 PathProgramCache]: Analyzing trace with hash -1473767205, now seen corresponding path program 1 times [2018-11-23 12:21:32,153 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:32,153 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:32,153 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,154 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:32,154 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,168 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:32,239 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:32,239 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:32,240 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:32,240 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:32,240 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:32,240 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:32,240 INFO L87 Difference]: Start difference. First operand 68 states and 98 transitions. Second operand 4 states. [2018-11-23 12:21:32,473 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:32,473 INFO L93 Difference]: Finished difference Result 159 states and 262 transitions. [2018-11-23 12:21:32,473 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:32,473 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 27 [2018-11-23 12:21:32,473 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:32,474 INFO L225 Difference]: With dead ends: 159 [2018-11-23 12:21:32,475 INFO L226 Difference]: Without dead ends: 127 [2018-11-23 12:21:32,475 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:32,475 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 127 states. [2018-11-23 12:21:32,482 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 127 to 91. [2018-11-23 12:21:32,482 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 91 states. [2018-11-23 12:21:32,483 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 91 states to 91 states and 133 transitions. [2018-11-23 12:21:32,483 INFO L78 Accepts]: Start accepts. Automaton has 91 states and 133 transitions. Word has length 27 [2018-11-23 12:21:32,483 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:32,483 INFO L480 AbstractCegarLoop]: Abstraction has 91 states and 133 transitions. [2018-11-23 12:21:32,484 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:32,484 INFO L276 IsEmpty]: Start isEmpty. Operand 91 states and 133 transitions. [2018-11-23 12:21:32,484 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2018-11-23 12:21:32,484 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:32,485 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:32,485 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:32,485 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:32,485 INFO L82 PathProgramCache]: Analyzing trace with hash -13869364, now seen corresponding path program 1 times [2018-11-23 12:21:32,485 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:32,485 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:32,486 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,486 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:32,486 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,498 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:32,538 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 12:21:32,538 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:32,538 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:32,539 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:32,539 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:32,539 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:32,539 INFO L87 Difference]: Start difference. First operand 91 states and 133 transitions. Second operand 4 states. [2018-11-23 12:21:32,697 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:32,697 INFO L93 Difference]: Finished difference Result 245 states and 378 transitions. [2018-11-23 12:21:32,698 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:32,698 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 33 [2018-11-23 12:21:32,698 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:32,699 INFO L225 Difference]: With dead ends: 245 [2018-11-23 12:21:32,699 INFO L226 Difference]: Without dead ends: 174 [2018-11-23 12:21:32,699 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:32,700 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 174 states. [2018-11-23 12:21:32,707 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 174 to 124. [2018-11-23 12:21:32,708 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 124 states. [2018-11-23 12:21:32,709 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 124 states to 124 states and 188 transitions. [2018-11-23 12:21:32,709 INFO L78 Accepts]: Start accepts. Automaton has 124 states and 188 transitions. Word has length 33 [2018-11-23 12:21:32,709 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:32,709 INFO L480 AbstractCegarLoop]: Abstraction has 124 states and 188 transitions. [2018-11-23 12:21:32,709 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:32,709 INFO L276 IsEmpty]: Start isEmpty. Operand 124 states and 188 transitions. [2018-11-23 12:21:32,711 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 12:21:32,711 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:32,711 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:32,711 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:32,712 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:32,712 INFO L82 PathProgramCache]: Analyzing trace with hash -1417056703, now seen corresponding path program 1 times [2018-11-23 12:21:32,712 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:32,712 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:32,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,713 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:32,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:32,730 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:32,808 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2018-11-23 12:21:32,809 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:32,809 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:21:32,809 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:21:32,809 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:21:32,809 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:32,810 INFO L87 Difference]: Start difference. First operand 124 states and 188 transitions. Second operand 5 states. [2018-11-23 12:21:33,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:33,009 INFO L93 Difference]: Finished difference Result 346 states and 527 transitions. [2018-11-23 12:21:33,009 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:21:33,009 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 39 [2018-11-23 12:21:33,009 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:33,011 INFO L225 Difference]: With dead ends: 346 [2018-11-23 12:21:33,011 INFO L226 Difference]: Without dead ends: 240 [2018-11-23 12:21:33,012 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:33,013 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 240 states. [2018-11-23 12:21:33,020 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 240 to 132. [2018-11-23 12:21:33,020 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 132 states. [2018-11-23 12:21:33,022 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 197 transitions. [2018-11-23 12:21:33,022 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 197 transitions. Word has length 39 [2018-11-23 12:21:33,022 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:33,022 INFO L480 AbstractCegarLoop]: Abstraction has 132 states and 197 transitions. [2018-11-23 12:21:33,022 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:21:33,022 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 197 transitions. [2018-11-23 12:21:33,023 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2018-11-23 12:21:33,023 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:33,024 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:33,024 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:33,024 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:33,024 INFO L82 PathProgramCache]: Analyzing trace with hash -1068918534, now seen corresponding path program 1 times [2018-11-23 12:21:33,024 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:33,024 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:33,025 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:33,025 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:33,025 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:33,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:33,089 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2018-11-23 12:21:33,089 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:33,089 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:21:33,090 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:21:33,090 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:21:33,090 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:33,090 INFO L87 Difference]: Start difference. First operand 132 states and 197 transitions. Second operand 5 states. [2018-11-23 12:21:33,261 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:33,262 INFO L93 Difference]: Finished difference Result 367 states and 553 transitions. [2018-11-23 12:21:33,262 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:21:33,262 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 40 [2018-11-23 12:21:33,262 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:33,264 INFO L225 Difference]: With dead ends: 367 [2018-11-23 12:21:33,264 INFO L226 Difference]: Without dead ends: 260 [2018-11-23 12:21:33,265 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:33,265 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 260 states. [2018-11-23 12:21:33,273 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 260 to 142. [2018-11-23 12:21:33,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 142 states. [2018-11-23 12:21:33,274 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 142 states to 142 states and 210 transitions. [2018-11-23 12:21:33,274 INFO L78 Accepts]: Start accepts. Automaton has 142 states and 210 transitions. Word has length 40 [2018-11-23 12:21:33,274 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:33,275 INFO L480 AbstractCegarLoop]: Abstraction has 142 states and 210 transitions. [2018-11-23 12:21:33,275 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:21:33,275 INFO L276 IsEmpty]: Start isEmpty. Operand 142 states and 210 transitions. [2018-11-23 12:21:33,276 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 12:21:33,276 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:33,276 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:33,278 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:33,279 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:33,279 INFO L82 PathProgramCache]: Analyzing trace with hash 482670800, now seen corresponding path program 1 times [2018-11-23 12:21:33,279 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:33,279 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:33,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:33,280 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:33,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:33,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:33,338 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 14 proven. 4 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 12:21:33,339 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:21:33,339 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:21:33,360 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:33,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:33,389 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:33,465 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2018-11-23 12:21:33,480 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 12:21:33,480 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [5] total 7 [2018-11-23 12:21:33,481 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 12:21:33,481 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 12:21:33,481 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=27, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:33,481 INFO L87 Difference]: Start difference. First operand 142 states and 210 transitions. Second operand 7 states. [2018-11-23 12:21:34,184 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:34,184 INFO L93 Difference]: Finished difference Result 335 states and 526 transitions. [2018-11-23 12:21:34,184 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-23 12:21:34,184 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 41 [2018-11-23 12:21:34,184 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:34,185 INFO L225 Difference]: With dead ends: 335 [2018-11-23 12:21:34,185 INFO L226 Difference]: Without dead ends: 227 [2018-11-23 12:21:34,185 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 50 GetRequests, 42 SyntacticMatches, 1 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=25, Invalid=47, Unknown=0, NotChecked=0, Total=72 [2018-11-23 12:21:34,186 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 227 states. [2018-11-23 12:21:34,191 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 227 to 184. [2018-11-23 12:21:34,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 184 states. [2018-11-23 12:21:34,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 184 states to 184 states and 244 transitions. [2018-11-23 12:21:34,192 INFO L78 Accepts]: Start accepts. Automaton has 184 states and 244 transitions. Word has length 41 [2018-11-23 12:21:34,192 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:34,192 INFO L480 AbstractCegarLoop]: Abstraction has 184 states and 244 transitions. [2018-11-23 12:21:34,192 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 12:21:34,192 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 244 transitions. [2018-11-23 12:21:34,193 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2018-11-23 12:21:34,193 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:34,194 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:34,194 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:34,194 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:34,194 INFO L82 PathProgramCache]: Analyzing trace with hash 1878612609, now seen corresponding path program 1 times [2018-11-23 12:21:34,194 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:34,194 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:34,195 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,195 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:34,195 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:34,258 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 33 trivial. 0 not checked. [2018-11-23 12:21:34,258 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:34,258 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 12:21:34,258 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:21:34,258 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:21:34,259 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:34,259 INFO L87 Difference]: Start difference. First operand 184 states and 244 transitions. Second operand 6 states. [2018-11-23 12:21:34,503 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:34,503 INFO L93 Difference]: Finished difference Result 641 states and 855 transitions. [2018-11-23 12:21:34,504 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:21:34,504 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 47 [2018-11-23 12:21:34,504 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:34,505 INFO L225 Difference]: With dead ends: 641 [2018-11-23 12:21:34,505 INFO L226 Difference]: Without dead ends: 492 [2018-11-23 12:21:34,506 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:21:34,507 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 492 states. [2018-11-23 12:21:34,515 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 492 to 184. [2018-11-23 12:21:34,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 184 states. [2018-11-23 12:21:34,516 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 184 states to 184 states and 244 transitions. [2018-11-23 12:21:34,516 INFO L78 Accepts]: Start accepts. Automaton has 184 states and 244 transitions. Word has length 47 [2018-11-23 12:21:34,516 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:34,516 INFO L480 AbstractCegarLoop]: Abstraction has 184 states and 244 transitions. [2018-11-23 12:21:34,516 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:21:34,516 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 244 transitions. [2018-11-23 12:21:34,517 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2018-11-23 12:21:34,517 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:34,518 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:34,518 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:34,518 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:34,518 INFO L82 PathProgramCache]: Analyzing trace with hash -1498452256, now seen corresponding path program 1 times [2018-11-23 12:21:34,518 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:34,518 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:34,519 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,519 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:34,519 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:34,594 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 33 trivial. 0 not checked. [2018-11-23 12:21:34,594 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:34,594 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 12:21:34,594 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:21:34,594 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:21:34,595 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:34,595 INFO L87 Difference]: Start difference. First operand 184 states and 244 transitions. Second operand 6 states. [2018-11-23 12:21:34,874 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:34,875 INFO L93 Difference]: Finished difference Result 625 states and 835 transitions. [2018-11-23 12:21:34,876 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:21:34,876 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 48 [2018-11-23 12:21:34,876 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:34,877 INFO L225 Difference]: With dead ends: 625 [2018-11-23 12:21:34,877 INFO L226 Difference]: Without dead ends: 477 [2018-11-23 12:21:34,878 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:21:34,878 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 477 states. [2018-11-23 12:21:34,891 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 477 to 396. [2018-11-23 12:21:34,891 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 396 states. [2018-11-23 12:21:34,893 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 396 states to 396 states and 540 transitions. [2018-11-23 12:21:34,893 INFO L78 Accepts]: Start accepts. Automaton has 396 states and 540 transitions. Word has length 48 [2018-11-23 12:21:34,893 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:34,893 INFO L480 AbstractCegarLoop]: Abstraction has 396 states and 540 transitions. [2018-11-23 12:21:34,893 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:21:34,893 INFO L276 IsEmpty]: Start isEmpty. Operand 396 states and 540 transitions. [2018-11-23 12:21:34,894 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 12:21:34,894 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:34,894 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:34,894 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:34,894 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:34,895 INFO L82 PathProgramCache]: Analyzing trace with hash -211268504, now seen corresponding path program 1 times [2018-11-23 12:21:34,895 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:34,895 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:34,895 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,896 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:34,896 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:34,906 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:34,967 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 33 trivial. 0 not checked. [2018-11-23 12:21:34,967 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:34,967 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2018-11-23 12:21:34,967 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 12:21:34,968 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 12:21:34,968 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:21:34,968 INFO L87 Difference]: Start difference. First operand 396 states and 540 transitions. Second operand 8 states. [2018-11-23 12:21:35,602 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:35,602 INFO L93 Difference]: Finished difference Result 2003 states and 2787 transitions. [2018-11-23 12:21:35,603 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 12:21:35,603 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 49 [2018-11-23 12:21:35,603 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:35,606 INFO L225 Difference]: With dead ends: 2003 [2018-11-23 12:21:35,606 INFO L226 Difference]: Without dead ends: 1601 [2018-11-23 12:21:35,607 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=29, Invalid=103, Unknown=0, NotChecked=0, Total=132 [2018-11-23 12:21:35,609 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1601 states. [2018-11-23 12:21:35,634 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1601 to 1231. [2018-11-23 12:21:35,634 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1231 states. [2018-11-23 12:21:35,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1231 states to 1231 states and 1711 transitions. [2018-11-23 12:21:35,637 INFO L78 Accepts]: Start accepts. Automaton has 1231 states and 1711 transitions. Word has length 49 [2018-11-23 12:21:35,637 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:35,637 INFO L480 AbstractCegarLoop]: Abstraction has 1231 states and 1711 transitions. [2018-11-23 12:21:35,637 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 12:21:35,638 INFO L276 IsEmpty]: Start isEmpty. Operand 1231 states and 1711 transitions. [2018-11-23 12:21:35,639 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2018-11-23 12:21:35,639 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:35,639 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:35,639 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:35,639 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:35,640 INFO L82 PathProgramCache]: Analyzing trace with hash 968985203, now seen corresponding path program 1 times [2018-11-23 12:21:35,640 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:35,640 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:35,640 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:35,640 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:35,641 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:35,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:35,697 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 12:21:35,697 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:35,697 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:35,698 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:35,698 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:35,698 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:35,698 INFO L87 Difference]: Start difference. First operand 1231 states and 1711 transitions. Second operand 4 states. [2018-11-23 12:21:35,780 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:35,780 INFO L93 Difference]: Finished difference Result 1698 states and 2357 transitions. [2018-11-23 12:21:35,781 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:35,781 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 54 [2018-11-23 12:21:35,781 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:35,783 INFO L225 Difference]: With dead ends: 1698 [2018-11-23 12:21:35,783 INFO L226 Difference]: Without dead ends: 1249 [2018-11-23 12:21:35,784 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:35,785 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1249 states. [2018-11-23 12:21:35,807 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1249 to 1243. [2018-11-23 12:21:35,807 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1243 states. [2018-11-23 12:21:35,809 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1243 states to 1243 states and 1692 transitions. [2018-11-23 12:21:35,809 INFO L78 Accepts]: Start accepts. Automaton has 1243 states and 1692 transitions. Word has length 54 [2018-11-23 12:21:35,810 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:35,810 INFO L480 AbstractCegarLoop]: Abstraction has 1243 states and 1692 transitions. [2018-11-23 12:21:35,810 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:35,810 INFO L276 IsEmpty]: Start isEmpty. Operand 1243 states and 1692 transitions. [2018-11-23 12:21:35,811 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2018-11-23 12:21:35,811 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:35,811 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:35,811 INFO L423 AbstractCegarLoop]: === Iteration 12 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:35,811 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:35,811 INFO L82 PathProgramCache]: Analyzing trace with hash 752188361, now seen corresponding path program 1 times [2018-11-23 12:21:35,811 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:35,812 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:35,812 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:35,812 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:35,812 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:35,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:35,897 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2018-11-23 12:21:35,897 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:21:35,897 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:21:35,905 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:35,919 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:35,921 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:36,020 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 12:21:36,036 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 12:21:36,036 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [8] total 11 [2018-11-23 12:21:36,036 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-23 12:21:36,036 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-23 12:21:36,036 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=73, Unknown=0, NotChecked=0, Total=110 [2018-11-23 12:21:36,037 INFO L87 Difference]: Start difference. First operand 1243 states and 1692 transitions. Second operand 11 states. [2018-11-23 12:21:36,883 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:36,883 INFO L93 Difference]: Finished difference Result 2861 states and 3882 transitions. [2018-11-23 12:21:36,884 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2018-11-23 12:21:36,884 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 55 [2018-11-23 12:21:36,884 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:36,887 INFO L225 Difference]: With dead ends: 2861 [2018-11-23 12:21:36,887 INFO L226 Difference]: Without dead ends: 1603 [2018-11-23 12:21:36,888 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 70 GetRequests, 50 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=99, Invalid=243, Unknown=0, NotChecked=0, Total=342 [2018-11-23 12:21:36,890 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1603 states. [2018-11-23 12:21:36,912 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1603 to 1278. [2018-11-23 12:21:36,912 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1278 states. [2018-11-23 12:21:36,914 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1278 states to 1278 states and 1690 transitions. [2018-11-23 12:21:36,914 INFO L78 Accepts]: Start accepts. Automaton has 1278 states and 1690 transitions. Word has length 55 [2018-11-23 12:21:36,914 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:36,914 INFO L480 AbstractCegarLoop]: Abstraction has 1278 states and 1690 transitions. [2018-11-23 12:21:36,914 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-23 12:21:36,914 INFO L276 IsEmpty]: Start isEmpty. Operand 1278 states and 1690 transitions. [2018-11-23 12:21:36,916 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2018-11-23 12:21:36,916 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:36,916 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:36,916 INFO L423 AbstractCegarLoop]: === Iteration 13 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:36,916 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:36,916 INFO L82 PathProgramCache]: Analyzing trace with hash -1415790296, now seen corresponding path program 1 times [2018-11-23 12:21:36,916 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:36,916 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:36,917 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:36,917 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:36,917 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:36,925 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:37,002 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2018-11-23 12:21:37,002 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:37,002 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2018-11-23 12:21:37,002 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 12:21:37,003 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 12:21:37,003 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=18, Invalid=54, Unknown=0, NotChecked=0, Total=72 [2018-11-23 12:21:37,003 INFO L87 Difference]: Start difference. First operand 1278 states and 1690 transitions. Second operand 9 states. [2018-11-23 12:21:37,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:37,495 INFO L93 Difference]: Finished difference Result 2973 states and 3960 transitions. [2018-11-23 12:21:37,496 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 12:21:37,496 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 56 [2018-11-23 12:21:37,496 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:37,499 INFO L225 Difference]: With dead ends: 2973 [2018-11-23 12:21:37,500 INFO L226 Difference]: Without dead ends: 1923 [2018-11-23 12:21:37,501 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=42, Invalid=114, Unknown=0, NotChecked=0, Total=156 [2018-11-23 12:21:37,503 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1923 states. [2018-11-23 12:21:37,530 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1923 to 1639. [2018-11-23 12:21:37,531 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1639 states. [2018-11-23 12:21:37,533 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1639 states to 1639 states and 2147 transitions. [2018-11-23 12:21:37,533 INFO L78 Accepts]: Start accepts. Automaton has 1639 states and 2147 transitions. Word has length 56 [2018-11-23 12:21:37,533 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:37,533 INFO L480 AbstractCegarLoop]: Abstraction has 1639 states and 2147 transitions. [2018-11-23 12:21:37,533 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 12:21:37,533 INFO L276 IsEmpty]: Start isEmpty. Operand 1639 states and 2147 transitions. [2018-11-23 12:21:37,534 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2018-11-23 12:21:37,534 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:37,535 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:37,535 INFO L423 AbstractCegarLoop]: === Iteration 14 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:37,535 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:37,535 INFO L82 PathProgramCache]: Analyzing trace with hash 1038259591, now seen corresponding path program 1 times [2018-11-23 12:21:37,535 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:37,535 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:37,536 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:37,536 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:37,536 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:37,544 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:37,574 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 12:21:37,574 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:37,574 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:37,575 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:37,575 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:37,575 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:37,575 INFO L87 Difference]: Start difference. First operand 1639 states and 2147 transitions. Second operand 4 states. [2018-11-23 12:21:37,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:37,658 INFO L93 Difference]: Finished difference Result 2180 states and 2858 transitions. [2018-11-23 12:21:37,658 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:37,659 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 58 [2018-11-23 12:21:37,659 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:37,661 INFO L225 Difference]: With dead ends: 2180 [2018-11-23 12:21:37,662 INFO L226 Difference]: Without dead ends: 1674 [2018-11-23 12:21:37,663 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:37,664 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1674 states. [2018-11-23 12:21:37,709 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1674 to 1640. [2018-11-23 12:21:37,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1640 states. [2018-11-23 12:21:37,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1640 states to 1640 states and 2128 transitions. [2018-11-23 12:21:37,711 INFO L78 Accepts]: Start accepts. Automaton has 1640 states and 2128 transitions. Word has length 58 [2018-11-23 12:21:37,711 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:37,711 INFO L480 AbstractCegarLoop]: Abstraction has 1640 states and 2128 transitions. [2018-11-23 12:21:37,711 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:37,711 INFO L276 IsEmpty]: Start isEmpty. Operand 1640 states and 2128 transitions. [2018-11-23 12:21:37,712 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2018-11-23 12:21:37,712 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:37,713 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:37,713 INFO L423 AbstractCegarLoop]: === Iteration 15 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:37,713 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:37,713 INFO L82 PathProgramCache]: Analyzing trace with hash 1793263524, now seen corresponding path program 1 times [2018-11-23 12:21:37,713 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:37,713 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:37,714 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:37,714 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:37,714 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:37,722 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:37,777 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2018-11-23 12:21:37,777 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:21:37,777 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:21:37,793 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:37,807 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:37,810 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:37,919 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 12:21:37,934 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 12:21:37,934 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [8] total 16 [2018-11-23 12:21:37,935 INFO L459 AbstractCegarLoop]: Interpolant automaton has 16 states [2018-11-23 12:21:37,935 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2018-11-23 12:21:37,935 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=188, Unknown=0, NotChecked=0, Total=240 [2018-11-23 12:21:37,935 INFO L87 Difference]: Start difference. First operand 1640 states and 2128 transitions. Second operand 16 states. [2018-11-23 12:21:40,117 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:40,117 INFO L93 Difference]: Finished difference Result 4174 states and 5488 transitions. [2018-11-23 12:21:40,118 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 66 states. [2018-11-23 12:21:40,118 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 59 [2018-11-23 12:21:40,118 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:40,122 INFO L225 Difference]: With dead ends: 4174 [2018-11-23 12:21:40,122 INFO L226 Difference]: Without dead ends: 2240 [2018-11-23 12:21:40,125 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 123 GetRequests, 50 SyntacticMatches, 2 SemanticMatches, 71 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1797 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=620, Invalid=4636, Unknown=0, NotChecked=0, Total=5256 [2018-11-23 12:21:40,127 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2240 states. [2018-11-23 12:21:40,155 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2240 to 1752. [2018-11-23 12:21:40,155 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1752 states. [2018-11-23 12:21:40,157 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1752 states to 1752 states and 2258 transitions. [2018-11-23 12:21:40,157 INFO L78 Accepts]: Start accepts. Automaton has 1752 states and 2258 transitions. Word has length 59 [2018-11-23 12:21:40,157 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:40,157 INFO L480 AbstractCegarLoop]: Abstraction has 1752 states and 2258 transitions. [2018-11-23 12:21:40,157 INFO L481 AbstractCegarLoop]: Interpolant automaton has 16 states. [2018-11-23 12:21:40,158 INFO L276 IsEmpty]: Start isEmpty. Operand 1752 states and 2258 transitions. [2018-11-23 12:21:40,159 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 12:21:40,159 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:40,159 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:40,159 INFO L423 AbstractCegarLoop]: === Iteration 16 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:40,159 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:40,159 INFO L82 PathProgramCache]: Analyzing trace with hash -313662180, now seen corresponding path program 1 times [2018-11-23 12:21:40,159 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:21:40,160 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:21:40,160 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:40,160 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:40,160 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:21:40,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 12:21:40,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 12:21:40,191 INFO L469 BasicCegarLoop]: Counterexample might be feasible ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); [?] assume true; [?] RET #202#return; [?] CALL call #t~ret3 := main(); [?] havoc ~a~0;havoc ~b~0;havoc ~r~1;~a~0 := #t~nondet0;havoc #t~nondet0;~b~0 := #t~nondet1;havoc #t~nondet1; VAL [main_~a~0=0, main_~b~0=0] [?] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [|mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~a := #in~a;~b := #in~b;havoc ~a0~0;havoc ~a1~0;havoc ~a2~0;havoc ~a3~0;havoc ~b0~0;havoc ~b1~0;havoc ~b2~0;havoc ~b3~0;havoc ~r0~0;havoc ~r1~0;havoc ~r2~0;havoc ~r3~0;havoc ~carry~0;havoc ~partial_sum~0;havoc ~r~0;havoc ~i~0;havoc ~na~0;havoc ~nb~0;~a0~0 := ~a;~a1~0 := ~a / 256;~a2~0 := ~a / 65536;~a3~0 := ~a / 16777216;~b0~0 := ~b;~b1~0 := ~b / 256;~b2~0 := ~b / 65536;~b3~0 := ~b / 16777216;~na~0 := 4; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=4, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~a3~0 % 256;~na~0 := ~na~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=3, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~a2~0 % 256;~na~0 := ~na~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=2, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~a1~0 % 256;~na~0 := ~na~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=1, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~nb~0 := 4; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=1, mp_add_~nb~0=4, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~b3~0 % 256;~nb~0 := ~nb~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=1, mp_add_~nb~0=3, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~b2~0 % 256;~nb~0 := ~nb~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=1, mp_add_~nb~0=2, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~b1~0 % 256;~nb~0 := ~nb~0 % 256 - 1; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~carry~0 := 0;~i~0 := 0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536);~partial_sum~0 := ~carry~0;~carry~0 := 0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume ~i~0 % 256 < ~na~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~i~0 % 256;~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(1 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(2 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(3 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume ~i~0 % 256 < ~nb~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~i~0 % 256;~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(1 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(2 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(3 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(~partial_sum~0 % 65536 > 254); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 0 == ~i~0 % 256;~r0~0 := ~partial_sum~0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(1 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(2 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(3 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=0, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~i~0 := 1 + ~i~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !!(~i~0 % 256 < 4); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(0 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 1 == ~i~0 % 256;~r1~0 := 0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(2 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(3 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=1, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~i~0 := 1 + ~i~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !!(~i~0 % 256 < 4); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(0 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(1 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 2 == ~i~0 % 256;~r2~0 := 0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(3 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=2, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~i~0 := 1 + ~i~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !!(~i~0 % 256 < 4); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(0 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(1 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(2 == ~i~0 % 256); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume 3 == ~i~0 % 256;~r3~0 := 0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=3, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, mp_add_~r3~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~i~0 := 1 + ~i~0 % 256; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=4, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, mp_add_~r3~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] assume !(~i~0 % 256 < 4); VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=4, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, mp_add_~r3~0=0, |mp_add_#in~a|=0, |mp_add_#in~b|=0] [?] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256));#res := ~r~0; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=4, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, mp_add_~r3~0=0, mp_add_~r~0=1, |mp_add_#in~a|=0, |mp_add_#in~b|=0, |mp_add_#res|=1] [?] assume true; VAL [mp_add_~a=0, mp_add_~a0~0=0, mp_add_~a1~0=0, mp_add_~a2~0=0, mp_add_~a3~0=0, mp_add_~b=0, mp_add_~b0~0=0, mp_add_~b1~0=0, mp_add_~b2~0=0, mp_add_~b3~0=0, mp_add_~carry~0=0, mp_add_~i~0=4, mp_add_~na~0=1, mp_add_~nb~0=1, mp_add_~partial_sum~0=0, mp_add_~r0~0=0, mp_add_~r1~0=0, mp_add_~r2~0=0, mp_add_~r3~0=0, mp_add_~r~0=1, |mp_add_#in~a|=0, |mp_add_#in~b|=0, |mp_add_#res|=1] [?] RET #206#return; VAL [main_~a~0=0, main_~b~0=0, |main_#t~ret2|=1] [?] ~r~1 := #t~ret2;havoc #t~ret2; VAL [main_~a~0=0, main_~b~0=0, main_~r~1=1] [?] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [|__VERIFIER_assert_#in~cond|=0] [?] ~cond := #in~cond; VAL [__VERIFIER_assert_~cond=0, |__VERIFIER_assert_#in~cond|=0] [?] assume 0 == ~cond; VAL [__VERIFIER_assert_~cond=0, |__VERIFIER_assert_#in~cond|=0] [?] assume !false; VAL [__VERIFIER_assert_~cond=0, |__VERIFIER_assert_#in~cond|=0] [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40-L48] assume 0 == ~a3~0 % 256; [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42-L47] assume 0 == ~a2~0 % 256; [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44-L46] assume 0 == ~a1~0 % 256; [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50-L58] assume 0 == ~b3~0 % 256; [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52-L57] assume 0 == ~b2~0 % 256; [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54-L56] assume 0 == ~b1~0 % 256; [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] assume !!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64-L69] assume ~i~0 % 256 < ~na~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] assume 0 == ~i~0 % 256; [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70-L75] assume ~i~0 % 256 < ~nb~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] assume 0 == ~i~0 % 256; [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76-L79] assume !(~partial_sum~0 % 65536 > 254); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] assume 0 == ~i~0 % 256; [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] assume !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] assume 1 == ~i~0 % 256; [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] assume 2 == ~i~0 % 256; [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] assume 3 == ~i~0 % 256; [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] assume !(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L21-L100] ensures true; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5-L7] assume 0 == ~cond; VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40-L48] assume 0 == ~a3~0 % 256; [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42-L47] assume 0 == ~a2~0 % 256; [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44-L46] assume 0 == ~a1~0 % 256; [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50-L58] assume 0 == ~b3~0 % 256; [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52-L57] assume 0 == ~b2~0 % 256; [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54-L56] assume 0 == ~b1~0 % 256; [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] assume !!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64-L69] assume ~i~0 % 256 < ~na~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] assume 0 == ~i~0 % 256; [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70-L75] assume ~i~0 % 256 < ~nb~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] assume 0 == ~i~0 % 256; [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76-L79] assume !(~partial_sum~0 % 65536 > 254); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] assume 0 == ~i~0 % 256; [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] assume !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] assume 1 == ~i~0 % 256; [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] assume 2 == ~i~0 % 256; [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] assume !(3 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] assume !!(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] assume !(0 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] assume !(1 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] assume !(2 == ~i~0 % 256); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] assume 3 == ~i~0 % 256; [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] assume !(~i~0 % 256 < 4); VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L21-L100] ensures true; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5-L7] assume 0 == ~cond; VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40] COND TRUE 0 == ~a3~0 % 256 [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42] COND TRUE 0 == ~a2~0 % 256 [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44] COND TRUE 0 == ~a1~0 % 256 [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50] COND TRUE 0 == ~b3~0 % 256 [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52] COND TRUE 0 == ~b2~0 % 256 [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54] COND TRUE 0 == ~b1~0 % 256 [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] COND FALSE !(!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536)) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64] COND TRUE ~i~0 % 256 < ~na~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] COND TRUE 0 == ~i~0 % 256 [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70] COND TRUE ~i~0 % 256 < ~nb~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] COND TRUE 0 == ~i~0 % 256 [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76] COND FALSE !(~partial_sum~0 % 65536 > 254) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] COND TRUE 0 == ~i~0 % 256 [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] COND TRUE !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] COND TRUE 1 == ~i~0 % 256 [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND TRUE 2 == ~i~0 % 256 [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND TRUE 3 == ~i~0 % 256 [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] COND TRUE !(~i~0 % 256 < 4) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5] COND TRUE 0 == ~cond VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40] COND TRUE 0 == ~a3~0 % 256 [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42] COND TRUE 0 == ~a2~0 % 256 [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44] COND TRUE 0 == ~a1~0 % 256 [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50] COND TRUE 0 == ~b3~0 % 256 [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52] COND TRUE 0 == ~b2~0 % 256 [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54] COND TRUE 0 == ~b1~0 % 256 [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] COND FALSE !(!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536)) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64] COND TRUE ~i~0 % 256 < ~na~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] COND TRUE 0 == ~i~0 % 256 [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70] COND TRUE ~i~0 % 256 < ~nb~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] COND TRUE 0 == ~i~0 % 256 [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76] COND FALSE !(~partial_sum~0 % 65536 > 254) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] COND TRUE 0 == ~i~0 % 256 [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] COND TRUE !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] COND TRUE 1 == ~i~0 % 256 [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND TRUE 2 == ~i~0 % 256 [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND TRUE 3 == ~i~0 % 256 [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] COND TRUE !(~i~0 % 256 < 4) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5] COND TRUE 0 == ~cond VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40] COND TRUE 0 == ~a3~0 % 256 [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42] COND TRUE 0 == ~a2~0 % 256 [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44] COND TRUE 0 == ~a1~0 % 256 [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50] COND TRUE 0 == ~b3~0 % 256 [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52] COND TRUE 0 == ~b2~0 % 256 [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54] COND TRUE 0 == ~b1~0 % 256 [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] COND FALSE !(!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536)) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64] COND TRUE ~i~0 % 256 < ~na~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] COND TRUE 0 == ~i~0 % 256 [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70] COND TRUE ~i~0 % 256 < ~nb~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] COND TRUE 0 == ~i~0 % 256 [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76] COND FALSE !(~partial_sum~0 % 65536 > 254) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] COND TRUE 0 == ~i~0 % 256 [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] COND TRUE !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] COND TRUE 1 == ~i~0 % 256 [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND TRUE 2 == ~i~0 % 256 [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND TRUE 3 == ~i~0 % 256 [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] COND TRUE !(~i~0 % 256 < 4) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5] COND TRUE 0 == ~cond VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=0, ~b~0=0] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=0, #in~b=0] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a; [L32] ~a1~0 := ~a / 256; [L33] ~a2~0 := ~a / 65536; [L34] ~a3~0 := ~a / 16777216; [L35] ~b0~0 := ~b; [L36] ~b1~0 := ~b / 256; [L37] ~b2~0 := ~b / 65536; [L38] ~b3~0 := ~b / 16777216; [L39] ~na~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=4] [L40] COND TRUE 0 == ~a3~0 % 256 [L41] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=3] [L42] COND TRUE 0 == ~a2~0 % 256 [L43] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=2] [L44] COND TRUE 0 == ~a1~0 % 256 [L45] ~na~0 := ~na~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1] [L49] ~nb~0 := 4; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=4] [L50] COND TRUE 0 == ~b3~0 % 256 [L51] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=3] [L52] COND TRUE 0 == ~b2~0 % 256 [L53] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=2] [L54] COND TRUE 0 == ~b1~0 % 256 [L55] ~nb~0 := ~nb~0 % 256 - 1; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~na~0=1, ~nb~0=1] [L59] ~carry~0 := 0; [L60] ~i~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1] [L61-L86] COND FALSE !(!((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536)) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L64] COND TRUE ~i~0 % 256 < ~na~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L65] COND TRUE 0 == ~i~0 % 256 [L65] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~a0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L66] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L67] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L68] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L70] COND TRUE ~i~0 % 256 < ~nb~0 % 256 VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L71] COND TRUE 0 == ~i~0 % 256 [L71] ~partial_sum~0 := ~partial_sum~0 % 65536 + ~b0~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L72] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L73] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L74] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L76] COND FALSE !(~partial_sum~0 % 65536 > 254) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0] [L80] COND TRUE 0 == ~i~0 % 256 [L80] ~r0~0 := ~partial_sum~0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L81] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L82] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L83] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=0, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L85] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L61-L86] COND TRUE !((~i~0 % 256 < ~na~0 % 256 || ~i~0 % 256 < ~nb~0 % 256) || 0 != ~carry~0 % 65536) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0] [L90] COND TRUE 1 == ~i~0 % 256 [L90] ~r1~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=1, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0] [L91] COND TRUE 2 == ~i~0 % 256 [L91] ~r2~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND FALSE !(3 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=2, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L88-L95] COND FALSE !(!(~i~0 % 256 < 4)) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L89] COND FALSE !(0 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L90] COND FALSE !(1 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L91] COND FALSE !(2 == ~i~0 % 256) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0] [L92] COND TRUE 3 == ~i~0 % 256 [L92] ~r3~0 := 0; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=3, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L94] ~i~0 := 1 + ~i~0 % 256; VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L88-L95] COND TRUE !(~i~0 % 256 < 4) VAL [#in~a=0, #in~b=0, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0] [L97] ~r~0 := ~bitwiseOr(~bitwiseOr(~bitwiseOr(~r0~0 % 256, 256 * (~r1~0 % 256)), 65536 * (~r2~0 % 256)), 16777216 * (~r3~0 % 256)); [L99] #res := ~r~0; VAL [#in~a=0, #in~b=0, #res=1, ~a=0, ~a0~0=0, ~a1~0=0, ~a2~0=0, ~a3~0=0, ~b=0, ~b0~0=0, ~b1~0=0, ~b2~0=0, ~b3~0=0, ~carry~0=0, ~i~0=4, ~na~0=1, ~nb~0=1, ~partial_sum~0=0, ~r0~0=0, ~r1~0=0, ~r2~0=0, ~r3~0=0, ~r~0=1] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=1, ~a~0=0, ~b~0=0] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=0, ~b~0=0, ~r~1=1] [L112] CALL call __VERIFIER_assert((if ~r~1 % 4294967296 == (~a~0 + ~b~0) % 4294967296 then 1 else 0)); VAL [#in~cond=0] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0, ~cond=0] [L5] COND TRUE 0 == ~cond VAL [#in~cond=0, ~cond=0] [L6] assert false; VAL [#in~cond=0, ~cond=0] [L105] unsigned int a, b, r; [L107] a = __VERIFIER_nondet_uint() [L108] b = __VERIFIER_nondet_uint() [L110] CALL, EXPR mp_add(a, b) VAL [\old(a)=0, \old(b)=0] [L23] unsigned char a0, a1, a2, a3; [L24] unsigned char b0, b1, b2, b3; [L25] unsigned char r0, r1, r2, r3; [L26] unsigned short carry; [L27] unsigned short partial_sum; [L28] unsigned int r; [L29] unsigned char i; [L30] unsigned char na, nb; [L31] a0 = a [L32] a1 = a >> 8 [L33] a2 = a >> 16U [L34] a3 = a >> 24U [L35] b0 = b [L36] b1 = b >> 8U [L37] b2 = b >> 16U [L38] b3 = b >> 24U [L39] na = (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=4] [L40] COND TRUE a3 == (unsigned char)0 [L41] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=3] [L42] COND TRUE a2 == (unsigned char)0 [L43] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=2] [L44] COND TRUE a1 == (unsigned char)0 [L45] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1] [L49] nb = (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=4] [L50] COND TRUE b3 == (unsigned char)0 [L51] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=3] [L52] COND TRUE b2 == (unsigned char)0 [L53] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=2] [L54] COND TRUE b1 == (unsigned char)0 [L55] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=1] [L59] carry = (unsigned short)0 [L60] i = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L64] COND TRUE i < na VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L65] COND TRUE i == (unsigned char)0 [L65] partial_sum = partial_sum + a0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L66] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L67] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L68] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L70] COND TRUE i < nb VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L71] COND TRUE i == (unsigned char)0 [L71] partial_sum = partial_sum + b0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L72] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L73] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L74] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L76] COND FALSE !(partial_sum > ((unsigned char)254)) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L80] COND TRUE i == (unsigned char)0 [L80] r0 = (unsigned char)partial_sum VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L81] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L85] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L61] COND FALSE !((i < na) || (i < nb) || (carry != (unsigned short)0)) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L90] COND TRUE i == (unsigned char)1 [L90] r1 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L91] COND TRUE i == (unsigned char)2 [L91] r2 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L92] COND TRUE i == (unsigned char)3 [L92] r3 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L88] COND FALSE !(i < (unsigned char)4) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L97] r = r0 | (r1 << 8U) | (r2 << 16U) | ((unsigned int)r3 << 24U) [L99] return r; VAL [\old(a)=0, \old(b)=0, \result=1, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r=1, r0=0, r1=0, r2=0, r3=0] [L110] RET, EXPR mp_add(a, b) VAL [a=0, b=0, mp_add(a, b)=1] [L110] r = mp_add(a, b) [L112] CALL __VERIFIER_assert(r == a + b) VAL [\old(cond)=0] [L5] COND TRUE !(cond) VAL [\old(cond)=0, cond=0] [L6] __VERIFIER_error() VAL [\old(cond)=0, cond=0] ----- [2018-11-23 12:21:40,332 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 12:21:40 BoogieIcfgContainer [2018-11-23 12:21:40,332 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 12:21:40,333 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 12:21:40,334 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 12:21:40,334 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 12:21:40,334 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:31" (3/4) ... [2018-11-23 12:21:40,337 INFO L147 WitnessPrinter]: No result that supports witness generation found [2018-11-23 12:21:40,337 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 12:21:40,338 INFO L168 Benchmark]: Toolchain (without parser) took 9217.83 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 214.4 MB). Free memory was 961.9 MB in the beginning and 878.4 MB in the end (delta: 83.5 MB). Peak memory consumption was 297.9 MB. Max. memory is 11.5 GB. [2018-11-23 12:21:40,339 INFO L168 Benchmark]: CDTParser took 0.10 ms. Allocated memory is still 1.0 GB. Free memory is still 982.9 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:21:40,339 INFO L168 Benchmark]: CACSL2BoogieTranslator took 202.00 ms. Allocated memory is still 1.0 GB. Free memory was 961.9 MB in the beginning and 945.8 MB in the end (delta: 16.1 MB). Peak memory consumption was 16.1 MB. Max. memory is 11.5 GB. [2018-11-23 12:21:40,339 INFO L168 Benchmark]: Boogie Procedure Inliner took 13.80 ms. Allocated memory is still 1.0 GB. Free memory is still 945.8 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:21:40,339 INFO L168 Benchmark]: Boogie Preprocessor took 58.24 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 136.3 MB). Free memory was 945.8 MB in the beginning and 1.1 GB in the end (delta: -185.3 MB). Peak memory consumption was 14.3 MB. Max. memory is 11.5 GB. [2018-11-23 12:21:40,340 INFO L168 Benchmark]: RCFGBuilder took 279.69 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 19.7 MB). Peak memory consumption was 19.7 MB. Max. memory is 11.5 GB. [2018-11-23 12:21:40,340 INFO L168 Benchmark]: TraceAbstraction took 8655.00 ms. Allocated memory was 1.2 GB in the beginning and 1.2 GB in the end (delta: 78.1 MB). Free memory was 1.1 GB in the beginning and 878.4 MB in the end (delta: 233.0 MB). Peak memory consumption was 311.1 MB. Max. memory is 11.5 GB. [2018-11-23 12:21:40,340 INFO L168 Benchmark]: Witness Printer took 3.95 ms. Allocated memory is still 1.2 GB. Free memory is still 878.4 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:21:40,342 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.10 ms. Allocated memory is still 1.0 GB. Free memory is still 982.9 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 202.00 ms. Allocated memory is still 1.0 GB. Free memory was 961.9 MB in the beginning and 945.8 MB in the end (delta: 16.1 MB). Peak memory consumption was 16.1 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 13.80 ms. Allocated memory is still 1.0 GB. Free memory is still 945.8 MB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 58.24 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 136.3 MB). Free memory was 945.8 MB in the beginning and 1.1 GB in the end (delta: -185.3 MB). Peak memory consumption was 14.3 MB. Max. memory is 11.5 GB. * RCFGBuilder took 279.69 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 19.7 MB). Peak memory consumption was 19.7 MB. Max. memory is 11.5 GB. * TraceAbstraction took 8655.00 ms. Allocated memory was 1.2 GB in the beginning and 1.2 GB in the end (delta: 78.1 MB). Free memory was 1.1 GB in the beginning and 878.4 MB in the end (delta: 233.0 MB). Peak memory consumption was 311.1 MB. Max. memory is 11.5 GB. * Witness Printer took 3.95 ms. Allocated memory is still 1.2 GB. Free memory is still 878.4 MB. There was no memory consumed. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - UnprovableResult [Line: 6]: Unable to prove that call of __VERIFIER_error() unreachable Unable to prove that call of __VERIFIER_error() unreachable Reason: overapproximation of bitwiseOr at line 97. Possible FailurePath: [L105] unsigned int a, b, r; [L107] a = __VERIFIER_nondet_uint() [L108] b = __VERIFIER_nondet_uint() [L110] CALL, EXPR mp_add(a, b) VAL [\old(a)=0, \old(b)=0] [L23] unsigned char a0, a1, a2, a3; [L24] unsigned char b0, b1, b2, b3; [L25] unsigned char r0, r1, r2, r3; [L26] unsigned short carry; [L27] unsigned short partial_sum; [L28] unsigned int r; [L29] unsigned char i; [L30] unsigned char na, nb; [L31] a0 = a [L32] a1 = a >> 8 [L33] a2 = a >> 16U [L34] a3 = a >> 24U [L35] b0 = b [L36] b1 = b >> 8U [L37] b2 = b >> 16U [L38] b3 = b >> 24U [L39] na = (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=4] [L40] COND TRUE a3 == (unsigned char)0 [L41] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=3] [L42] COND TRUE a2 == (unsigned char)0 [L43] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=2] [L44] COND TRUE a1 == (unsigned char)0 [L45] na = na - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1] [L49] nb = (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=4] [L50] COND TRUE b3 == (unsigned char)0 [L51] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=3] [L52] COND TRUE b2 == (unsigned char)0 [L53] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=2] [L54] COND TRUE b1 == (unsigned char)0 [L55] nb = nb - 1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, na=1, nb=1] [L59] carry = (unsigned short)0 [L60] i = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L64] COND TRUE i < na VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L65] COND TRUE i == (unsigned char)0 [L65] partial_sum = partial_sum + a0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L66] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L67] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L68] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L70] COND TRUE i < nb VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L71] COND TRUE i == (unsigned char)0 [L71] partial_sum = partial_sum + b0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L72] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L73] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L74] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L76] COND FALSE !(partial_sum > ((unsigned char)254)) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L80] COND TRUE i == (unsigned char)0 [L80] r0 = (unsigned char)partial_sum VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L81] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0, r0=0] [L85] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L61] COND FALSE !((i < na) || (i < nb) || (carry != (unsigned short)0)) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0] [L90] COND TRUE i == (unsigned char)1 [L90] r1 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0] [L91] COND TRUE i == (unsigned char)2 [L91] r2 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0] [L92] COND TRUE i == (unsigned char)3 [L92] r3 = (unsigned char)0 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L88] COND FALSE !(i < (unsigned char)4) VAL [\old(a)=0, \old(b)=0, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r0=0, r1=0, r2=0, r3=0] [L97] r = r0 | (r1 << 8U) | (r2 << 16U) | ((unsigned int)r3 << 24U) [L99] return r; VAL [\old(a)=0, \old(b)=0, \result=1, a=0, a0=0, a1=0, a2=0, a3=0, b=0, b0=0, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=0, r=1, r0=0, r1=0, r2=0, r3=0] [L110] RET, EXPR mp_add(a, b) VAL [a=0, b=0, mp_add(a, b)=1] [L110] r = mp_add(a, b) [L112] CALL __VERIFIER_assert(r == a + b) VAL [\old(cond)=0] [L5] COND TRUE !(cond) VAL [\old(cond)=0, cond=0] [L6] __VERIFIER_error() VAL [\old(cond)=0, cond=0] - StatisticsResult: Ultimate Automizer benchmark data CFG has 5 procedures, 54 locations, 1 error locations. UNSAFE Result, 8.6s OverallTime, 16 OverallIterations, 4 TraceHistogramMax, 6.5s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 1345 SDtfs, 3836 SDslu, 3638 SDs, 0 SdLazy, 8423 SolverSat, 669 SolverUnsat, 2 SolverUnknown, 0 SolverNotchecked, 4.4s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 329 GetRequests, 168 SyntacticMatches, 12 SemanticMatches, 149 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1876 ImplicationChecksByTransitivity, 1.6s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=1752occurred in iteration=15, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.2s AutomataMinimizationTime, 15 MinimizatonAttempts, 2253 StatesRemovedByMinimization, 14 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.2s SatisfiabilityAnalysisTime, 1.1s InterpolantComputationTime, 863 NumberOfCodeBlocks, 863 NumberOfCodeBlocksAsserted, 19 NumberOfCheckSat, 785 ConstructedInterpolants, 21 QuantifiedInterpolants, 153406 SizeOfPredicates, 9 NumberOfNonLiveVariables, 396 ConjunctsInSsa, 45 ConjunctsInUnsatCore, 18 InterpolantComputations, 15 PerfectInterpolantSequences, 361/367 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate could not prove your program: unable to determine feasibility of some traces Received shutdown request... ### Bit-precise run ### This is Ultimate 0.1.23-aa41828 [2018-11-23 12:21:41,786 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:21:41,787 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:21:41,794 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:21:41,794 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:21:41,795 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:21:41,796 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:21:41,797 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:21:41,798 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:21:41,798 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:21:41,799 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:21:41,799 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:21:41,800 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:21:41,801 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:21:41,801 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:21:41,802 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:21:41,802 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:21:41,804 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:21:41,805 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:21:41,806 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:21:41,807 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:21:41,807 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:21:41,809 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:21:41,809 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:21:41,809 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:21:41,810 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:21:41,811 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:21:41,811 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:21:41,812 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:21:41,812 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:21:41,813 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:21:41,813 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:21:41,813 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:21:41,813 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:21:41,814 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:21:41,814 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:21:41,815 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2018-11-23 12:21:41,825 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:21:41,825 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:21:41,825 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:21:41,825 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:21:41,826 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:21:41,826 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:21:41,826 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:21:41,826 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:21:41,826 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 12:21:41,827 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:21:41,828 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:21:41,828 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:21:41,829 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * Trace refinement strategy=WOLF [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:21:41,829 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 12:21:41,830 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 12:21:41,830 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> a2c46755d0cb80f6b2e7b990e0a1bd9a49737b84 [2018-11-23 12:21:41,857 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:21:41,865 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:21:41,867 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:21:41,867 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:21:41,868 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:21:41,868 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:41,903 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/3e7e079b2/abafe840a0df4ca9b4fa0da44bc5e748/FLAGa075409fe [2018-11-23 12:21:42,297 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:21:42,297 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:42,301 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/3e7e079b2/abafe840a0df4ca9b4fa0da44bc5e748/FLAGa075409fe [2018-11-23 12:21:42,310 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/data/3e7e079b2/abafe840a0df4ca9b4fa0da44bc5e748 [2018-11-23 12:21:42,312 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:21:42,313 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:21:42,314 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:21:42,314 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:21:42,316 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:21:42,317 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,319 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6fe1055b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42, skipping insertion in model container [2018-11-23 12:21:42,319 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,325 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:21:42,341 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:21:42,476 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:21:42,479 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:21:42,506 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:21:42,518 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:21:42,518 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42 WrapperNode [2018-11-23 12:21:42,518 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:21:42,519 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:21:42,519 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:21:42,519 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:21:42,524 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,529 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,535 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:21:42,535 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:21:42,535 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:21:42,536 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:21:42,541 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,541 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,543 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,543 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,550 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,556 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,557 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... [2018-11-23 12:21:42,559 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:21:42,560 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:21:42,560 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:21:42,560 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:21:42,561 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:21:42,630 INFO L130 BoogieDeclarations]: Found specification of procedure mp_add [2018-11-23 12:21:42,630 INFO L138 BoogieDeclarations]: Found implementation of procedure mp_add [2018-11-23 12:21:42,630 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:21:42,630 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:21:42,630 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:21:42,630 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:21:42,631 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:21:42,631 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:21:42,631 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 12:21:42,631 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 12:21:42,830 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:21:42,830 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 12:21:42,831 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:42 BoogieIcfgContainer [2018-11-23 12:21:42,831 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:21:42,832 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:21:42,832 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:21:42,835 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:21:42,835 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:21:42" (1/3) ... [2018-11-23 12:21:42,836 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1b519157 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:21:42, skipping insertion in model container [2018-11-23 12:21:42,836 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:21:42" (2/3) ... [2018-11-23 12:21:42,836 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1b519157 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:21:42, skipping insertion in model container [2018-11-23 12:21:42,837 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:42" (3/3) ... [2018-11-23 12:21:42,838 INFO L112 eAbstractionObserver]: Analyzing ICFG byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 12:21:42,848 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:21:42,853 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:21:42,862 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:21:42,883 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:21:42,883 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:21:42,883 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:21:42,883 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:21:42,883 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:21:42,883 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:21:42,883 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:21:42,884 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:21:42,884 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:21:42,897 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states. [2018-11-23 12:21:42,901 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 12:21:42,901 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:42,902 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:42,903 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:42,907 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:42,907 INFO L82 PathProgramCache]: Analyzing trace with hash 397916932, now seen corresponding path program 1 times [2018-11-23 12:21:42,909 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:42,910 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:42,922 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:42,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:42,957 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:42,969 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:42,969 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:42,974 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:42,974 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 12:21:42,978 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 12:21:42,988 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 12:21:42,988 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:21:42,989 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 2 states. [2018-11-23 12:21:43,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:43,006 INFO L93 Difference]: Finished difference Result 76 states and 112 transitions. [2018-11-23 12:21:43,006 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 12:21:43,007 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 21 [2018-11-23 12:21:43,007 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:43,013 INFO L225 Difference]: With dead ends: 76 [2018-11-23 12:21:43,013 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:21:43,015 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 20 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 12:21:43,025 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:21:43,035 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 47. [2018-11-23 12:21:43,036 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2018-11-23 12:21:43,037 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 73 transitions. [2018-11-23 12:21:43,038 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 73 transitions. Word has length 21 [2018-11-23 12:21:43,039 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:43,039 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 73 transitions. [2018-11-23 12:21:43,039 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 12:21:43,039 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 73 transitions. [2018-11-23 12:21:43,040 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 12:21:43,040 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:43,040 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:43,040 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:43,040 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:43,040 INFO L82 PathProgramCache]: Analyzing trace with hash -1531564698, now seen corresponding path program 1 times [2018-11-23 12:21:43,041 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:43,041 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:43,063 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:43,087 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:43,091 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:43,117 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:43,117 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:43,118 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:43,118 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:43,120 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:43,120 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:43,120 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:43,120 INFO L87 Difference]: Start difference. First operand 47 states and 73 transitions. Second operand 4 states. [2018-11-23 12:21:43,282 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:43,282 INFO L93 Difference]: Finished difference Result 127 states and 213 transitions. [2018-11-23 12:21:43,282 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:21:43,283 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 21 [2018-11-23 12:21:43,283 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:43,285 INFO L225 Difference]: With dead ends: 127 [2018-11-23 12:21:43,285 INFO L226 Difference]: Without dead ends: 95 [2018-11-23 12:21:43,286 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:43,286 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 95 states. [2018-11-23 12:21:43,293 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 95 to 90. [2018-11-23 12:21:43,293 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 90 states. [2018-11-23 12:21:43,294 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 139 transitions. [2018-11-23 12:21:43,294 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 139 transitions. Word has length 21 [2018-11-23 12:21:43,294 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:43,294 INFO L480 AbstractCegarLoop]: Abstraction has 90 states and 139 transitions. [2018-11-23 12:21:43,294 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:43,295 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 139 transitions. [2018-11-23 12:21:43,295 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2018-11-23 12:21:43,295 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:43,295 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:43,295 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:43,296 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:43,296 INFO L82 PathProgramCache]: Analyzing trace with hash -1988705185, now seen corresponding path program 1 times [2018-11-23 12:21:43,296 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:43,296 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:43,313 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:43,334 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:43,338 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:43,367 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:43,367 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:43,372 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:43,372 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:21:43,376 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:21:43,377 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:21:43,377 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:43,377 INFO L87 Difference]: Start difference. First operand 90 states and 139 transitions. Second operand 5 states. [2018-11-23 12:21:43,568 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:43,569 INFO L93 Difference]: Finished difference Result 173 states and 282 transitions. [2018-11-23 12:21:43,569 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:43,569 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 22 [2018-11-23 12:21:43,569 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:43,571 INFO L225 Difference]: With dead ends: 173 [2018-11-23 12:21:43,571 INFO L226 Difference]: Without dead ends: 141 [2018-11-23 12:21:43,571 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:43,572 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 141 states. [2018-11-23 12:21:43,580 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 141 to 90. [2018-11-23 12:21:43,580 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 90 states. [2018-11-23 12:21:43,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 139 transitions. [2018-11-23 12:21:43,581 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 139 transitions. Word has length 22 [2018-11-23 12:21:43,582 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:43,582 INFO L480 AbstractCegarLoop]: Abstraction has 90 states and 139 transitions. [2018-11-23 12:21:43,582 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:21:43,582 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 139 transitions. [2018-11-23 12:21:43,583 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2018-11-23 12:21:43,583 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:43,583 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:43,583 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:43,583 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:43,583 INFO L82 PathProgramCache]: Analyzing trace with hash -1386022735, now seen corresponding path program 1 times [2018-11-23 12:21:43,584 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:43,584 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:43,606 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:43,626 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:43,629 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:43,668 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:43,668 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:43,672 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:43,672 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2018-11-23 12:21:43,673 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 12:21:43,673 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 12:21:43,673 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:43,673 INFO L87 Difference]: Start difference. First operand 90 states and 139 transitions. Second operand 7 states. [2018-11-23 12:21:43,868 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:43,868 INFO L93 Difference]: Finished difference Result 215 states and 343 transitions. [2018-11-23 12:21:43,868 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 12:21:43,869 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 23 [2018-11-23 12:21:43,869 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:43,870 INFO L225 Difference]: With dead ends: 215 [2018-11-23 12:21:43,870 INFO L226 Difference]: Without dead ends: 183 [2018-11-23 12:21:43,871 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:43,871 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 183 states. [2018-11-23 12:21:43,881 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 183 to 120. [2018-11-23 12:21:43,881 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 120 states. [2018-11-23 12:21:43,882 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 120 states to 120 states and 183 transitions. [2018-11-23 12:21:43,882 INFO L78 Accepts]: Start accepts. Automaton has 120 states and 183 transitions. Word has length 23 [2018-11-23 12:21:43,882 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:43,882 INFO L480 AbstractCegarLoop]: Abstraction has 120 states and 183 transitions. [2018-11-23 12:21:43,882 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 12:21:43,883 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 183 transitions. [2018-11-23 12:21:43,883 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2018-11-23 12:21:43,883 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:43,884 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:43,884 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:43,884 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:43,884 INFO L82 PathProgramCache]: Analyzing trace with hash -1127857297, now seen corresponding path program 1 times [2018-11-23 12:21:43,884 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:43,885 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:43,907 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:43,924 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:43,927 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:43,958 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:43,958 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:43,959 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:43,959 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 12:21:43,959 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:21:43,959 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:21:43,960 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:43,960 INFO L87 Difference]: Start difference. First operand 120 states and 183 transitions. Second operand 6 states. [2018-11-23 12:21:44,136 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:44,136 INFO L93 Difference]: Finished difference Result 234 states and 364 transitions. [2018-11-23 12:21:44,137 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:21:44,138 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 23 [2018-11-23 12:21:44,138 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:44,139 INFO L225 Difference]: With dead ends: 234 [2018-11-23 12:21:44,139 INFO L226 Difference]: Without dead ends: 202 [2018-11-23 12:21:44,140 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:44,140 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 202 states. [2018-11-23 12:21:44,145 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 202 to 96. [2018-11-23 12:21:44,145 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 96 states. [2018-11-23 12:21:44,146 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 138 transitions. [2018-11-23 12:21:44,146 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 138 transitions. Word has length 23 [2018-11-23 12:21:44,146 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:44,146 INFO L480 AbstractCegarLoop]: Abstraction has 96 states and 138 transitions. [2018-11-23 12:21:44,147 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:21:44,147 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 138 transitions. [2018-11-23 12:21:44,147 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-23 12:21:44,148 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:44,148 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:44,148 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:44,148 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:44,148 INFO L82 PathProgramCache]: Analyzing trace with hash 214387631, now seen corresponding path program 1 times [2018-11-23 12:21:44,148 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:44,149 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:44,163 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:44,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:44,184 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:44,195 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,195 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:44,196 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:44,196 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:21:44,197 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:21:44,197 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:21:44,197 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:44,197 INFO L87 Difference]: Start difference. First operand 96 states and 138 transitions. Second operand 4 states. [2018-11-23 12:21:44,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:44,279 INFO L93 Difference]: Finished difference Result 254 states and 370 transitions. [2018-11-23 12:21:44,279 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:21:44,279 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 34 [2018-11-23 12:21:44,279 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:44,280 INFO L225 Difference]: With dead ends: 254 [2018-11-23 12:21:44,280 INFO L226 Difference]: Without dead ends: 180 [2018-11-23 12:21:44,280 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 33 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:21:44,280 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 180 states. [2018-11-23 12:21:44,288 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 180 to 106. [2018-11-23 12:21:44,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 106 states. [2018-11-23 12:21:44,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 151 transitions. [2018-11-23 12:21:44,289 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 151 transitions. Word has length 34 [2018-11-23 12:21:44,289 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:44,290 INFO L480 AbstractCegarLoop]: Abstraction has 106 states and 151 transitions. [2018-11-23 12:21:44,290 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:21:44,290 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 151 transitions. [2018-11-23 12:21:44,290 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-23 12:21:44,291 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:44,291 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:44,291 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:44,291 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:44,291 INFO L82 PathProgramCache]: Analyzing trace with hash -1041972219, now seen corresponding path program 1 times [2018-11-23 12:21:44,291 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:44,291 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:44,308 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:44,328 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:44,332 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:44,353 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,354 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:44,355 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:44,355 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 12:21:44,355 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:21:44,355 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:21:44,355 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:44,355 INFO L87 Difference]: Start difference. First operand 106 states and 151 transitions. Second operand 5 states. [2018-11-23 12:21:44,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:44,442 INFO L93 Difference]: Finished difference Result 334 states and 488 transitions. [2018-11-23 12:21:44,442 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 12:21:44,442 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 35 [2018-11-23 12:21:44,442 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:44,443 INFO L225 Difference]: With dead ends: 334 [2018-11-23 12:21:44,443 INFO L226 Difference]: Without dead ends: 260 [2018-11-23 12:21:44,444 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 34 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:21:44,444 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 260 states. [2018-11-23 12:21:44,451 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 260 to 106. [2018-11-23 12:21:44,452 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 106 states. [2018-11-23 12:21:44,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 151 transitions. [2018-11-23 12:21:44,452 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 151 transitions. Word has length 35 [2018-11-23 12:21:44,452 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:44,453 INFO L480 AbstractCegarLoop]: Abstraction has 106 states and 151 transitions. [2018-11-23 12:21:44,453 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:21:44,453 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 151 transitions. [2018-11-23 12:21:44,454 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 12:21:44,454 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:44,454 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:44,454 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:44,454 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:44,455 INFO L82 PathProgramCache]: Analyzing trace with hash 919023332, now seen corresponding path program 1 times [2018-11-23 12:21:44,455 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:44,455 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:44,476 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:44,503 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:44,506 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:44,526 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,526 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:44,527 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:44,528 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2018-11-23 12:21:44,528 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 12:21:44,528 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 12:21:44,528 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:44,528 INFO L87 Difference]: Start difference. First operand 106 states and 151 transitions. Second operand 7 states. [2018-11-23 12:21:44,670 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:44,670 INFO L93 Difference]: Finished difference Result 408 states and 594 transitions. [2018-11-23 12:21:44,670 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 12:21:44,670 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 36 [2018-11-23 12:21:44,671 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:44,672 INFO L225 Difference]: With dead ends: 408 [2018-11-23 12:21:44,672 INFO L226 Difference]: Without dead ends: 334 [2018-11-23 12:21:44,672 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 30 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:44,673 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 334 states. [2018-11-23 12:21:44,681 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 334 to 166. [2018-11-23 12:21:44,681 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 166 states. [2018-11-23 12:21:44,682 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 166 states to 166 states and 236 transitions. [2018-11-23 12:21:44,682 INFO L78 Accepts]: Start accepts. Automaton has 166 states and 236 transitions. Word has length 36 [2018-11-23 12:21:44,682 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:44,682 INFO L480 AbstractCegarLoop]: Abstraction has 166 states and 236 transitions. [2018-11-23 12:21:44,682 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 12:21:44,682 INFO L276 IsEmpty]: Start isEmpty. Operand 166 states and 236 transitions. [2018-11-23 12:21:44,683 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 12:21:44,683 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:44,683 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:44,684 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:44,684 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:44,684 INFO L82 PathProgramCache]: Analyzing trace with hash -1452715930, now seen corresponding path program 1 times [2018-11-23 12:21:44,684 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:44,684 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:44,697 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:44,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:44,719 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:44,743 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,743 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:21:44,744 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:21:44,744 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 12:21:44,744 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:21:44,744 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:21:44,744 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:44,744 INFO L87 Difference]: Start difference. First operand 166 states and 236 transitions. Second operand 6 states. [2018-11-23 12:21:44,877 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:44,877 INFO L93 Difference]: Finished difference Result 406 states and 588 transitions. [2018-11-23 12:21:44,877 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:21:44,877 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 36 [2018-11-23 12:21:44,878 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:44,879 INFO L225 Difference]: With dead ends: 406 [2018-11-23 12:21:44,879 INFO L226 Difference]: Without dead ends: 332 [2018-11-23 12:21:44,879 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:44,880 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 332 states. [2018-11-23 12:21:44,886 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 332 to 156. [2018-11-23 12:21:44,886 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 156 states. [2018-11-23 12:21:44,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 156 states to 156 states and 221 transitions. [2018-11-23 12:21:44,888 INFO L78 Accepts]: Start accepts. Automaton has 156 states and 221 transitions. Word has length 36 [2018-11-23 12:21:44,888 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:44,888 INFO L480 AbstractCegarLoop]: Abstraction has 156 states and 221 transitions. [2018-11-23 12:21:44,888 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:21:44,888 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 221 transitions. [2018-11-23 12:21:44,889 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2018-11-23 12:21:44,889 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:44,889 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:44,889 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:44,889 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:44,890 INFO L82 PathProgramCache]: Analyzing trace with hash 617124283, now seen corresponding path program 1 times [2018-11-23 12:21:44,890 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:44,890 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 11 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:44,902 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:44,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:44,924 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:44,939 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,939 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:21:44,963 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:44,965 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:21:44,965 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 8 [2018-11-23 12:21:44,965 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 12:21:44,965 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 12:21:44,965 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=34, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:21:44,965 INFO L87 Difference]: Start difference. First operand 156 states and 221 transitions. Second operand 8 states. [2018-11-23 12:21:45,329 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:45,329 INFO L93 Difference]: Finished difference Result 531 states and 806 transitions. [2018-11-23 12:21:45,329 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 12:21:45,329 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 38 [2018-11-23 12:21:45,329 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:45,330 INFO L225 Difference]: With dead ends: 531 [2018-11-23 12:21:45,330 INFO L226 Difference]: Without dead ends: 455 [2018-11-23 12:21:45,331 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 79 GetRequests, 69 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 16 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=55, Invalid=77, Unknown=0, NotChecked=0, Total=132 [2018-11-23 12:21:45,332 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 455 states. [2018-11-23 12:21:45,350 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 455 to 395. [2018-11-23 12:21:45,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 395 states. [2018-11-23 12:21:45,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 395 states to 395 states and 566 transitions. [2018-11-23 12:21:45,352 INFO L78 Accepts]: Start accepts. Automaton has 395 states and 566 transitions. Word has length 38 [2018-11-23 12:21:45,352 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:45,352 INFO L480 AbstractCegarLoop]: Abstraction has 395 states and 566 transitions. [2018-11-23 12:21:45,352 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 12:21:45,353 INFO L276 IsEmpty]: Start isEmpty. Operand 395 states and 566 transitions. [2018-11-23 12:21:45,353 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2018-11-23 12:21:45,353 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:45,354 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:45,354 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:45,354 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:45,354 INFO L82 PathProgramCache]: Analyzing trace with hash 1319658960, now seen corresponding path program 1 times [2018-11-23 12:21:45,355 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:45,355 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 12 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:45,376 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:45,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:45,400 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:45,422 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:45,422 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:21:45,458 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:45,460 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:21:45,460 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 8 [2018-11-23 12:21:45,460 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 12:21:45,461 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 12:21:45,461 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=34, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:21:45,461 INFO L87 Difference]: Start difference. First operand 395 states and 566 transitions. Second operand 8 states. [2018-11-23 12:21:45,921 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:45,921 INFO L93 Difference]: Finished difference Result 1332 states and 1992 transitions. [2018-11-23 12:21:45,922 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 12:21:45,922 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 40 [2018-11-23 12:21:45,922 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:45,925 INFO L225 Difference]: With dead ends: 1332 [2018-11-23 12:21:45,926 INFO L226 Difference]: Without dead ends: 1122 [2018-11-23 12:21:45,926 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 83 GetRequests, 73 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 16 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=55, Invalid=77, Unknown=0, NotChecked=0, Total=132 [2018-11-23 12:21:45,928 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1122 states. [2018-11-23 12:21:45,971 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1122 to 885. [2018-11-23 12:21:45,971 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 885 states. [2018-11-23 12:21:45,974 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 885 states to 885 states and 1279 transitions. [2018-11-23 12:21:45,974 INFO L78 Accepts]: Start accepts. Automaton has 885 states and 1279 transitions. Word has length 40 [2018-11-23 12:21:45,975 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:45,975 INFO L480 AbstractCegarLoop]: Abstraction has 885 states and 1279 transitions. [2018-11-23 12:21:45,975 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 12:21:45,975 INFO L276 IsEmpty]: Start isEmpty. Operand 885 states and 1279 transitions. [2018-11-23 12:21:45,976 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-23 12:21:45,976 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:45,976 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:45,976 INFO L423 AbstractCegarLoop]: === Iteration 12 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:45,976 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:45,976 INFO L82 PathProgramCache]: Analyzing trace with hash -677622459, now seen corresponding path program 1 times [2018-11-23 12:21:45,977 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:45,977 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 13 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:45,994 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:46,030 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:46,034 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:46,047 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:46,047 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:21:46,070 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:21:46,072 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:21:46,073 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 6 [2018-11-23 12:21:46,073 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 12:21:46,073 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 12:21:46,073 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=17, Unknown=0, NotChecked=0, Total=30 [2018-11-23 12:21:46,073 INFO L87 Difference]: Start difference. First operand 885 states and 1279 transitions. Second operand 6 states. [2018-11-23 12:21:46,311 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:21:46,311 INFO L93 Difference]: Finished difference Result 1637 states and 2529 transitions. [2018-11-23 12:21:46,312 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 12:21:46,312 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 42 [2018-11-23 12:21:46,312 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:21:46,324 INFO L225 Difference]: With dead ends: 1637 [2018-11-23 12:21:46,324 INFO L226 Difference]: Without dead ends: 1359 [2018-11-23 12:21:46,325 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 84 GetRequests, 79 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2018-11-23 12:21:46,326 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1359 states. [2018-11-23 12:21:46,383 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1359 to 1180. [2018-11-23 12:21:46,383 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1180 states. [2018-11-23 12:21:46,387 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1180 states to 1180 states and 1770 transitions. [2018-11-23 12:21:46,387 INFO L78 Accepts]: Start accepts. Automaton has 1180 states and 1770 transitions. Word has length 42 [2018-11-23 12:21:46,387 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:21:46,387 INFO L480 AbstractCegarLoop]: Abstraction has 1180 states and 1770 transitions. [2018-11-23 12:21:46,388 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 12:21:46,388 INFO L276 IsEmpty]: Start isEmpty. Operand 1180 states and 1770 transitions. [2018-11-23 12:21:46,390 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 12:21:46,390 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:21:46,390 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:21:46,390 INFO L423 AbstractCegarLoop]: === Iteration 13 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:21:46,390 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:21:46,391 INFO L82 PathProgramCache]: Analyzing trace with hash -313662180, now seen corresponding path program 1 times [2018-11-23 12:21:46,391 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:21:46,391 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 14 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:21:46,409 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:21:46,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:21:46,462 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:21:47,508 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-23 12:21:47,508 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:21:49,777 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 0 proven. 20 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-23 12:21:49,779 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:21:49,779 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 23] total 44 [2018-11-23 12:21:49,779 INFO L459 AbstractCegarLoop]: Interpolant automaton has 44 states [2018-11-23 12:21:49,780 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 44 interpolants. [2018-11-23 12:21:49,780 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=179, Invalid=1713, Unknown=0, NotChecked=0, Total=1892 [2018-11-23 12:21:49,780 INFO L87 Difference]: Start difference. First operand 1180 states and 1770 transitions. Second operand 44 states. [2018-11-23 12:22:06,445 WARN L180 SmtUtils]: Spent 121.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 74 [2018-11-23 12:22:08,968 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 99 DAG size of output: 86 [2018-11-23 12:22:12,917 WARN L180 SmtUtils]: Spent 134.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 92 [2018-11-23 12:22:14,630 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 104 DAG size of output: 91 [2018-11-23 12:22:16,378 WARN L180 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 87 [2018-11-23 12:22:17,009 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification. DAG size of input: 106 DAG size of output: 93 [2018-11-23 12:22:17,397 WARN L180 SmtUtils]: Spent 115.00 ms on a formula simplification. DAG size of input: 102 DAG size of output: 89 [2018-11-23 12:22:20,430 WARN L180 SmtUtils]: Spent 109.00 ms on a formula simplification. DAG size of input: 96 DAG size of output: 83 [2018-11-23 12:22:20,983 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 92 DAG size of output: 79 [2018-11-23 12:22:21,258 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 98 DAG size of output: 85 [2018-11-23 12:22:21,976 WARN L180 SmtUtils]: Spent 117.00 ms on a formula simplification. DAG size of input: 97 DAG size of output: 84 [2018-11-23 12:22:22,359 WARN L180 SmtUtils]: Spent 195.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 105 [2018-11-23 12:22:23,447 WARN L180 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 111 DAG size of output: 98 [2018-11-23 12:22:23,888 WARN L180 SmtUtils]: Spent 126.00 ms on a formula simplification. DAG size of input: 94 DAG size of output: 81 [2018-11-23 12:22:24,237 WARN L180 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 93 DAG size of output: 80 [2018-11-23 12:22:24,538 WARN L180 SmtUtils]: Spent 144.00 ms on a formula simplification. DAG size of input: 114 DAG size of output: 101 [2018-11-23 12:22:24,883 WARN L180 SmtUtils]: Spent 120.00 ms on a formula simplification. DAG size of input: 99 DAG size of output: 86 [2018-11-23 12:22:25,805 WARN L180 SmtUtils]: Spent 165.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 107 [2018-11-23 12:22:26,857 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 95 DAG size of output: 82 [2018-11-23 12:22:27,232 WARN L180 SmtUtils]: Spent 167.00 ms on a formula simplification. DAG size of input: 116 DAG size of output: 103 [2018-11-23 12:22:28,926 WARN L180 SmtUtils]: Spent 127.00 ms on a formula simplification. DAG size of input: 109 DAG size of output: 96 [2018-11-23 12:22:29,795 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 94 DAG size of output: 81 [2018-11-23 12:22:31,805 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 90 DAG size of output: 77 [2018-11-23 12:22:32,229 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification. DAG size of input: 96 DAG size of output: 83 [2018-11-23 12:22:32,927 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification that was a NOOP. DAG size: 110 [2018-11-23 12:22:33,252 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification. DAG size of input: 85 DAG size of output: 72 [2018-11-23 12:22:34,309 WARN L180 SmtUtils]: Spent 148.00 ms on a formula simplification. DAG size of input: 117 DAG size of output: 101 [2018-11-23 12:22:35,247 WARN L180 SmtUtils]: Spent 180.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 108 [2018-11-23 12:22:36,099 WARN L180 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 92 DAG size of output: 79 [2018-11-23 12:22:36,750 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification. DAG size of input: 93 DAG size of output: 77 [2018-11-23 12:22:37,135 WARN L180 SmtUtils]: Spent 184.00 ms on a formula simplification. DAG size of input: 125 DAG size of output: 112 [2018-11-23 12:22:37,789 WARN L180 SmtUtils]: Spent 105.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 75 [2018-11-23 12:22:38,160 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 94 DAG size of output: 81 [2018-11-23 12:22:38,923 WARN L180 SmtUtils]: Spent 122.00 ms on a formula simplification. DAG size of input: 115 DAG size of output: 99 [2018-11-23 12:22:41,208 WARN L180 SmtUtils]: Spent 126.00 ms on a formula simplification. DAG size of input: 103 DAG size of output: 90 [2018-11-23 12:22:41,946 WARN L180 SmtUtils]: Spent 157.00 ms on a formula simplification. DAG size of input: 123 DAG size of output: 110 [2018-11-23 12:22:42,502 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 109 [2018-11-23 12:22:43,822 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification. DAG size of input: 103 DAG size of output: 94 [2018-11-23 12:22:44,590 WARN L180 SmtUtils]: Spent 139.00 ms on a formula simplification. DAG size of input: 122 DAG size of output: 104 [2018-11-23 12:22:45,006 WARN L180 SmtUtils]: Spent 112.00 ms on a formula simplification that was a NOOP. DAG size: 114 [2018-11-23 12:22:45,995 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 98 DAG size of output: 80 [2018-11-23 12:22:46,750 WARN L180 SmtUtils]: Spent 126.00 ms on a formula simplification. DAG size of input: 101 DAG size of output: 88 [2018-11-23 12:22:47,305 WARN L180 SmtUtils]: Spent 188.00 ms on a formula simplification. DAG size of input: 131 DAG size of output: 115 [2018-11-23 12:22:47,675 WARN L180 SmtUtils]: Spent 115.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 96 [2018-11-23 12:22:48,163 WARN L180 SmtUtils]: Spent 111.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 96 [2018-11-23 12:22:49,048 WARN L180 SmtUtils]: Spent 184.00 ms on a formula simplification. DAG size of input: 127 DAG size of output: 117 [2018-11-23 12:22:49,573 WARN L180 SmtUtils]: Spent 155.00 ms on a formula simplification. DAG size of input: 124 DAG size of output: 106 [2018-11-23 12:22:49,874 WARN L180 SmtUtils]: Spent 144.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 102 [2018-11-23 12:22:50,731 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 109 DAG size of output: 93 [2018-11-23 12:22:51,979 WARN L180 SmtUtils]: Spent 172.00 ms on a formula simplification. DAG size of input: 129 DAG size of output: 113 [2018-11-23 12:22:52,569 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification. DAG size of input: 106 DAG size of output: 83 [2018-11-23 12:22:53,042 WARN L180 SmtUtils]: Spent 150.00 ms on a formula simplification. DAG size of input: 122 DAG size of output: 104 [2018-11-23 12:22:53,637 WARN L180 SmtUtils]: Spent 111.00 ms on a formula simplification. DAG size of input: 107 DAG size of output: 91 [2018-11-23 12:22:54,178 WARN L180 SmtUtils]: Spent 178.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 116 [2018-11-23 12:22:55,827 WARN L180 SmtUtils]: Spent 173.00 ms on a formula simplification. DAG size of input: 136 DAG size of output: 118 [2018-11-23 12:22:56,340 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 114 DAG size of output: 96 [2018-11-23 12:22:56,884 WARN L180 SmtUtils]: Spent 120.00 ms on a formula simplification. DAG size of input: 107 DAG size of output: 103 [2018-11-23 12:22:57,378 WARN L180 SmtUtils]: Spent 197.00 ms on a formula simplification. DAG size of input: 133 DAG size of output: 120 [2018-11-23 12:22:58,037 WARN L180 SmtUtils]: Spent 205.00 ms on a formula simplification. DAG size of input: 138 DAG size of output: 120 [2018-11-23 12:22:58,487 WARN L180 SmtUtils]: Spent 164.00 ms on a formula simplification. DAG size of input: 134 DAG size of output: 116 [2018-11-23 12:22:59,313 WARN L180 SmtUtils]: Spent 117.00 ms on a formula simplification. DAG size of input: 112 DAG size of output: 94 [2018-11-23 12:22:59,671 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification. DAG size of input: 107 DAG size of output: 94 [2018-11-23 12:23:00,030 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 100 [2018-11-23 12:23:00,865 WARN L180 SmtUtils]: Spent 200.00 ms on a formula simplification. DAG size of input: 136 DAG size of output: 118 [2018-11-23 12:23:02,028 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 89 DAG size of output: 76 [2018-11-23 12:23:02,368 WARN L180 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 89 DAG size of output: 85 [2018-11-23 12:23:02,924 WARN L180 SmtUtils]: Spent 146.00 ms on a formula simplification. DAG size of input: 126 DAG size of output: 119 [2018-11-23 12:23:04,760 WARN L180 SmtUtils]: Spent 141.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 97 [2018-11-23 12:23:05,187 WARN L180 SmtUtils]: Spent 145.00 ms on a formula simplification. DAG size of input: 119 DAG size of output: 103 [2018-11-23 12:23:05,799 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 106 [2018-11-23 12:23:06,349 WARN L180 SmtUtils]: Spent 204.00 ms on a formula simplification. DAG size of input: 138 DAG size of output: 123 [2018-11-23 12:23:07,252 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 89 DAG size of output: 73 [2018-11-23 12:23:07,683 WARN L180 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 121 DAG size of output: 108 [2018-11-23 12:23:08,526 WARN L180 SmtUtils]: Spent 188.00 ms on a formula simplification. DAG size of input: 127 DAG size of output: 114 [2018-11-23 12:23:09,593 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 99 DAG size of output: 86 [2018-11-23 12:23:10,062 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 92 [2018-11-23 12:23:11,129 WARN L180 SmtUtils]: Spent 176.00 ms on a formula simplification. DAG size of input: 131 DAG size of output: 122 [2018-11-23 12:23:11,910 WARN L180 SmtUtils]: Spent 158.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 100 [2018-11-23 12:23:12,314 WARN L180 SmtUtils]: Spent 144.00 ms on a formula simplification. DAG size of input: 124 DAG size of output: 106 [2018-11-23 12:23:13,200 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 82 [2018-11-23 12:23:13,634 WARN L180 SmtUtils]: Spent 159.00 ms on a formula simplification. DAG size of input: 127 DAG size of output: 111 [2018-11-23 12:23:14,147 WARN L180 SmtUtils]: Spent 185.00 ms on a formula simplification. DAG size of input: 133 DAG size of output: 117 [2018-11-23 12:23:14,644 WARN L180 SmtUtils]: Spent 126.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 109 [2018-11-23 12:23:15,003 WARN L180 SmtUtils]: Spent 153.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 102 [2018-11-23 12:23:15,461 WARN L180 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 126 DAG size of output: 108 [2018-11-23 12:23:15,950 WARN L180 SmtUtils]: Spent 127.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 89 [2018-11-23 12:23:16,450 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification. DAG size of input: 111 DAG size of output: 95 [2018-11-23 12:23:17,048 WARN L180 SmtUtils]: Spent 145.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 111 [2018-11-23 12:23:18,350 WARN L180 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 132 DAG size of output: 114 [2018-11-23 12:23:18,934 WARN L180 SmtUtils]: Spent 189.00 ms on a formula simplification. DAG size of input: 138 DAG size of output: 120 [2018-11-23 12:23:19,336 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 110 DAG size of output: 92 [2018-11-23 12:23:19,797 WARN L180 SmtUtils]: Spent 137.00 ms on a formula simplification. DAG size of input: 116 DAG size of output: 98 [2018-11-23 12:23:20,319 WARN L180 SmtUtils]: Spent 208.00 ms on a formula simplification. DAG size of input: 134 DAG size of output: 116 [2018-11-23 12:23:20,807 WARN L180 SmtUtils]: Spent 217.00 ms on a formula simplification. DAG size of input: 140 DAG size of output: 122 [2018-11-23 12:23:20,873 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:20,873 INFO L93 Difference]: Finished difference Result 10300 states and 15596 transitions. [2018-11-23 12:23:20,874 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 291 states. [2018-11-23 12:23:20,874 INFO L78 Accepts]: Start accepts. Automaton has 44 states. Word has length 60 [2018-11-23 12:23:20,874 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:20,902 INFO L225 Difference]: With dead ends: 10300 [2018-11-23 12:23:20,902 INFO L226 Difference]: Without dead ends: 10107 [2018-11-23 12:23:20,916 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 402 GetRequests, 76 SyntacticMatches, 1 SemanticMatches, 325 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 39990 ImplicationChecksByTransitivity, 76.9s TimeCoverageRelationStatistics Valid=21910, Invalid=84692, Unknown=0, NotChecked=0, Total=106602 [2018-11-23 12:23:20,923 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 10107 states. [2018-11-23 12:23:21,223 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 10107 to 4296. [2018-11-23 12:23:21,224 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4296 states. [2018-11-23 12:23:21,232 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4296 states to 4296 states and 6662 transitions. [2018-11-23 12:23:21,232 INFO L78 Accepts]: Start accepts. Automaton has 4296 states and 6662 transitions. Word has length 60 [2018-11-23 12:23:21,233 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:21,233 INFO L480 AbstractCegarLoop]: Abstraction has 4296 states and 6662 transitions. [2018-11-23 12:23:21,233 INFO L481 AbstractCegarLoop]: Interpolant automaton has 44 states. [2018-11-23 12:23:21,233 INFO L276 IsEmpty]: Start isEmpty. Operand 4296 states and 6662 transitions. [2018-11-23 12:23:21,235 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 12:23:21,235 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:21,235 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:21,235 INFO L423 AbstractCegarLoop]: === Iteration 14 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:21,235 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:21,236 INFO L82 PathProgramCache]: Analyzing trace with hash 1987160410, now seen corresponding path program 1 times [2018-11-23 12:23:21,236 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:23:21,236 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 15 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:23:21,252 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:21,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:21,278 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:21,369 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 14 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 12:23:21,369 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:23:21,412 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 14 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 12:23:21,415 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:21,415 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 5] total 8 [2018-11-23 12:23:21,415 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 12:23:21,415 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 12:23:21,416 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2018-11-23 12:23:21,416 INFO L87 Difference]: Start difference. First operand 4296 states and 6662 transitions. Second operand 8 states. [2018-11-23 12:23:22,287 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:22,287 INFO L93 Difference]: Finished difference Result 9718 states and 15111 transitions. [2018-11-23 12:23:22,287 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2018-11-23 12:23:22,288 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 60 [2018-11-23 12:23:22,288 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:22,301 INFO L225 Difference]: With dead ends: 9718 [2018-11-23 12:23:22,301 INFO L226 Difference]: Without dead ends: 5487 [2018-11-23 12:23:22,307 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 128 GetRequests, 110 SyntacticMatches, 3 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 36 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=49, Invalid=223, Unknown=0, NotChecked=0, Total=272 [2018-11-23 12:23:22,313 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5487 states. [2018-11-23 12:23:22,561 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5487 to 4713. [2018-11-23 12:23:22,561 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4713 states. [2018-11-23 12:23:22,567 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4713 states to 4713 states and 7078 transitions. [2018-11-23 12:23:22,568 INFO L78 Accepts]: Start accepts. Automaton has 4713 states and 7078 transitions. Word has length 60 [2018-11-23 12:23:22,568 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:22,568 INFO L480 AbstractCegarLoop]: Abstraction has 4713 states and 7078 transitions. [2018-11-23 12:23:22,568 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 12:23:22,569 INFO L276 IsEmpty]: Start isEmpty. Operand 4713 states and 7078 transitions. [2018-11-23 12:23:22,570 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 12:23:22,570 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:22,570 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:22,570 INFO L423 AbstractCegarLoop]: === Iteration 15 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:22,571 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:22,571 INFO L82 PathProgramCache]: Analyzing trace with hash 1930321118, now seen corresponding path program 1 times [2018-11-23 12:23:22,571 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:23:22,571 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 16 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:23:22,589 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:22,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:22,615 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:22,621 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2018-11-23 12:23:22,621 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 12:23:22,622 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:23:22,623 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 12:23:22,623 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 12:23:22,623 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 12:23:22,623 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:23:22,623 INFO L87 Difference]: Start difference. First operand 4713 states and 7078 transitions. Second operand 3 states. [2018-11-23 12:23:22,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:22,860 INFO L93 Difference]: Finished difference Result 5567 states and 8165 transitions. [2018-11-23 12:23:22,860 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:23:22,861 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 60 [2018-11-23 12:23:22,861 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:22,872 INFO L225 Difference]: With dead ends: 5567 [2018-11-23 12:23:22,872 INFO L226 Difference]: Without dead ends: 5508 [2018-11-23 12:23:22,875 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 59 GetRequests, 58 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:23:22,879 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5508 states. [2018-11-23 12:23:23,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5508 to 5021. [2018-11-23 12:23:23,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5021 states. [2018-11-23 12:23:23,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5021 states to 5021 states and 7496 transitions. [2018-11-23 12:23:23,165 INFO L78 Accepts]: Start accepts. Automaton has 5021 states and 7496 transitions. Word has length 60 [2018-11-23 12:23:23,165 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:23,165 INFO L480 AbstractCegarLoop]: Abstraction has 5021 states and 7496 transitions. [2018-11-23 12:23:23,165 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 12:23:23,165 INFO L276 IsEmpty]: Start isEmpty. Operand 5021 states and 7496 transitions. [2018-11-23 12:23:23,167 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 12:23:23,167 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:23,167 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:23,167 INFO L423 AbstractCegarLoop]: === Iteration 16 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:23,167 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:23,168 INFO L82 PathProgramCache]: Analyzing trace with hash -666750562, now seen corresponding path program 1 times [2018-11-23 12:23:23,168 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:23:23,168 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 17 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:23:23,185 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:23,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:23,228 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:23,263 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2018-11-23 12:23:23,263 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 12:23:23,343 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2018-11-23 12:23:23,346 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:23,346 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2018-11-23 12:23:23,346 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 12:23:23,346 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 12:23:23,347 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2018-11-23 12:23:23,347 INFO L87 Difference]: Start difference. First operand 5021 states and 7496 transitions. Second operand 12 states. [2018-11-23 12:23:23,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:23,987 INFO L93 Difference]: Finished difference Result 8580 states and 12852 transitions. [2018-11-23 12:23:23,988 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2018-11-23 12:23:23,988 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 60 [2018-11-23 12:23:23,988 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:23,996 INFO L225 Difference]: With dead ends: 8580 [2018-11-23 12:23:23,996 INFO L226 Difference]: Without dead ends: 5941 [2018-11-23 12:23:24,001 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 125 GetRequests, 109 SyntacticMatches, 0 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 44 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=77, Invalid=229, Unknown=0, NotChecked=0, Total=306 [2018-11-23 12:23:24,006 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5941 states. [2018-11-23 12:23:24,224 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5941 to 5125. [2018-11-23 12:23:24,225 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5125 states. [2018-11-23 12:23:24,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5125 states to 5125 states and 7495 transitions. [2018-11-23 12:23:24,228 INFO L78 Accepts]: Start accepts. Automaton has 5125 states and 7495 transitions. Word has length 60 [2018-11-23 12:23:24,228 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:24,228 INFO L480 AbstractCegarLoop]: Abstraction has 5125 states and 7495 transitions. [2018-11-23 12:23:24,228 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 12:23:24,228 INFO L276 IsEmpty]: Start isEmpty. Operand 5125 states and 7495 transitions. [2018-11-23 12:23:24,229 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 64 [2018-11-23 12:23:24,230 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:24,230 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:24,230 INFO L423 AbstractCegarLoop]: === Iteration 17 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:24,230 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:24,230 INFO L82 PathProgramCache]: Analyzing trace with hash -1543067804, now seen corresponding path program 1 times [2018-11-23 12:23:24,230 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 12:23:24,230 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/cvc4nyu Starting monitored process 18 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 12:23:24,246 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:24,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 12:23:24,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 12:23:24,345 INFO L469 BasicCegarLoop]: Counterexample might be feasible ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); [?] assume true; [?] RET #202#return; [?] CALL call #t~ret3 := main(); [?] havoc ~a~0;havoc ~b~0;havoc ~r~1;~a~0 := #t~nondet0;havoc #t~nondet0;~b~0 := #t~nondet1;havoc #t~nondet1; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32)] [?] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [|mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~a := #in~a;~b := #in~b;havoc ~a0~0;havoc ~a1~0;havoc ~a2~0;havoc ~a3~0;havoc ~b0~0;havoc ~b1~0;havoc ~b2~0;havoc ~b3~0;havoc ~r0~0;havoc ~r1~0;havoc ~r2~0;havoc ~r3~0;havoc ~carry~0;havoc ~partial_sum~0;havoc ~r~0;havoc ~i~0;havoc ~na~0;havoc ~nb~0;~a0~0 := ~a[8:0];~a1~0 := ~bvlshr32(~a, 8bv32)[8:0];~a2~0 := ~bvlshr32(~a, 16bv32)[8:0];~a3~0 := ~bvlshr32(~a, 24bv32)[8:0];~b0~0 := ~b[8:0];~b1~0 := ~bvlshr32(~b, 8bv32)[8:0];~b2~0 := ~bvlshr32(~b, 16bv32)[8:0];~b3~0 := ~bvlshr32(~b, 24bv32)[8:0];~na~0 := 4bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv4 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv3 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv2 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~nb~0 := 4bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv4 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv3 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv2 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~carry~0 := 0bv16;~i~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16));~partial_sum~0 := ~carry~0;~carry~0 := 0bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv0 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv0 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8));~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0];~carry~0 := 1bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~r0~0 := ~partial_sum~0[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16));~partial_sum~0 := ~carry~0;~carry~0 := 0bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8);~r1~0 := ~partial_sum~0[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8);~r2~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8);~r3~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32));#res := ~r~0; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), mp_add_~r~0=(_ bv511 32), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32), |mp_add_#res|=(_ bv511 32)] [?] assume true; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), mp_add_~r~0=(_ bv511 32), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32), |mp_add_#res|=(_ bv511 32)] [?] RET #206#return; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32), |main_#t~ret2|=(_ bv511 32)] [?] ~r~1 := #t~ret2;havoc #t~ret2; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32), main_~r~1=(_ bv511 32)] [?] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [|__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] ~cond := #in~cond; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] assume 0bv32 == ~cond; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] assume !false; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40-L48] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8); [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42-L47] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8); [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44-L46] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8); [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50-L58] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8); [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52-L57] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8); [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54-L56] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8); [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64-L69] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70-L75] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76-L79] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64-L69] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70-L75] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76-L79] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8); [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8); [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8); [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L21-L100] ensures true; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5-L7] assume 0bv32 == ~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40-L48] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8); [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42-L47] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8); [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44-L46] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8); [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50-L58] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8); [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52-L57] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8); [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54-L56] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8); [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64-L69] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70-L75] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76-L79] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64-L69] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70-L75] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76-L79] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8); [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8); [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8); [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L21-L100] ensures true; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5-L7] assume 0bv32 == ~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [L105] unsigned int a, b, r; [L107] a = __VERIFIER_nondet_uint() [L108] b = __VERIFIER_nondet_uint() [L110] CALL, EXPR mp_add(a, b) VAL [\old(a)=149, \old(b)=106] [L23] unsigned char a0, a1, a2, a3; [L24] unsigned char b0, b1, b2, b3; [L25] unsigned char r0, r1, r2, r3; [L26] unsigned short carry; [L27] unsigned short partial_sum; [L28] unsigned int r; [L29] unsigned char i; [L30] unsigned char na, nb; [L31] a0 = a [L32] a1 = a >> 8 [L33] a2 = a >> 16U [L34] a3 = a >> 24U [L35] b0 = b [L36] b1 = b >> 8U [L37] b2 = b >> 16U [L38] b3 = b >> 24U [L39] na = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=4] [L40] COND TRUE a3 == (unsigned char)0 [L41] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=3] [L42] COND TRUE a2 == (unsigned char)0 [L43] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=2] [L44] COND TRUE a1 == (unsigned char)0 [L45] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1] [L49] nb = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=4] [L50] COND TRUE b3 == (unsigned char)0 [L51] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=3] [L52] COND TRUE b2 == (unsigned char)0 [L53] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=2] [L54] COND TRUE b1 == (unsigned char)0 [L55] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=1] [L59] carry = (unsigned short)0 [L60] i = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L64] COND TRUE i < na VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L65] COND TRUE i == (unsigned char)0 [L65] partial_sum = partial_sum + a0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L66] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L67] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L68] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L70] COND TRUE i < nb VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L71] COND TRUE i == (unsigned char)0 [L71] partial_sum = partial_sum + b0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L72] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L73] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L74] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L76] COND TRUE partial_sum > ((unsigned char)254) [L77] partial_sum = partial_sum & ((unsigned char)255) [L78] carry = (unsigned short)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255] [L80] COND TRUE i == (unsigned char)0 [L80] r0 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L81] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=1, na=1, nb=1, partial_sum=255, r0=-1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L64] COND FALSE !(i < na) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L70] COND FALSE !(i < nb) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L76] COND FALSE !(partial_sum > ((unsigned char)254)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L80] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L81] COND TRUE i == (unsigned char)1 [L81] r1 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L61] COND FALSE !((i < na) || (i < nb) || (carry != (unsigned short)0)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L91] COND TRUE i == (unsigned char)2 [L91] r2 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND TRUE i == (unsigned char)3 [L92] r3 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L88] COND FALSE !(i < (unsigned char)4) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L97] r = r0 | (r1 << 8U) | (r2 << 16U) | ((unsigned int)r3 << 24U) [L99] return r; VAL [\old(a)=149, \old(b)=106, \result=511, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r=511, r0=-1, r1=1, r2=0, r3=0] [L110] RET, EXPR mp_add(a, b) VAL [a=149, b=106, mp_add(a, b)=511] [L110] r = mp_add(a, b) [L112] CALL __VERIFIER_assert(r == a + b) VAL [\old(cond)=0] [L5] COND TRUE !(cond) VAL [\old(cond)=0, cond=0] [L6] __VERIFIER_error() VAL [\old(cond)=0, cond=0] ----- [2018-11-23 12:23:24,498 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 12:23:24 BoogieIcfgContainer [2018-11-23 12:23:24,500 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 12:23:24,501 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 12:23:24,501 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 12:23:24,501 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 12:23:24,502 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:21:42" (3/4) ... [2018-11-23 12:23:24,504 INFO L138 WitnessPrinter]: Generating witness for reachability counterexample ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); [?] assume true; [?] RET #202#return; [?] CALL call #t~ret3 := main(); [?] havoc ~a~0;havoc ~b~0;havoc ~r~1;~a~0 := #t~nondet0;havoc #t~nondet0;~b~0 := #t~nondet1;havoc #t~nondet1; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32)] [?] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [|mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~a := #in~a;~b := #in~b;havoc ~a0~0;havoc ~a1~0;havoc ~a2~0;havoc ~a3~0;havoc ~b0~0;havoc ~b1~0;havoc ~b2~0;havoc ~b3~0;havoc ~r0~0;havoc ~r1~0;havoc ~r2~0;havoc ~r3~0;havoc ~carry~0;havoc ~partial_sum~0;havoc ~r~0;havoc ~i~0;havoc ~na~0;havoc ~nb~0;~a0~0 := ~a[8:0];~a1~0 := ~bvlshr32(~a, 8bv32)[8:0];~a2~0 := ~bvlshr32(~a, 16bv32)[8:0];~a3~0 := ~bvlshr32(~a, 24bv32)[8:0];~b0~0 := ~b[8:0];~b1~0 := ~bvlshr32(~b, 8bv32)[8:0];~b2~0 := ~bvlshr32(~b, 16bv32)[8:0];~b3~0 := ~bvlshr32(~b, 24bv32)[8:0];~na~0 := 4bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv4 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv3 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv2 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8);~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~nb~0 := 4bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv4 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv3 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv2 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8);~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~carry~0 := 0bv16;~i~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16));~partial_sum~0 := ~carry~0;~carry~0 := 0bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv0 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv0 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv149 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8));~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0];~carry~0 := 1bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8);~r0~0 := ~partial_sum~0[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv0 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv1 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv255 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16));~partial_sum~0 := ~carry~0;~carry~0 := 0bv16; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8);~r1~0 := ~partial_sum~0[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv1 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8);~r2~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv2 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8);~r3~0 := 0bv8; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv3 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32)] [?] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32));#res := ~r~0; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), mp_add_~r~0=(_ bv511 32), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32), |mp_add_#res|=(_ bv511 32)] [?] assume true; VAL [mp_add_~a=(_ bv149 32), mp_add_~a0~0=(_ bv149 8), mp_add_~a1~0=(_ bv0 8), mp_add_~a2~0=(_ bv0 8), mp_add_~a3~0=(_ bv0 8), mp_add_~b=(_ bv106 32), mp_add_~b0~0=(_ bv106 8), mp_add_~b1~0=(_ bv0 8), mp_add_~b2~0=(_ bv0 8), mp_add_~b3~0=(_ bv0 8), mp_add_~carry~0=(_ bv0 16), mp_add_~i~0=(_ bv4 8), mp_add_~na~0=(_ bv1 8), mp_add_~nb~0=(_ bv1 8), mp_add_~partial_sum~0=(_ bv1 16), mp_add_~r0~0=(_ bv255 8), mp_add_~r1~0=(_ bv1 8), mp_add_~r2~0=(_ bv0 8), mp_add_~r3~0=(_ bv0 8), mp_add_~r~0=(_ bv511 32), |mp_add_#in~a|=(_ bv149 32), |mp_add_#in~b|=(_ bv106 32), |mp_add_#res|=(_ bv511 32)] [?] RET #206#return; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32), |main_#t~ret2|=(_ bv511 32)] [?] ~r~1 := #t~ret2;havoc #t~ret2; VAL [main_~a~0=(_ bv149 32), main_~b~0=(_ bv106 32), main_~r~1=(_ bv511 32)] [?] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [|__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] ~cond := #in~cond; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] assume 0bv32 == ~cond; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] assume !false; VAL [__VERIFIER_assert_~cond=(_ bv0 32), |__VERIFIER_assert_#in~cond|=(_ bv0 32)] [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40-L48] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8); [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42-L47] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8); [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44-L46] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8); [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50-L58] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8); [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52-L57] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8); [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54-L56] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8); [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64-L69] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70-L75] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76-L79] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64-L69] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70-L75] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76-L79] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8); [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8); [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8); [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L21-L100] ensures true; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5-L7] assume 0bv32 == ~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40-L48] assume ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8); [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42-L47] assume ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8); [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44-L46] assume ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8); [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50-L58] assume ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8); [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52-L57] assume ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8); [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54-L56] assume ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8); [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64-L69] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70-L75] assume ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76-L79] assume ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8); [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] assume !!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64-L69] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70-L75] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76-L79] assume !~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8); [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] assume !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8); [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] assume !!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] assume !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] assume ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8); [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] assume !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)); VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L21-L100] ensures true; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5-L7] assume 0bv32 == ~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret3 := main(); [L105] havoc ~a~0; [L105] havoc ~b~0; [L105] havoc ~r~1; [L107] ~a~0 := #t~nondet0; [L107] havoc #t~nondet0; [L108] ~b~0 := #t~nondet1; [L108] havoc #t~nondet1; VAL [~a~0=149bv32, ~b~0=106bv32] [L110] CALL call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#in~a=149bv32, #in~b=106bv32] [L21-L100] ~a := #in~a; [L21-L100] ~b := #in~b; [L23] havoc ~a0~0; [L23] havoc ~a1~0; [L23] havoc ~a2~0; [L23] havoc ~a3~0; [L24] havoc ~b0~0; [L24] havoc ~b1~0; [L24] havoc ~b2~0; [L24] havoc ~b3~0; [L25] havoc ~r0~0; [L25] havoc ~r1~0; [L25] havoc ~r2~0; [L25] havoc ~r3~0; [L26] havoc ~carry~0; [L27] havoc ~partial_sum~0; [L28] havoc ~r~0; [L29] havoc ~i~0; [L30] havoc ~na~0; [L30] havoc ~nb~0; [L31] ~a0~0 := ~a[8:0]; [L32] ~a1~0 := ~bvlshr32(~a, 8bv32)[8:0]; [L33] ~a2~0 := ~bvlshr32(~a, 16bv32)[8:0]; [L34] ~a3~0 := ~bvlshr32(~a, 24bv32)[8:0]; [L35] ~b0~0 := ~b[8:0]; [L36] ~b1~0 := ~bvlshr32(~b, 8bv32)[8:0]; [L37] ~b2~0 := ~bvlshr32(~b, 16bv32)[8:0]; [L38] ~b3~0 := ~bvlshr32(~b, 24bv32)[8:0]; [L39] ~na~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=4bv8] [L40] COND TRUE ~zero_extendFrom8To32(~a3~0) == ~zero_extendFrom8To32(0bv8) [L41] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=3bv8] [L42] COND TRUE ~zero_extendFrom8To32(~a2~0) == ~zero_extendFrom8To32(0bv8) [L43] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=2bv8] [L44] COND TRUE ~zero_extendFrom8To32(~a1~0) == ~zero_extendFrom8To32(0bv8) [L45] ~na~0 := ~bvsub32(~zero_extendFrom8To32(~na~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8] [L49] ~nb~0 := 4bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=4bv8] [L50] COND TRUE ~zero_extendFrom8To32(~b3~0) == ~zero_extendFrom8To32(0bv8) [L51] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=3bv8] [L52] COND TRUE ~zero_extendFrom8To32(~b2~0) == ~zero_extendFrom8To32(0bv8) [L53] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=2bv8] [L54] COND TRUE ~zero_extendFrom8To32(~b1~0) == ~zero_extendFrom8To32(0bv8) [L55] ~nb~0 := ~bvsub32(~zero_extendFrom8To32(~nb~0), 1bv32)[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L59] ~carry~0 := 0bv16; [L60] ~i~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L64] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=0bv16] [L65] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L65] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~a0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L66] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L67] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L68] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L70] COND TRUE ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=149bv16] [L71] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L71] ~partial_sum~0 := ~bvadd32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(~b0~0))[16:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L72] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L73] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L74] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L76] COND TRUE ~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8)) [L77] ~partial_sum~0 := ~bvand32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(255bv8))[16:0]; [L78] ~carry~0 := 1bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16] [L80] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8) [L80] ~r0~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L81] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=0bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=1bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=255bv16, ~r0~0=255bv8] [L61-L86] COND FALSE !(!((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16))) [L62] ~partial_sum~0 := ~carry~0; [L63] ~carry~0 := 0bv16; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L64] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L70] COND FALSE !(~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L76] COND FALSE !(~bvsgt32(~zero_extendFrom16To32(~partial_sum~0), ~zero_extendFrom8To32(254bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L80] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8] [L81] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8) [L81] ~r1~0 := ~partial_sum~0[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L82] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L83] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=1bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L85] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L61-L86] COND TRUE !((~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~na~0)) || ~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(~nb~0))) || ~zero_extendFrom16To32(~carry~0) != ~zero_extendFrom16To32(0bv16)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8] [L91] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8) [L91] ~r2~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=2bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L88-L95] COND FALSE !(!~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8))) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L89] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(0bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L90] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(1bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L91] COND FALSE !(~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(2bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8] [L92] COND TRUE ~zero_extendFrom8To32(~i~0) == ~zero_extendFrom8To32(3bv8) [L92] ~r3~0 := 0bv8; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=3bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L94] ~i~0 := ~bvadd32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(1bv8))[8:0]; VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L88-L95] COND TRUE !~bvslt32(~zero_extendFrom8To32(~i~0), ~zero_extendFrom8To32(4bv8)) VAL [#in~a=149bv32, #in~b=106bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8] [L97] ~r~0 := ~bvor32(~bvor32(~bvor32(~zero_extendFrom8To32(~r0~0), ~bvshl32(~zero_extendFrom8To32(~r1~0), 8bv32)), ~bvshl32(~zero_extendFrom8To32(~r2~0), 16bv32)), ~bvshl32(~zero_extendFrom8To32(~r3~0), 24bv32)); [L99] #res := ~r~0; VAL [#in~a=149bv32, #in~b=106bv32, #res=511bv32, ~a=149bv32, ~a0~0=149bv8, ~a1~0=0bv8, ~a2~0=0bv8, ~a3~0=0bv8, ~b=106bv32, ~b0~0=106bv8, ~b1~0=0bv8, ~b2~0=0bv8, ~b3~0=0bv8, ~carry~0=0bv16, ~i~0=4bv8, ~na~0=1bv8, ~nb~0=1bv8, ~partial_sum~0=1bv16, ~r0~0=255bv8, ~r1~0=1bv8, ~r2~0=0bv8, ~r3~0=0bv8, ~r~0=511bv32] [L110] RET call #t~ret2 := mp_add(~a~0, ~b~0); VAL [#t~ret2=511bv32, ~a~0=149bv32, ~b~0=106bv32] [L110] ~r~1 := #t~ret2; [L110] havoc #t~ret2; VAL [~a~0=149bv32, ~b~0=106bv32, ~r~1=511bv32] [L112] CALL call __VERIFIER_assert((if ~r~1 == ~bvadd32(~a~0, ~b~0) then 1bv32 else 0bv32)); VAL [#in~cond=0bv32] [L4-L9] ~cond := #in~cond; VAL [#in~cond=0bv32, ~cond=0bv32] [L5] COND TRUE 0bv32 == ~cond VAL [#in~cond=0bv32, ~cond=0bv32] [L6] assert false; VAL [#in~cond=0bv32, ~cond=0bv32] [L105] unsigned int a, b, r; [L107] a = __VERIFIER_nondet_uint() [L108] b = __VERIFIER_nondet_uint() [L110] CALL, EXPR mp_add(a, b) VAL [\old(a)=149, \old(b)=106] [L23] unsigned char a0, a1, a2, a3; [L24] unsigned char b0, b1, b2, b3; [L25] unsigned char r0, r1, r2, r3; [L26] unsigned short carry; [L27] unsigned short partial_sum; [L28] unsigned int r; [L29] unsigned char i; [L30] unsigned char na, nb; [L31] a0 = a [L32] a1 = a >> 8 [L33] a2 = a >> 16U [L34] a3 = a >> 24U [L35] b0 = b [L36] b1 = b >> 8U [L37] b2 = b >> 16U [L38] b3 = b >> 24U [L39] na = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=4] [L40] COND TRUE a3 == (unsigned char)0 [L41] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=3] [L42] COND TRUE a2 == (unsigned char)0 [L43] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=2] [L44] COND TRUE a1 == (unsigned char)0 [L45] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1] [L49] nb = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=4] [L50] COND TRUE b3 == (unsigned char)0 [L51] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=3] [L52] COND TRUE b2 == (unsigned char)0 [L53] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=2] [L54] COND TRUE b1 == (unsigned char)0 [L55] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=1] [L59] carry = (unsigned short)0 [L60] i = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L64] COND TRUE i < na VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L65] COND TRUE i == (unsigned char)0 [L65] partial_sum = partial_sum + a0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L66] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L67] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L68] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L70] COND TRUE i < nb VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L71] COND TRUE i == (unsigned char)0 [L71] partial_sum = partial_sum + b0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L72] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L73] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L74] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L76] COND TRUE partial_sum > ((unsigned char)254) [L77] partial_sum = partial_sum & ((unsigned char)255) [L78] carry = (unsigned short)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255] [L80] COND TRUE i == (unsigned char)0 [L80] r0 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L81] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=1, na=1, nb=1, partial_sum=255, r0=-1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L64] COND FALSE !(i < na) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L70] COND FALSE !(i < nb) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L76] COND FALSE !(partial_sum > ((unsigned char)254)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L80] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L81] COND TRUE i == (unsigned char)1 [L81] r1 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L61] COND FALSE !((i < na) || (i < nb) || (carry != (unsigned short)0)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L91] COND TRUE i == (unsigned char)2 [L91] r2 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND TRUE i == (unsigned char)3 [L92] r3 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L88] COND FALSE !(i < (unsigned char)4) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L97] r = r0 | (r1 << 8U) | (r2 << 16U) | ((unsigned int)r3 << 24U) [L99] return r; VAL [\old(a)=149, \old(b)=106, \result=511, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r=511, r0=-1, r1=1, r2=0, r3=0] [L110] RET, EXPR mp_add(a, b) VAL [a=149, b=106, mp_add(a, b)=511] [L110] r = mp_add(a, b) [L112] CALL __VERIFIER_assert(r == a + b) VAL [\old(cond)=0] [L5] COND TRUE !(cond) VAL [\old(cond)=0, cond=0] [L6] __VERIFIER_error() VAL [\old(cond)=0, cond=0] ----- [2018-11-23 12:23:25,038 INFO L145 WitnessManager]: Wrote witness to /tmp/vcloud-vcloud-master/worker/working_dir_29d348bd-9d9b-433f-a556-a12bdb8b10ad/bin-2019/uautomizer/witness.graphml [2018-11-23 12:23:25,038 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 12:23:25,039 INFO L168 Benchmark]: Toolchain (without parser) took 102725.98 ms. Allocated memory was 1.0 GB in the beginning and 1.4 GB in the end (delta: 353.9 MB). Free memory was 949.7 MB in the beginning and 1.2 GB in the end (delta: -243.8 MB). Peak memory consumption was 110.1 MB. Max. memory is 11.5 GB. [2018-11-23 12:23:25,039 INFO L168 Benchmark]: CDTParser took 0.13 ms. Allocated memory is still 1.0 GB. Free memory is still 978.7 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:23:25,039 INFO L168 Benchmark]: CACSL2BoogieTranslator took 204.54 ms. Allocated memory is still 1.0 GB. Free memory was 949.7 MB in the beginning and 933.6 MB in the end (delta: 16.1 MB). Peak memory consumption was 16.1 MB. Max. memory is 11.5 GB. [2018-11-23 12:23:25,040 INFO L168 Benchmark]: Boogie Procedure Inliner took 16.50 ms. Allocated memory is still 1.0 GB. Free memory is still 933.6 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:23:25,040 INFO L168 Benchmark]: Boogie Preprocessor took 24.21 ms. Allocated memory is still 1.0 GB. Free memory is still 933.6 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 12:23:25,040 INFO L168 Benchmark]: RCFGBuilder took 271.01 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 134.2 MB). Free memory was 933.6 MB in the beginning and 1.1 GB in the end (delta: -169.9 MB). Peak memory consumption was 20.7 MB. Max. memory is 11.5 GB. [2018-11-23 12:23:25,040 INFO L168 Benchmark]: TraceAbstraction took 101669.04 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 219.7 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -111.0 MB). Peak memory consumption was 108.6 MB. Max. memory is 11.5 GB. [2018-11-23 12:23:25,040 INFO L168 Benchmark]: Witness Printer took 537.13 ms. Allocated memory is still 1.4 GB. Free memory was 1.2 GB in the beginning and 1.2 GB in the end (delta: 21.0 MB). Peak memory consumption was 21.0 MB. Max. memory is 11.5 GB. [2018-11-23 12:23:25,042 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.13 ms. Allocated memory is still 1.0 GB. Free memory is still 978.7 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 204.54 ms. Allocated memory is still 1.0 GB. Free memory was 949.7 MB in the beginning and 933.6 MB in the end (delta: 16.1 MB). Peak memory consumption was 16.1 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 16.50 ms. Allocated memory is still 1.0 GB. Free memory is still 933.6 MB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 24.21 ms. Allocated memory is still 1.0 GB. Free memory is still 933.6 MB. There was no memory consumed. Max. memory is 11.5 GB. * RCFGBuilder took 271.01 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 134.2 MB). Free memory was 933.6 MB in the beginning and 1.1 GB in the end (delta: -169.9 MB). Peak memory consumption was 20.7 MB. Max. memory is 11.5 GB. * TraceAbstraction took 101669.04 ms. Allocated memory was 1.2 GB in the beginning and 1.4 GB in the end (delta: 219.7 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -111.0 MB). Peak memory consumption was 108.6 MB. Max. memory is 11.5 GB. * Witness Printer took 537.13 ms. Allocated memory is still 1.4 GB. Free memory was 1.2 GB in the beginning and 1.2 GB in the end (delta: 21.0 MB). Peak memory consumption was 21.0 MB. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 6]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L105] unsigned int a, b, r; [L107] a = __VERIFIER_nondet_uint() [L108] b = __VERIFIER_nondet_uint() [L110] CALL, EXPR mp_add(a, b) VAL [\old(a)=149, \old(b)=106] [L23] unsigned char a0, a1, a2, a3; [L24] unsigned char b0, b1, b2, b3; [L25] unsigned char r0, r1, r2, r3; [L26] unsigned short carry; [L27] unsigned short partial_sum; [L28] unsigned int r; [L29] unsigned char i; [L30] unsigned char na, nb; [L31] a0 = a [L32] a1 = a >> 8 [L33] a2 = a >> 16U [L34] a3 = a >> 24U [L35] b0 = b [L36] b1 = b >> 8U [L37] b2 = b >> 16U [L38] b3 = b >> 24U [L39] na = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=4] [L40] COND TRUE a3 == (unsigned char)0 [L41] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=3] [L42] COND TRUE a2 == (unsigned char)0 [L43] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=2] [L44] COND TRUE a1 == (unsigned char)0 [L45] na = na - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1] [L49] nb = (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=4] [L50] COND TRUE b3 == (unsigned char)0 [L51] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=3] [L52] COND TRUE b2 == (unsigned char)0 [L53] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=2] [L54] COND TRUE b1 == (unsigned char)0 [L55] nb = nb - 1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, na=1, nb=1] [L59] carry = (unsigned short)0 [L60] i = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L64] COND TRUE i < na VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=0] [L65] COND TRUE i == (unsigned char)0 [L65] partial_sum = partial_sum + a0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L66] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L67] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L68] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L70] COND TRUE i < nb VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=149] [L71] COND TRUE i == (unsigned char)0 [L71] partial_sum = partial_sum + b0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L72] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L73] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L74] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=0, na=1, nb=1, partial_sum=255] [L76] COND TRUE partial_sum > ((unsigned char)254) [L77] partial_sum = partial_sum & ((unsigned char)255) [L78] carry = (unsigned short)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255] [L80] COND TRUE i == (unsigned char)0 [L80] r0 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L81] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=0, na=1, nb=1, partial_sum=255, r0=-1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=1, i=1, na=1, nb=1, partial_sum=255, r0=-1] [L61] COND TRUE (i < na) || (i < nb) || (carry != (unsigned short)0) [L62] partial_sum = carry [L63] carry = (unsigned short)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L64] COND FALSE !(i < na) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L70] COND FALSE !(i < nb) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L76] COND FALSE !(partial_sum > ((unsigned char)254)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L80] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1] [L81] COND TRUE i == (unsigned char)1 [L81] r1 = (unsigned char)partial_sum VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L82] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L83] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=1, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L85] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L61] COND FALSE !((i < na) || (i < nb) || (carry != (unsigned short)0)) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1] [L91] COND TRUE i == (unsigned char)2 [L91] r2 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND FALSE !(i == (unsigned char)3) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=2, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L88] COND TRUE i < (unsigned char)4 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L89] COND FALSE !(i == (unsigned char)0) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L90] COND FALSE !(i == (unsigned char)1) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L91] COND FALSE !(i == (unsigned char)2) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0] [L92] COND TRUE i == (unsigned char)3 [L92] r3 = (unsigned char)0 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=3, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L94] i = i + (unsigned char)1 VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L88] COND FALSE !(i < (unsigned char)4) VAL [\old(a)=149, \old(b)=106, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r0=-1, r1=1, r2=0, r3=0] [L97] r = r0 | (r1 << 8U) | (r2 << 16U) | ((unsigned int)r3 << 24U) [L99] return r; VAL [\old(a)=149, \old(b)=106, \result=511, a=149, a0=-107, a1=0, a2=0, a3=0, b=106, b0=106, b1=0, b2=0, b3=0, carry=0, i=4, na=1, nb=1, partial_sum=1, r=511, r0=-1, r1=1, r2=0, r3=0] [L110] RET, EXPR mp_add(a, b) VAL [a=149, b=106, mp_add(a, b)=511] [L110] r = mp_add(a, b) [L112] CALL __VERIFIER_assert(r == a + b) VAL [\old(cond)=0] [L5] COND TRUE !(cond) VAL [\old(cond)=0, cond=0] [L6] __VERIFIER_error() VAL [\old(cond)=0, cond=0] - StatisticsResult: Ultimate Automizer benchmark data CFG has 5 procedures, 54 locations, 1 error locations. UNSAFE Result, 101.6s OverallTime, 17 OverallIterations, 3 TraceHistogramMax, 95.2s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 1867 SDtfs, 6547 SDslu, 8536 SDs, 0 SdLazy, 15248 SolverSat, 1272 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 16.8s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 1202 GetRequests, 788 SyntacticMatches, 4 SemanticMatches, 410 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40102 ImplicationChecksByTransitivity, 77.5s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=5125occurred in iteration=16, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 1.3s AutomataMinimizationTime, 16 MinimizatonAttempts, 9161 StatesRemovedByMinimization, 15 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.3s SatisfiabilityAnalysisTime, 3.9s InterpolantComputationTime, 674 NumberOfCodeBlocks, 674 NumberOfCodeBlocksAsserted, 17 NumberOfCheckSat, 889 ConstructedInterpolants, 0 QuantifiedInterpolants, 366361 SizeOfPredicates, 48 NumberOfNonLiveVariables, 1133 ConjunctsInSsa, 100 ConjunctsInUnsatCore, 22 InterpolantComputations, 10 PerfectInterpolantSequences, 125/164 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...