./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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/TaipanReach.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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan --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 Taipan --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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/TaipanReach.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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan --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 Taipan --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 13:38:44,880 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 13:38:44,882 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 13:38:44,890 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 13:38:44,890 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 13:38:44,890 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 13:38:44,891 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 13:38:44,892 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 13:38:44,893 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 13:38:44,894 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 13:38:44,895 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 13:38:44,895 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 13:38:44,895 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 13:38:44,896 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 13:38:44,897 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 13:38:44,897 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 13:38:44,898 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 13:38:44,899 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 13:38:44,900 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 13:38:44,901 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 13:38:44,902 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 13:38:44,903 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 13:38:44,904 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 13:38:44,904 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 13:38:44,904 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 13:38:44,905 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 13:38:44,906 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 13:38:44,906 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 13:38:44,907 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 13:38:44,908 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 13:38:44,908 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 13:38:44,908 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 13:38:44,908 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 13:38:44,909 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 13:38:44,909 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 13:38:44,910 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 13:38:44,910 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Default.epf [2018-11-23 13:38:44,919 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 13:38:44,919 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 13:38:44,920 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 13:38:44,920 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 13:38:44,920 INFO L133 SettingsManager]: * User list type=DISABLED [2018-11-23 13:38:44,920 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2018-11-23 13:38:44,920 INFO L133 SettingsManager]: * Explicit value domain=true [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Octagon Domain=false [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Use the RCFG-of-the-future interface=true [2018-11-23 13:38:44,921 INFO L133 SettingsManager]: * Interval Domain=false [2018-11-23 13:38:44,922 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 13:38:44,922 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 13:38:44,922 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 13:38:44,922 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 13:38:44,922 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 13:38:44,923 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 13:38:44,924 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 13:38:44,924 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 13:38:44,924 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 13:38:44,925 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2018-11-23 13:38:44,925 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 13:38:44,925 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 13:38:44,925 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 13:38:44,925 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES 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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan 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 -> Taipan 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 13:38:44,949 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 13:38:44,959 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 13:38:44,961 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 13:38:44,963 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 13:38:44,963 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 13:38:44,963 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:38:44,997 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/0c53b8c93/9b2425b994024741afedaa94f3dccf5d/FLAG865547781 [2018-11-23 13:38:45,322 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 13:38:45,323 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:38:45,327 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/0c53b8c93/9b2425b994024741afedaa94f3dccf5d/FLAG865547781 [2018-11-23 13:38:45,336 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/0c53b8c93/9b2425b994024741afedaa94f3dccf5d [2018-11-23 13:38:45,338 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 13:38:45,339 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 13:38:45,340 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 13:38:45,340 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 13:38:45,342 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 13:38:45,343 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,344 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@5dd21f3d and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45, skipping insertion in model container [2018-11-23 13:38:45,345 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,350 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 13:38:45,367 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 13:38:45,497 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:38:45,500 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 13:38:45,524 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:38:45,536 INFO L195 MainTranslator]: Completed translation [2018-11-23 13:38:45,536 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45 WrapperNode [2018-11-23 13:38:45,537 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 13:38:45,537 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 13:38:45,537 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 13:38:45,537 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 13:38:45,543 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,548 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,553 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 13:38:45,553 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 13:38:45,553 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 13:38:45,553 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 13:38:45,594 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,594 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,596 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,596 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,601 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,607 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,608 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... [2018-11-23 13:38:45,609 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 13:38:45,610 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 13:38:45,610 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 13:38:45,610 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 13:38:45,611 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:38:45,642 INFO L130 BoogieDeclarations]: Found specification of procedure mp_add [2018-11-23 13:38:45,642 INFO L138 BoogieDeclarations]: Found implementation of procedure mp_add [2018-11-23 13:38:45,642 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 13:38:45,642 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 13:38:45,642 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 13:38:45,642 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 13:38:45,642 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 13:38:45,642 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 13:38:45,642 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 13:38:45,642 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 13:38:45,831 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 13:38:45,831 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 13:38:45,832 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:38:45 BoogieIcfgContainer [2018-11-23 13:38:45,832 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 13:38:45,832 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 13:38:45,832 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 13:38:45,834 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 13:38:45,834 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 01:38:45" (1/3) ... [2018-11-23 13:38:45,835 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7c47ead8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:38:45, skipping insertion in model container [2018-11-23 13:38:45,835 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:38:45" (2/3) ... [2018-11-23 13:38:45,835 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7c47ead8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:38:45, skipping insertion in model container [2018-11-23 13:38:45,835 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:38:45" (3/3) ... [2018-11-23 13:38:45,836 INFO L112 eAbstractionObserver]: Analyzing ICFG byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:38:45,842 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 13:38:45,848 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 13:38:45,857 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 13:38:45,876 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 13:38:45,876 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 13:38:45,876 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 13:38:45,876 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 13:38:45,876 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 13:38:45,876 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 13:38:45,876 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 13:38:45,876 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 13:38:45,888 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states. [2018-11-23 13:38:45,892 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:38:45,892 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:45,892 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 13:38:45,894 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:45,897 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:45,897 INFO L82 PathProgramCache]: Analyzing trace with hash 397916932, now seen corresponding path program 1 times [2018-11-23 13:38:45,898 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:45,927 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:45,928 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:45,928 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:45,928 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:45,953 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:45,981 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 13:38:45,983 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:45,983 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 13:38:45,983 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:45,986 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 13:38:45,994 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 13:38:45,994 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 13:38:45,995 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 2 states. [2018-11-23 13:38:46,011 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:46,011 INFO L93 Difference]: Finished difference Result 76 states and 112 transitions. [2018-11-23 13:38:46,011 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 13:38:46,012 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 21 [2018-11-23 13:38:46,012 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:46,019 INFO L225 Difference]: With dead ends: 76 [2018-11-23 13:38:46,020 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 13:38:46,022 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 13:38:46,036 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 13:38:46,047 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 47. [2018-11-23 13:38:46,048 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2018-11-23 13:38:46,048 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 73 transitions. [2018-11-23 13:38:46,049 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 73 transitions. Word has length 21 [2018-11-23 13:38:46,049 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:46,050 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 73 transitions. [2018-11-23 13:38:46,050 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 13:38:46,050 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 73 transitions. [2018-11-23 13:38:46,050 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:38:46,050 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:46,050 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 13:38:46,050 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:46,051 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:46,051 INFO L82 PathProgramCache]: Analyzing trace with hash -1531564698, now seen corresponding path program 1 times [2018-11-23 13:38:46,051 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:46,051 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,052 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:46,052 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,052 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:46,067 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:46,129 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 13:38:46,130 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:46,130 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 13:38:46,130 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:46,131 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 13:38:46,131 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 13:38:46,132 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 13:38:46,132 INFO L87 Difference]: Start difference. First operand 47 states and 73 transitions. Second operand 3 states. [2018-11-23 13:38:46,292 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:46,292 INFO L93 Difference]: Finished difference Result 102 states and 169 transitions. [2018-11-23 13:38:46,292 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 13:38:46,293 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 21 [2018-11-23 13:38:46,293 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:46,293 INFO L225 Difference]: With dead ends: 102 [2018-11-23 13:38:46,294 INFO L226 Difference]: Without dead ends: 70 [2018-11-23 13:38:46,295 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 13:38:46,295 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2018-11-23 13:38:46,299 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 68. [2018-11-23 13:38:46,299 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 68 states. [2018-11-23 13:38:46,300 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 98 transitions. [2018-11-23 13:38:46,300 INFO L78 Accepts]: Start accepts. Automaton has 68 states and 98 transitions. Word has length 21 [2018-11-23 13:38:46,301 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:46,301 INFO L480 AbstractCegarLoop]: Abstraction has 68 states and 98 transitions. [2018-11-23 13:38:46,301 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 13:38:46,301 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 98 transitions. [2018-11-23 13:38:46,301 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 28 [2018-11-23 13:38:46,302 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:46,302 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 13:38:46,302 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:46,302 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:46,302 INFO L82 PathProgramCache]: Analyzing trace with hash -1473767205, now seen corresponding path program 1 times [2018-11-23 13:38:46,302 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:46,303 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,303 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:46,303 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,303 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:46,316 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:46,383 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 13:38:46,383 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:46,383 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:38:46,383 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:46,384 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:38:46,384 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:38:46,384 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:38:46,384 INFO L87 Difference]: Start difference. First operand 68 states and 98 transitions. Second operand 4 states. [2018-11-23 13:38:46,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:46,572 INFO L93 Difference]: Finished difference Result 159 states and 262 transitions. [2018-11-23 13:38:46,572 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:38:46,573 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 27 [2018-11-23 13:38:46,573 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:46,574 INFO L225 Difference]: With dead ends: 159 [2018-11-23 13:38:46,574 INFO L226 Difference]: Without dead ends: 127 [2018-11-23 13:38:46,574 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 13:38:46,575 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 127 states. [2018-11-23 13:38:46,581 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 127 to 91. [2018-11-23 13:38:46,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 91 states. [2018-11-23 13:38:46,583 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 91 states to 91 states and 133 transitions. [2018-11-23 13:38:46,583 INFO L78 Accepts]: Start accepts. Automaton has 91 states and 133 transitions. Word has length 27 [2018-11-23 13:38:46,583 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:46,583 INFO L480 AbstractCegarLoop]: Abstraction has 91 states and 133 transitions. [2018-11-23 13:38:46,583 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:38:46,583 INFO L276 IsEmpty]: Start isEmpty. Operand 91 states and 133 transitions. [2018-11-23 13:38:46,584 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2018-11-23 13:38:46,584 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:46,584 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 13:38:46,584 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:46,585 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:46,585 INFO L82 PathProgramCache]: Analyzing trace with hash -13869364, now seen corresponding path program 1 times [2018-11-23 13:38:46,585 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:46,586 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,586 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:46,586 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,586 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:46,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:46,657 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 13:38:46,658 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:46,658 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:38:46,658 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:46,658 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:38:46,658 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:38:46,658 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:38:46,659 INFO L87 Difference]: Start difference. First operand 91 states and 133 transitions. Second operand 4 states. [2018-11-23 13:38:46,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:46,804 INFO L93 Difference]: Finished difference Result 245 states and 378 transitions. [2018-11-23 13:38:46,804 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:38:46,804 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 33 [2018-11-23 13:38:46,805 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:46,806 INFO L225 Difference]: With dead ends: 245 [2018-11-23 13:38:46,806 INFO L226 Difference]: Without dead ends: 174 [2018-11-23 13:38:46,807 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 13:38:46,807 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 174 states. [2018-11-23 13:38:46,815 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 174 to 124. [2018-11-23 13:38:46,815 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 124 states. [2018-11-23 13:38:46,817 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 124 states to 124 states and 188 transitions. [2018-11-23 13:38:46,817 INFO L78 Accepts]: Start accepts. Automaton has 124 states and 188 transitions. Word has length 33 [2018-11-23 13:38:46,817 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:46,817 INFO L480 AbstractCegarLoop]: Abstraction has 124 states and 188 transitions. [2018-11-23 13:38:46,817 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:38:46,817 INFO L276 IsEmpty]: Start isEmpty. Operand 124 states and 188 transitions. [2018-11-23 13:38:46,818 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 13:38:46,818 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:46,818 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 13:38:46,819 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:46,819 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:46,819 INFO L82 PathProgramCache]: Analyzing trace with hash -1417056703, now seen corresponding path program 1 times [2018-11-23 13:38:46,819 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:46,819 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,819 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:46,820 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:46,820 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:46,837 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:46,884 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 13:38:46,884 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:46,885 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 13:38:46,885 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:46,885 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 13:38:46,885 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 13:38:46,885 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 13:38:46,888 INFO L87 Difference]: Start difference. First operand 124 states and 188 transitions. Second operand 5 states. [2018-11-23 13:38:47,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:47,067 INFO L93 Difference]: Finished difference Result 346 states and 527 transitions. [2018-11-23 13:38:47,068 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:38:47,068 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 39 [2018-11-23 13:38:47,068 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:47,071 INFO L225 Difference]: With dead ends: 346 [2018-11-23 13:38:47,071 INFO L226 Difference]: Without dead ends: 240 [2018-11-23 13:38:47,072 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 13:38:47,072 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 240 states. [2018-11-23 13:38:47,083 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 240 to 132. [2018-11-23 13:38:47,083 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 132 states. [2018-11-23 13:38:47,085 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 197 transitions. [2018-11-23 13:38:47,085 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 197 transitions. Word has length 39 [2018-11-23 13:38:47,085 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:47,085 INFO L480 AbstractCegarLoop]: Abstraction has 132 states and 197 transitions. [2018-11-23 13:38:47,085 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 13:38:47,086 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 197 transitions. [2018-11-23 13:38:47,086 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2018-11-23 13:38:47,086 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:47,087 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 13:38:47,087 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:47,087 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:47,087 INFO L82 PathProgramCache]: Analyzing trace with hash -1068918534, now seen corresponding path program 1 times [2018-11-23 13:38:47,087 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:47,088 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:47,088 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:47,088 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:47,089 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:47,101 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:47,149 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 13:38:47,149 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:47,150 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 13:38:47,150 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:47,150 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 13:38:47,150 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 13:38:47,150 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 13:38:47,150 INFO L87 Difference]: Start difference. First operand 132 states and 197 transitions. Second operand 5 states. [2018-11-23 13:38:47,338 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:47,338 INFO L93 Difference]: Finished difference Result 367 states and 553 transitions. [2018-11-23 13:38:47,339 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:38:47,339 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 40 [2018-11-23 13:38:47,339 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:47,340 INFO L225 Difference]: With dead ends: 367 [2018-11-23 13:38:47,340 INFO L226 Difference]: Without dead ends: 260 [2018-11-23 13:38:47,340 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 13:38:47,341 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 260 states. [2018-11-23 13:38:47,350 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 260 to 142. [2018-11-23 13:38:47,351 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 142 states. [2018-11-23 13:38:47,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 142 states to 142 states and 210 transitions. [2018-11-23 13:38:47,352 INFO L78 Accepts]: Start accepts. Automaton has 142 states and 210 transitions. Word has length 40 [2018-11-23 13:38:47,352 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:47,352 INFO L480 AbstractCegarLoop]: Abstraction has 142 states and 210 transitions. [2018-11-23 13:38:47,352 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 13:38:47,352 INFO L276 IsEmpty]: Start isEmpty. Operand 142 states and 210 transitions. [2018-11-23 13:38:47,353 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 13:38:47,353 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:47,353 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 13:38:47,353 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:47,354 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:47,354 INFO L82 PathProgramCache]: Analyzing trace with hash 482670800, now seen corresponding path program 1 times [2018-11-23 13:38:47,354 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:47,354 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:47,355 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:47,355 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:47,355 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:47,366 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:47,429 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 13:38:47,430 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:47,430 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:47,431 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 42 with the following transitions: [2018-11-23 13:38:47,432 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [33], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:47,455 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:47,455 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:47,538 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:47,539 INFO L272 AbstractInterpreter]: Visited 14 different actions 14 times. Never merged. Never widened. Performed 49 root evaluator evaluations with a maximum evaluation depth of 3. Performed 49 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:47,543 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:47,543 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:47,580 INFO L227 lantSequenceWeakener]: Weakened 6 states. On average, predicates are now at 57.22% of their original sizes. [2018-11-23 13:38:47,580 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:47,593 INFO L415 sIntCurrentIteration]: We unified 40 AI predicates to 40 [2018-11-23 13:38:47,594 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:47,594 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:47,594 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [5] total 10 [2018-11-23 13:38:47,594 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:47,595 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 13:38:47,595 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 13:38:47,595 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=27, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:38:47,595 INFO L87 Difference]: Start difference. First operand 142 states and 210 transitions. Second operand 7 states. [2018-11-23 13:38:48,027 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:48,028 INFO L93 Difference]: Finished difference Result 682 states and 1044 transitions. [2018-11-23 13:38:48,028 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 13:38:48,028 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 41 [2018-11-23 13:38:48,028 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:48,029 INFO L225 Difference]: With dead ends: 682 [2018-11-23 13:38:48,029 INFO L226 Difference]: Without dead ends: 576 [2018-11-23 13:38:48,030 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 40 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=15, Invalid=27, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:38:48,031 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 576 states. [2018-11-23 13:38:48,039 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 576 to 145. [2018-11-23 13:38:48,039 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 145 states. [2018-11-23 13:38:48,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 145 states to 145 states and 215 transitions. [2018-11-23 13:38:48,040 INFO L78 Accepts]: Start accepts. Automaton has 145 states and 215 transitions. Word has length 41 [2018-11-23 13:38:48,040 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:48,040 INFO L480 AbstractCegarLoop]: Abstraction has 145 states and 215 transitions. [2018-11-23 13:38:48,040 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 13:38:48,040 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 215 transitions. [2018-11-23 13:38:48,041 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-23 13:38:48,041 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:48,042 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] [2018-11-23 13:38:48,042 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:48,042 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:48,042 INFO L82 PathProgramCache]: Analyzing trace with hash 1228767343, now seen corresponding path program 1 times [2018-11-23 13:38:48,042 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:48,043 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:48,043 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:48,043 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:48,043 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:48,054 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:48,113 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 13:38:48,114 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:48,114 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:48,114 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 43 with the following transitions: [2018-11-23 13:38:48,114 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [9], [19], [22], [33], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:48,116 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:48,116 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:48,125 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:48,125 INFO L272 AbstractInterpreter]: Visited 15 different actions 15 times. Never merged. Never widened. Performed 55 root evaluator evaluations with a maximum evaluation depth of 3. Performed 55 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:48,144 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:48,144 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:48,159 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 63.62% of their original sizes. [2018-11-23 13:38:48,159 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:48,181 INFO L415 sIntCurrentIteration]: We unified 41 AI predicates to 41 [2018-11-23 13:38:48,181 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:48,181 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:48,181 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [5] total 12 [2018-11-23 13:38:48,181 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:48,182 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 13:38:48,182 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 13:38:48,182 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:48,182 INFO L87 Difference]: Start difference. First operand 145 states and 215 transitions. Second operand 9 states. [2018-11-23 13:38:48,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:48,834 INFO L93 Difference]: Finished difference Result 801 states and 1226 transitions. [2018-11-23 13:38:48,835 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-23 13:38:48,835 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 42 [2018-11-23 13:38:48,835 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:48,836 INFO L225 Difference]: With dead ends: 801 [2018-11-23 13:38:48,836 INFO L226 Difference]: Without dead ends: 695 [2018-11-23 13:38:48,837 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 41 GetRequests, 34 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:48,837 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 695 states. [2018-11-23 13:38:48,845 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 695 to 145. [2018-11-23 13:38:48,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 145 states. [2018-11-23 13:38:48,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 145 states to 145 states and 215 transitions. [2018-11-23 13:38:48,846 INFO L78 Accepts]: Start accepts. Automaton has 145 states and 215 transitions. Word has length 42 [2018-11-23 13:38:48,846 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:48,846 INFO L480 AbstractCegarLoop]: Abstraction has 145 states and 215 transitions. [2018-11-23 13:38:48,846 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 13:38:48,846 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 215 transitions. [2018-11-23 13:38:48,847 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-23 13:38:48,847 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:48,847 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] [2018-11-23 13:38:48,850 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:48,850 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:48,850 INFO L82 PathProgramCache]: Analyzing trace with hash 1156380785, now seen corresponding path program 1 times [2018-11-23 13:38:48,850 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:48,851 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:48,851 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:48,851 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:48,851 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:48,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:48,931 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 13:38:48,931 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:48,931 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:48,931 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 43 with the following transitions: [2018-11-23 13:38:48,932 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [11], [19], [22], [33], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:48,933 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:48,933 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:48,940 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:48,940 INFO L272 AbstractInterpreter]: Visited 15 different actions 15 times. Never merged. Never widened. Performed 53 root evaluator evaluations with a maximum evaluation depth of 3. Performed 53 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:48,941 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:48,942 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:48,954 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 63.62% of their original sizes. [2018-11-23 13:38:48,954 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:48,979 INFO L415 sIntCurrentIteration]: We unified 41 AI predicates to 41 [2018-11-23 13:38:48,979 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:48,979 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:48,979 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [8] imperfect sequences [5] total 11 [2018-11-23 13:38:48,979 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:48,979 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 13:38:48,980 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 13:38:48,980 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:48,980 INFO L87 Difference]: Start difference. First operand 145 states and 215 transitions. Second operand 8 states. [2018-11-23 13:38:49,464 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:49,464 INFO L93 Difference]: Finished difference Result 804 states and 1229 transitions. [2018-11-23 13:38:49,465 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 13:38:49,465 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2018-11-23 13:38:49,465 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:49,467 INFO L225 Difference]: With dead ends: 804 [2018-11-23 13:38:49,467 INFO L226 Difference]: Without dead ends: 698 [2018-11-23 13:38:49,468 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 41 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:49,469 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 698 states. [2018-11-23 13:38:49,477 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 698 to 142. [2018-11-23 13:38:49,477 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 142 states. [2018-11-23 13:38:49,478 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 142 states to 142 states and 210 transitions. [2018-11-23 13:38:49,478 INFO L78 Accepts]: Start accepts. Automaton has 142 states and 210 transitions. Word has length 42 [2018-11-23 13:38:49,478 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:49,479 INFO L480 AbstractCegarLoop]: Abstraction has 142 states and 210 transitions. [2018-11-23 13:38:49,479 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 13:38:49,479 INFO L276 IsEmpty]: Start isEmpty. Operand 142 states and 210 transitions. [2018-11-23 13:38:49,479 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-23 13:38:49,479 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:49,479 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] [2018-11-23 13:38:49,480 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:49,480 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:49,480 INFO L82 PathProgramCache]: Analyzing trace with hash -258689098, now seen corresponding path program 1 times [2018-11-23 13:38:49,480 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:49,481 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:49,481 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:49,481 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:49,481 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:49,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:49,536 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 13:38:49,536 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:49,536 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:49,536 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 43 with the following transitions: [2018-11-23 13:38:49,536 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [25], [28], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:49,538 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:49,538 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:49,545 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:49,545 INFO L272 AbstractInterpreter]: Visited 15 different actions 15 times. Never merged. Never widened. Performed 55 root evaluator evaluations with a maximum evaluation depth of 3. Performed 55 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:49,547 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:49,548 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:49,559 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 60.05% of their original sizes. [2018-11-23 13:38:49,559 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:49,586 INFO L415 sIntCurrentIteration]: We unified 41 AI predicates to 41 [2018-11-23 13:38:49,587 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:49,587 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:49,587 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [5] total 12 [2018-11-23 13:38:49,587 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:49,587 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 13:38:49,588 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 13:38:49,588 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=51, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:49,588 INFO L87 Difference]: Start difference. First operand 142 states and 210 transitions. Second operand 9 states. [2018-11-23 13:38:50,054 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:50,054 INFO L93 Difference]: Finished difference Result 791 states and 1210 transitions. [2018-11-23 13:38:50,054 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-23 13:38:50,054 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 42 [2018-11-23 13:38:50,054 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:50,056 INFO L225 Difference]: With dead ends: 791 [2018-11-23 13:38:50,057 INFO L226 Difference]: Without dead ends: 685 [2018-11-23 13:38:50,057 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 41 GetRequests, 34 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=21, Invalid=51, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:50,058 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 685 states. [2018-11-23 13:38:50,063 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 685 to 146. [2018-11-23 13:38:50,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 146 states. [2018-11-23 13:38:50,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 217 transitions. [2018-11-23 13:38:50,064 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 217 transitions. Word has length 42 [2018-11-23 13:38:50,064 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:50,064 INFO L480 AbstractCegarLoop]: Abstraction has 146 states and 217 transitions. [2018-11-23 13:38:50,064 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 13:38:50,065 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 217 transitions. [2018-11-23 13:38:50,065 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-23 13:38:50,065 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:50,065 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] [2018-11-23 13:38:50,065 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:50,066 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:50,066 INFO L82 PathProgramCache]: Analyzing trace with hash -236056844, now seen corresponding path program 1 times [2018-11-23 13:38:50,066 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:50,066 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:50,066 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:50,067 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:50,067 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:50,074 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:50,104 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 13:38:50,104 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:50,105 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:50,105 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 43 with the following transitions: [2018-11-23 13:38:50,105 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [25], [30], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:50,106 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:50,106 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:50,110 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:50,110 INFO L272 AbstractInterpreter]: Visited 15 different actions 15 times. Never merged. Never widened. Performed 53 root evaluator evaluations with a maximum evaluation depth of 3. Performed 53 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:50,112 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:50,112 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:50,121 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 60.05% of their original sizes. [2018-11-23 13:38:50,121 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:50,152 INFO L415 sIntCurrentIteration]: We unified 41 AI predicates to 41 [2018-11-23 13:38:50,152 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:50,152 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:50,152 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [8] imperfect sequences [5] total 11 [2018-11-23 13:38:50,152 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:50,153 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 13:38:50,153 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 13:38:50,153 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=18, Invalid=38, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:50,153 INFO L87 Difference]: Start difference. First operand 146 states and 217 transitions. Second operand 8 states. [2018-11-23 13:38:50,490 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:50,490 INFO L93 Difference]: Finished difference Result 793 states and 1210 transitions. [2018-11-23 13:38:50,490 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 13:38:50,491 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 42 [2018-11-23 13:38:50,491 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:50,493 INFO L225 Difference]: With dead ends: 793 [2018-11-23 13:38:50,493 INFO L226 Difference]: Without dead ends: 687 [2018-11-23 13:38:50,493 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 41 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=18, Invalid=38, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:50,494 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 687 states. [2018-11-23 13:38:50,504 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 687 to 146. [2018-11-23 13:38:50,505 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 146 states. [2018-11-23 13:38:50,505 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 217 transitions. [2018-11-23 13:38:50,505 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 217 transitions. Word has length 42 [2018-11-23 13:38:50,506 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:50,506 INFO L480 AbstractCegarLoop]: Abstraction has 146 states and 217 transitions. [2018-11-23 13:38:50,506 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 13:38:50,506 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 217 transitions. [2018-11-23 13:38:50,506 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 13:38:50,506 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:50,507 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] [2018-11-23 13:38:50,507 INFO L423 AbstractCegarLoop]: === Iteration 12 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:50,507 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:50,507 INFO L82 PathProgramCache]: Analyzing trace with hash 1395467255, now seen corresponding path program 1 times [2018-11-23 13:38:50,507 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:50,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:50,508 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:50,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:50,508 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:50,517 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:50,553 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 13:38:50,553 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:50,553 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:50,554 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 44 with the following transitions: [2018-11-23 13:38:50,554 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [9], [19], [22], [25], [28], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:50,555 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:50,555 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:50,561 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:50,561 INFO L272 AbstractInterpreter]: Visited 16 different actions 16 times. Never merged. Never widened. Performed 61 root evaluator evaluations with a maximum evaluation depth of 3. Performed 61 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:50,562 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:50,562 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:50,569 INFO L227 lantSequenceWeakener]: Weakened 8 states. On average, predicates are now at 65.6% of their original sizes. [2018-11-23 13:38:50,569 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:50,608 INFO L415 sIntCurrentIteration]: We unified 42 AI predicates to 42 [2018-11-23 13:38:50,608 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:50,608 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:50,609 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [5] total 14 [2018-11-23 13:38:50,609 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:50,609 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-23 13:38:50,609 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-23 13:38:50,609 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2018-11-23 13:38:50,609 INFO L87 Difference]: Start difference. First operand 146 states and 217 transitions. Second operand 11 states. [2018-11-23 13:38:51,020 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:51,020 INFO L93 Difference]: Finished difference Result 904 states and 1384 transitions. [2018-11-23 13:38:51,020 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 13:38:51,020 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 43 [2018-11-23 13:38:51,021 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:51,022 INFO L225 Difference]: With dead ends: 904 [2018-11-23 13:38:51,022 INFO L226 Difference]: Without dead ends: 798 [2018-11-23 13:38:51,023 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 42 GetRequests, 33 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2018-11-23 13:38:51,023 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 798 states. [2018-11-23 13:38:51,030 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 798 to 150. [2018-11-23 13:38:51,030 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 150 states. [2018-11-23 13:38:51,031 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 150 states to 150 states and 224 transitions. [2018-11-23 13:38:51,031 INFO L78 Accepts]: Start accepts. Automaton has 150 states and 224 transitions. Word has length 43 [2018-11-23 13:38:51,031 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:51,031 INFO L480 AbstractCegarLoop]: Abstraction has 150 states and 224 transitions. [2018-11-23 13:38:51,031 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-23 13:38:51,031 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 224 transitions. [2018-11-23 13:38:51,032 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 13:38:51,032 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:51,032 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] [2018-11-23 13:38:51,032 INFO L423 AbstractCegarLoop]: === Iteration 13 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:51,032 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:51,032 INFO L82 PathProgramCache]: Analyzing trace with hash 1418099509, now seen corresponding path program 1 times [2018-11-23 13:38:51,033 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:51,033 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:51,033 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:51,033 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:51,033 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:51,039 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:51,077 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 13:38:51,077 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:51,077 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:51,077 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 44 with the following transitions: [2018-11-23 13:38:51,077 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [9], [19], [22], [25], [30], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:51,078 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:51,078 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:51,084 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:51,084 INFO L272 AbstractInterpreter]: Visited 16 different actions 16 times. Never merged. Never widened. Performed 59 root evaluator evaluations with a maximum evaluation depth of 3. Performed 59 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:51,089 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:51,089 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:51,097 INFO L227 lantSequenceWeakener]: Weakened 8 states. On average, predicates are now at 65.6% of their original sizes. [2018-11-23 13:38:51,097 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:51,121 INFO L415 sIntCurrentIteration]: We unified 42 AI predicates to 42 [2018-11-23 13:38:51,121 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:51,121 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:51,121 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [5] total 13 [2018-11-23 13:38:51,121 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:51,121 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 13:38:51,122 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 13:38:51,122 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=68, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:51,122 INFO L87 Difference]: Start difference. First operand 150 states and 224 transitions. Second operand 10 states. [2018-11-23 13:38:51,627 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:51,627 INFO L93 Difference]: Finished difference Result 906 states and 1384 transitions. [2018-11-23 13:38:51,627 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 13:38:51,627 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 43 [2018-11-23 13:38:51,627 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:51,631 INFO L225 Difference]: With dead ends: 906 [2018-11-23 13:38:51,631 INFO L226 Difference]: Without dead ends: 800 [2018-11-23 13:38:51,632 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 42 GetRequests, 34 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=22, Invalid=68, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:51,633 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 800 states. [2018-11-23 13:38:51,644 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 800 to 146. [2018-11-23 13:38:51,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 146 states. [2018-11-23 13:38:51,646 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 217 transitions. [2018-11-23 13:38:51,646 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 217 transitions. Word has length 43 [2018-11-23 13:38:51,647 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:51,647 INFO L480 AbstractCegarLoop]: Abstraction has 146 states and 217 transitions. [2018-11-23 13:38:51,647 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 13:38:51,647 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 217 transitions. [2018-11-23 13:38:51,647 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 13:38:51,647 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:51,647 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] [2018-11-23 13:38:51,648 INFO L423 AbstractCegarLoop]: === Iteration 14 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:51,648 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:51,648 INFO L82 PathProgramCache]: Analyzing trace with hash -848516043, now seen corresponding path program 1 times [2018-11-23 13:38:51,648 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:51,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:51,649 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:51,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:51,649 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:51,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:51,688 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 13:38:51,688 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:51,688 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:51,689 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 44 with the following transitions: [2018-11-23 13:38:51,689 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [11], [19], [22], [25], [28], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:51,690 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:51,690 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:51,695 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:51,696 INFO L272 AbstractInterpreter]: Visited 16 different actions 16 times. Never merged. Never widened. Performed 59 root evaluator evaluations with a maximum evaluation depth of 3. Performed 59 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:51,697 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:51,697 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:51,706 INFO L227 lantSequenceWeakener]: Weakened 8 states. On average, predicates are now at 65.6% of their original sizes. [2018-11-23 13:38:51,707 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:51,748 INFO L415 sIntCurrentIteration]: We unified 42 AI predicates to 42 [2018-11-23 13:38:51,748 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:51,748 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:51,748 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [5] total 13 [2018-11-23 13:38:51,749 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:51,749 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 13:38:51,749 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 13:38:51,749 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=23, Invalid=67, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:51,749 INFO L87 Difference]: Start difference. First operand 146 states and 217 transitions. Second operand 10 states. [2018-11-23 13:38:52,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:52,374 INFO L93 Difference]: Finished difference Result 898 states and 1376 transitions. [2018-11-23 13:38:52,374 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 13:38:52,374 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 43 [2018-11-23 13:38:52,374 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:52,377 INFO L225 Difference]: With dead ends: 898 [2018-11-23 13:38:52,377 INFO L226 Difference]: Without dead ends: 792 [2018-11-23 13:38:52,378 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 42 GetRequests, 34 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=23, Invalid=67, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:52,378 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 792 states. [2018-11-23 13:38:52,390 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 792 to 146. [2018-11-23 13:38:52,391 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 146 states. [2018-11-23 13:38:52,391 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 217 transitions. [2018-11-23 13:38:52,391 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 217 transitions. Word has length 43 [2018-11-23 13:38:52,392 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:52,392 INFO L480 AbstractCegarLoop]: Abstraction has 146 states and 217 transitions. [2018-11-23 13:38:52,392 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 13:38:52,392 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 217 transitions. [2018-11-23 13:38:52,393 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 13:38:52,393 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:52,393 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] [2018-11-23 13:38:52,393 INFO L423 AbstractCegarLoop]: === Iteration 15 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:52,394 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:52,394 INFO L82 PathProgramCache]: Analyzing trace with hash -825883789, now seen corresponding path program 1 times [2018-11-23 13:38:52,394 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:52,394 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:52,394 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:52,394 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:52,395 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:52,401 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:52,438 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 13:38:52,438 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:52,438 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:52,438 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 44 with the following transitions: [2018-11-23 13:38:52,439 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [11], [19], [22], [25], [30], [38], [45], [147], [149], [152], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:52,439 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:52,440 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:52,445 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:52,445 INFO L272 AbstractInterpreter]: Visited 16 different actions 16 times. Never merged. Never widened. Performed 57 root evaluator evaluations with a maximum evaluation depth of 3. Performed 57 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:52,447 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:52,447 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:52,455 INFO L227 lantSequenceWeakener]: Weakened 8 states. On average, predicates are now at 65.6% of their original sizes. [2018-11-23 13:38:52,455 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:52,500 INFO L415 sIntCurrentIteration]: We unified 42 AI predicates to 42 [2018-11-23 13:38:52,500 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:52,500 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:52,500 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [5] total 12 [2018-11-23 13:38:52,500 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:52,501 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 13:38:52,501 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 13:38:52,501 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=52, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:52,501 INFO L87 Difference]: Start difference. First operand 146 states and 217 transitions. Second operand 9 states. [2018-11-23 13:38:52,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:52,919 INFO L93 Difference]: Finished difference Result 900 states and 1376 transitions. [2018-11-23 13:38:52,919 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-23 13:38:52,919 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 43 [2018-11-23 13:38:52,919 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:52,921 INFO L225 Difference]: With dead ends: 900 [2018-11-23 13:38:52,921 INFO L226 Difference]: Without dead ends: 794 [2018-11-23 13:38:52,922 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 42 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=20, Invalid=52, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:52,923 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 794 states. [2018-11-23 13:38:52,933 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 794 to 137. [2018-11-23 13:38:52,933 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 137 states. [2018-11-23 13:38:52,934 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 137 states to 137 states and 203 transitions. [2018-11-23 13:38:52,934 INFO L78 Accepts]: Start accepts. Automaton has 137 states and 203 transitions. Word has length 43 [2018-11-23 13:38:52,934 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:52,934 INFO L480 AbstractCegarLoop]: Abstraction has 137 states and 203 transitions. [2018-11-23 13:38:52,935 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 13:38:52,935 INFO L276 IsEmpty]: Start isEmpty. Operand 137 states and 203 transitions. [2018-11-23 13:38:52,935 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2018-11-23 13:38:52,935 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:52,935 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:52,935 INFO L423 AbstractCegarLoop]: === Iteration 16 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:52,935 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:52,936 INFO L82 PathProgramCache]: Analyzing trace with hash -1835951532, now seen corresponding path program 1 times [2018-11-23 13:38:52,936 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:52,936 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:52,936 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:52,936 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:52,936 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:52,943 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:52,990 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:38:52,990 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:52,991 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:38:52,991 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:52,991 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:38:52,991 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:38:52,991 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:38:52,991 INFO L87 Difference]: Start difference. First operand 137 states and 203 transitions. Second operand 4 states. [2018-11-23 13:38:53,094 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:53,094 INFO L93 Difference]: Finished difference Result 368 states and 566 transitions. [2018-11-23 13:38:53,094 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:38:53,094 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 47 [2018-11-23 13:38:53,095 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:53,095 INFO L225 Difference]: With dead ends: 368 [2018-11-23 13:38:53,096 INFO L226 Difference]: Without dead ends: 256 [2018-11-23 13:38:53,096 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 13:38:53,096 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 256 states. [2018-11-23 13:38:53,104 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 256 to 240. [2018-11-23 13:38:53,104 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 240 states. [2018-11-23 13:38:53,104 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 240 states to 240 states and 356 transitions. [2018-11-23 13:38:53,105 INFO L78 Accepts]: Start accepts. Automaton has 240 states and 356 transitions. Word has length 47 [2018-11-23 13:38:53,105 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:53,105 INFO L480 AbstractCegarLoop]: Abstraction has 240 states and 356 transitions. [2018-11-23 13:38:53,105 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:38:53,105 INFO L276 IsEmpty]: Start isEmpty. Operand 240 states and 356 transitions. [2018-11-23 13:38:53,105 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2018-11-23 13:38:53,105 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:53,106 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:53,106 INFO L423 AbstractCegarLoop]: === Iteration 17 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:53,106 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:53,106 INFO L82 PathProgramCache]: Analyzing trace with hash -1306744213, now seen corresponding path program 1 times [2018-11-23 13:38:53,106 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:53,107 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,107 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:53,107 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,107 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:53,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:53,182 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 1 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 13:38:53,182 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:53,182 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:53,183 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 48 with the following transitions: [2018-11-23 13:38:53,183 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [36], [38], [45], [47], [76], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:53,184 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:53,184 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:53,187 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:53,187 INFO L272 AbstractInterpreter]: Visited 15 different actions 15 times. Never merged. Never widened. Performed 55 root evaluator evaluations with a maximum evaluation depth of 4. Performed 55 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Never found a fixpoint. Largest state had 23 variables. [2018-11-23 13:38:53,189 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:53,189 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:53,197 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 49.98% of their original sizes. [2018-11-23 13:38:53,197 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:53,208 INFO L415 sIntCurrentIteration]: We unified 46 AI predicates to 46 [2018-11-23 13:38:53,209 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:53,209 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:53,209 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [8] total 13 [2018-11-23 13:38:53,209 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:53,209 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 13:38:53,209 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 13:38:53,209 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=25, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:38:53,210 INFO L87 Difference]: Start difference. First operand 240 states and 356 transitions. Second operand 7 states. [2018-11-23 13:38:53,438 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:53,438 INFO L93 Difference]: Finished difference Result 574 states and 865 transitions. [2018-11-23 13:38:53,438 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 13:38:53,438 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 47 [2018-11-23 13:38:53,438 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:53,439 INFO L225 Difference]: With dead ends: 574 [2018-11-23 13:38:53,440 INFO L226 Difference]: Without dead ends: 469 [2018-11-23 13:38:53,440 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 46 GetRequests, 41 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=25, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:38:53,441 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 469 states. [2018-11-23 13:38:53,454 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 469 to 242. [2018-11-23 13:38:53,454 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2018-11-23 13:38:53,455 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 359 transitions. [2018-11-23 13:38:53,455 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 359 transitions. Word has length 47 [2018-11-23 13:38:53,455 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:53,455 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 359 transitions. [2018-11-23 13:38:53,455 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 13:38:53,455 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 359 transitions. [2018-11-23 13:38:53,456 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2018-11-23 13:38:53,456 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:53,456 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:53,456 INFO L423 AbstractCegarLoop]: === Iteration 18 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:53,456 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:53,456 INFO L82 PathProgramCache]: Analyzing trace with hash -388841782, now seen corresponding path program 1 times [2018-11-23 13:38:53,456 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:53,457 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,457 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:53,457 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,457 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:53,467 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:53,505 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:38:53,506 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:53,506 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:38:53,506 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:53,506 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:38:53,506 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:38:53,506 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:38:53,507 INFO L87 Difference]: Start difference. First operand 242 states and 359 transitions. Second operand 4 states. [2018-11-23 13:38:53,631 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:53,632 INFO L93 Difference]: Finished difference Result 681 states and 1036 transitions. [2018-11-23 13:38:53,632 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:38:53,632 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 48 [2018-11-23 13:38:53,632 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:53,633 INFO L225 Difference]: With dead ends: 681 [2018-11-23 13:38:53,633 INFO L226 Difference]: Without dead ends: 476 [2018-11-23 13:38:53,634 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 13:38:53,634 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 476 states. [2018-11-23 13:38:53,646 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 476 to 419. [2018-11-23 13:38:53,647 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 419 states. [2018-11-23 13:38:53,647 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 419 states to 419 states and 632 transitions. [2018-11-23 13:38:53,648 INFO L78 Accepts]: Start accepts. Automaton has 419 states and 632 transitions. Word has length 48 [2018-11-23 13:38:53,648 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:53,648 INFO L480 AbstractCegarLoop]: Abstraction has 419 states and 632 transitions. [2018-11-23 13:38:53,648 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:38:53,648 INFO L276 IsEmpty]: Start isEmpty. Operand 419 states and 632 transitions. [2018-11-23 13:38:53,649 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2018-11-23 13:38:53,649 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:53,649 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:53,649 INFO L423 AbstractCegarLoop]: === Iteration 19 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:53,649 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:53,649 INFO L82 PathProgramCache]: Analyzing trace with hash 1897999666, now seen corresponding path program 1 times [2018-11-23 13:38:53,649 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:53,650 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,650 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:53,650 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:53,650 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:53,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:53,687 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:53,687 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:53,687 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:53,687 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 53 with the following transitions: [2018-11-23 13:38:53,687 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [33], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:53,688 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:53,688 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:53,703 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:53,703 INFO L272 AbstractInterpreter]: Visited 31 different actions 35 times. Merged at 3 different actions 3 times. Never widened. Performed 127 root evaluator evaluations with a maximum evaluation depth of 4. Performed 127 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 1 fixpoints after 1 different actions. Largest state had 23 variables. [2018-11-23 13:38:53,708 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:53,708 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:53,729 INFO L227 lantSequenceWeakener]: Weakened 23 states. On average, predicates are now at 51.4% of their original sizes. [2018-11-23 13:38:53,729 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:53,766 INFO L415 sIntCurrentIteration]: We unified 51 AI predicates to 51 [2018-11-23 13:38:53,766 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:53,766 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:53,766 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [5] total 12 [2018-11-23 13:38:53,766 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:53,766 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 13:38:53,767 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 13:38:53,767 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=47, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:38:53,767 INFO L87 Difference]: Start difference. First operand 419 states and 632 transitions. Second operand 9 states. [2018-11-23 13:38:54,065 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:54,065 INFO L93 Difference]: Finished difference Result 864 states and 1309 transitions. [2018-11-23 13:38:54,066 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 13:38:54,066 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 52 [2018-11-23 13:38:54,066 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:54,068 INFO L225 Difference]: With dead ends: 864 [2018-11-23 13:38:54,068 INFO L226 Difference]: Without dead ends: 760 [2018-11-23 13:38:54,068 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 52 GetRequests, 44 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=32, Invalid=58, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:54,069 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 760 states. [2018-11-23 13:38:54,090 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 760 to 452. [2018-11-23 13:38:54,091 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 452 states. [2018-11-23 13:38:54,091 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 452 states to 452 states and 674 transitions. [2018-11-23 13:38:54,092 INFO L78 Accepts]: Start accepts. Automaton has 452 states and 674 transitions. Word has length 52 [2018-11-23 13:38:54,092 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:54,092 INFO L480 AbstractCegarLoop]: Abstraction has 452 states and 674 transitions. [2018-11-23 13:38:54,092 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 13:38:54,092 INFO L276 IsEmpty]: Start isEmpty. Operand 452 states and 674 transitions. [2018-11-23 13:38:54,093 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2018-11-23 13:38:54,093 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:54,093 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:54,093 INFO L423 AbstractCegarLoop]: === Iteration 20 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:54,093 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:54,093 INFO L82 PathProgramCache]: Analyzing trace with hash -1887494540, now seen corresponding path program 1 times [2018-11-23 13:38:54,093 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:54,094 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:54,094 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:54,094 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:54,094 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:54,101 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:54,135 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 13:38:54,135 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:38:54,135 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 13:38:54,135 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:54,136 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 13:38:54,136 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 13:38:54,136 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 13:38:54,136 INFO L87 Difference]: Start difference. First operand 452 states and 674 transitions. Second operand 3 states. [2018-11-23 13:38:54,161 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:54,161 INFO L93 Difference]: Finished difference Result 597 states and 878 transitions. [2018-11-23 13:38:54,162 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 13:38:54,162 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 52 [2018-11-23 13:38:54,162 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:54,163 INFO L225 Difference]: With dead ends: 597 [2018-11-23 13:38:54,163 INFO L226 Difference]: Without dead ends: 566 [2018-11-23 13:38:54,164 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 2 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 13:38:54,164 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 566 states. [2018-11-23 13:38:54,183 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 566 to 515. [2018-11-23 13:38:54,183 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 515 states. [2018-11-23 13:38:54,184 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 515 states to 515 states and 769 transitions. [2018-11-23 13:38:54,184 INFO L78 Accepts]: Start accepts. Automaton has 515 states and 769 transitions. Word has length 52 [2018-11-23 13:38:54,185 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:54,185 INFO L480 AbstractCegarLoop]: Abstraction has 515 states and 769 transitions. [2018-11-23 13:38:54,185 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 13:38:54,185 INFO L276 IsEmpty]: Start isEmpty. Operand 515 states and 769 transitions. [2018-11-23 13:38:54,185 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-23 13:38:54,186 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:54,186 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:54,186 INFO L423 AbstractCegarLoop]: === Iteration 21 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:54,186 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:54,186 INFO L82 PathProgramCache]: Analyzing trace with hash -1087112141, now seen corresponding path program 1 times [2018-11-23 13:38:54,186 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:54,187 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:54,187 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:54,187 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:54,187 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:54,192 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:54,234 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:54,234 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:54,234 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:54,234 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 54 with the following transitions: [2018-11-23 13:38:54,234 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [9], [19], [22], [33], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:54,235 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:54,235 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:54,242 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:54,242 INFO L272 AbstractInterpreter]: Visited 32 different actions 35 times. Merged at 2 different actions 2 times. Never widened. Performed 126 root evaluator evaluations with a maximum evaluation depth of 4. Performed 126 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 1 fixpoints after 1 different actions. Largest state had 23 variables. [2018-11-23 13:38:54,244 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:54,244 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:54,257 INFO L227 lantSequenceWeakener]: Weakened 24 states. On average, predicates are now at 57.44% of their original sizes. [2018-11-23 13:38:54,257 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:54,303 INFO L415 sIntCurrentIteration]: We unified 52 AI predicates to 52 [2018-11-23 13:38:54,304 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:54,304 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:54,304 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [12] imperfect sequences [5] total 15 [2018-11-23 13:38:54,304 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:54,304 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 13:38:54,304 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 13:38:54,305 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=96, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:38:54,305 INFO L87 Difference]: Start difference. First operand 515 states and 769 transitions. Second operand 12 states. [2018-11-23 13:38:55,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:55,171 INFO L93 Difference]: Finished difference Result 1281 states and 1932 transitions. [2018-11-23 13:38:55,171 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 13:38:55,171 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 53 [2018-11-23 13:38:55,171 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:55,173 INFO L225 Difference]: With dead ends: 1281 [2018-11-23 13:38:55,173 INFO L226 Difference]: Without dead ends: 1153 [2018-11-23 13:38:55,174 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 52 GetRequests, 42 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=36, Invalid=96, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:38:55,175 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1153 states. [2018-11-23 13:38:55,196 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1153 to 549. [2018-11-23 13:38:55,196 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 549 states. [2018-11-23 13:38:55,197 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 549 states to 549 states and 812 transitions. [2018-11-23 13:38:55,197 INFO L78 Accepts]: Start accepts. Automaton has 549 states and 812 transitions. Word has length 53 [2018-11-23 13:38:55,197 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:55,197 INFO L480 AbstractCegarLoop]: Abstraction has 549 states and 812 transitions. [2018-11-23 13:38:55,197 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 13:38:55,197 INFO L276 IsEmpty]: Start isEmpty. Operand 549 states and 812 transitions. [2018-11-23 13:38:55,198 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-23 13:38:55,198 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:55,198 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:55,199 INFO L423 AbstractCegarLoop]: === Iteration 22 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:55,199 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:55,199 INFO L82 PathProgramCache]: Analyzing trace with hash 1158467313, now seen corresponding path program 1 times [2018-11-23 13:38:55,199 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:55,199 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:55,199 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:55,200 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:55,200 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:55,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:55,233 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:55,233 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:55,233 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:55,233 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 54 with the following transitions: [2018-11-23 13:38:55,234 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [11], [19], [22], [33], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:55,235 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:55,235 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:55,243 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:55,243 INFO L272 AbstractInterpreter]: Visited 32 different actions 36 times. Merged at 3 different actions 3 times. Never widened. Performed 131 root evaluator evaluations with a maximum evaluation depth of 4. Performed 131 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 1 fixpoints after 1 different actions. Largest state had 23 variables. [2018-11-23 13:38:55,244 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:55,244 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:55,256 INFO L227 lantSequenceWeakener]: Weakened 24 states. On average, predicates are now at 57.44% of their original sizes. [2018-11-23 13:38:55,256 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:55,294 INFO L415 sIntCurrentIteration]: We unified 52 AI predicates to 52 [2018-11-23 13:38:55,294 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:55,294 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:55,294 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [5] total 13 [2018-11-23 13:38:55,294 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:55,295 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 13:38:55,295 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 13:38:55,295 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=63, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:55,295 INFO L87 Difference]: Start difference. First operand 549 states and 812 transitions. Second operand 10 states. [2018-11-23 13:38:55,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:55,647 INFO L93 Difference]: Finished difference Result 1310 states and 1968 transitions. [2018-11-23 13:38:55,647 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 13:38:55,648 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 53 [2018-11-23 13:38:55,648 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:55,650 INFO L225 Difference]: With dead ends: 1310 [2018-11-23 13:38:55,650 INFO L226 Difference]: Without dead ends: 1182 [2018-11-23 13:38:55,651 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 53 GetRequests, 44 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=34, Invalid=76, Unknown=0, NotChecked=0, Total=110 [2018-11-23 13:38:55,651 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1182 states. [2018-11-23 13:38:55,673 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1182 to 548. [2018-11-23 13:38:55,674 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 548 states. [2018-11-23 13:38:55,675 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 548 states to 548 states and 810 transitions. [2018-11-23 13:38:55,675 INFO L78 Accepts]: Start accepts. Automaton has 548 states and 810 transitions. Word has length 53 [2018-11-23 13:38:55,675 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:55,675 INFO L480 AbstractCegarLoop]: Abstraction has 548 states and 810 transitions. [2018-11-23 13:38:55,675 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 13:38:55,675 INFO L276 IsEmpty]: Start isEmpty. Operand 548 states and 810 transitions. [2018-11-23 13:38:55,676 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-23 13:38:55,676 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:55,676 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:55,676 INFO L423 AbstractCegarLoop]: === Iteration 23 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:55,676 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:55,676 INFO L82 PathProgramCache]: Analyzing trace with hash 944325260, now seen corresponding path program 1 times [2018-11-23 13:38:55,677 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:55,677 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:55,677 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:55,677 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:55,677 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:55,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:55,715 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:55,715 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:55,715 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:55,715 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 54 with the following transitions: [2018-11-23 13:38:55,715 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [25], [28], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:55,716 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:55,716 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:55,725 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:55,725 INFO L272 AbstractInterpreter]: Visited 32 different actions 36 times. Merged at 3 different actions 3 times. Never widened. Performed 132 root evaluator evaluations with a maximum evaluation depth of 4. Performed 132 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 1 fixpoints after 1 different actions. Largest state had 23 variables. [2018-11-23 13:38:55,737 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:55,737 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:55,746 INFO L227 lantSequenceWeakener]: Weakened 24 states. On average, predicates are now at 56.4% of their original sizes. [2018-11-23 13:38:55,747 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:55,781 INFO L415 sIntCurrentIteration]: We unified 52 AI predicates to 52 [2018-11-23 13:38:55,781 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:55,781 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:55,781 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [5] total 14 [2018-11-23 13:38:55,781 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:55,782 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-23 13:38:55,782 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-23 13:38:55,782 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=31, Invalid=79, Unknown=0, NotChecked=0, Total=110 [2018-11-23 13:38:55,782 INFO L87 Difference]: Start difference. First operand 548 states and 810 transitions. Second operand 11 states. [2018-11-23 13:38:56,248 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:56,249 INFO L93 Difference]: Finished difference Result 1229 states and 1838 transitions. [2018-11-23 13:38:56,249 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 13:38:56,249 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 53 [2018-11-23 13:38:56,249 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:56,251 INFO L225 Difference]: With dead ends: 1229 [2018-11-23 13:38:56,251 INFO L226 Difference]: Without dead ends: 1101 [2018-11-23 13:38:56,252 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 53 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=38, Invalid=94, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:38:56,253 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1101 states. [2018-11-23 13:38:56,276 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1101 to 578. [2018-11-23 13:38:56,276 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 578 states. [2018-11-23 13:38:56,277 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 578 states to 578 states and 849 transitions. [2018-11-23 13:38:56,277 INFO L78 Accepts]: Start accepts. Automaton has 578 states and 849 transitions. Word has length 53 [2018-11-23 13:38:56,277 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:56,277 INFO L480 AbstractCegarLoop]: Abstraction has 578 states and 849 transitions. [2018-11-23 13:38:56,277 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-23 13:38:56,278 INFO L276 IsEmpty]: Start isEmpty. Operand 578 states and 849 transitions. [2018-11-23 13:38:56,278 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-23 13:38:56,279 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:56,279 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:56,279 INFO L423 AbstractCegarLoop]: === Iteration 24 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:56,279 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:56,279 INFO L82 PathProgramCache]: Analyzing trace with hash 1367971982, now seen corresponding path program 1 times [2018-11-23 13:38:56,279 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:56,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:56,280 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:56,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:56,280 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:56,285 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:56,319 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:56,319 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:56,319 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:56,319 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 54 with the following transitions: [2018-11-23 13:38:56,320 INFO L202 CegarAbsIntRunner]: [0], [3], [14], [19], [22], [25], [30], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:56,320 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:56,321 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:56,328 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 13:38:56,328 INFO L272 AbstractInterpreter]: Visited 32 different actions 36 times. Merged at 3 different actions 3 times. Never widened. Performed 131 root evaluator evaluations with a maximum evaluation depth of 4. Performed 131 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 1 fixpoints after 1 different actions. Largest state had 23 variables. [2018-11-23 13:38:56,336 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:56,336 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 13:38:56,347 INFO L227 lantSequenceWeakener]: Weakened 24 states. On average, predicates are now at 56.4% of their original sizes. [2018-11-23 13:38:56,347 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 13:38:56,381 INFO L415 sIntCurrentIteration]: We unified 52 AI predicates to 52 [2018-11-23 13:38:56,382 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 13:38:56,382 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:56,382 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [10] imperfect sequences [5] total 13 [2018-11-23 13:38:56,382 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:56,382 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 13:38:56,382 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 13:38:56,382 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=62, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:38:56,383 INFO L87 Difference]: Start difference. First operand 578 states and 849 transitions. Second operand 10 states. [2018-11-23 13:38:56,727 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:56,728 INFO L93 Difference]: Finished difference Result 1252 states and 1869 transitions. [2018-11-23 13:38:56,728 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 13:38:56,728 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 53 [2018-11-23 13:38:56,728 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:56,730 INFO L225 Difference]: With dead ends: 1252 [2018-11-23 13:38:56,730 INFO L226 Difference]: Without dead ends: 1124 [2018-11-23 13:38:56,731 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 53 GetRequests, 44 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=35, Invalid=75, Unknown=0, NotChecked=0, Total=110 [2018-11-23 13:38:56,731 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1124 states. [2018-11-23 13:38:56,754 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1124 to 578. [2018-11-23 13:38:56,754 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 578 states. [2018-11-23 13:38:56,755 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 578 states to 578 states and 849 transitions. [2018-11-23 13:38:56,755 INFO L78 Accepts]: Start accepts. Automaton has 578 states and 849 transitions. Word has length 53 [2018-11-23 13:38:56,755 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:56,755 INFO L480 AbstractCegarLoop]: Abstraction has 578 states and 849 transitions. [2018-11-23 13:38:56,755 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 13:38:56,756 INFO L276 IsEmpty]: Start isEmpty. Operand 578 states and 849 transitions. [2018-11-23 13:38:56,756 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2018-11-23 13:38:56,756 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:56,757 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 13:38:56,757 INFO L423 AbstractCegarLoop]: === Iteration 25 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:56,757 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:56,757 INFO L82 PathProgramCache]: Analyzing trace with hash -1399827541, now seen corresponding path program 1 times [2018-11-23 13:38:56,757 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:56,758 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:56,758 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:56,758 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:56,758 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:56,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:56,799 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 13:38:56,799 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:56,799 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 13:38:56,799 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 55 with the following transitions: [2018-11-23 13:38:56,799 INFO L202 CegarAbsIntRunner]: [0], [3], [6], [9], [19], [22], [25], [28], [38], [45], [47], [50], [53], [61], [67], [73], [80], [83], [91], [97], [103], [112], [116], [124], [130], [136], [138], [147], [149], [154], [158], [160], [164], [166], [172], [174], [178], [179], [180], [184], [186], [190], [193], [195], [201], [202], [203], [205], [206], [207] [2018-11-23 13:38:56,800 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 13:38:56,800 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 13:38:56,818 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2018-11-23 13:38:56,818 INFO L272 AbstractInterpreter]: Visited 50 different actions 75 times. Merged at 8 different actions 17 times. Never widened. Performed 233 root evaluator evaluations with a maximum evaluation depth of 6. Performed 233 inverse root evaluator evaluations with a maximum inverse evaluation depth of 6. Found 7 fixpoints after 6 different actions. Largest state had 23 variables. [2018-11-23 13:38:56,823 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:56,823 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2018-11-23 13:38:56,824 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:38:56,824 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:38:56,842 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:56,842 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 13:38:56,872 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:38:56,877 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:38:56,949 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:38:56,949 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:38:56,974 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:38:56,990 INFO L312 seRefinementStrategy]: Constructing automaton from 2 perfect and 1 imperfect interpolant sequences. [2018-11-23 13:38:56,990 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4, 4] imperfect sequences [5] total 8 [2018-11-23 13:38:56,991 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 13:38:56,991 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:38:56,991 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:38:56,992 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=36, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:56,992 INFO L87 Difference]: Start difference. First operand 578 states and 849 transitions. Second operand 4 states. [2018-11-23 13:38:57,559 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:38:57,559 INFO L93 Difference]: Finished difference Result 1266 states and 1941 transitions. [2018-11-23 13:38:57,560 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:38:57,560 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 54 [2018-11-23 13:38:57,560 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:38:57,562 INFO L225 Difference]: With dead ends: 1266 [2018-11-23 13:38:57,562 INFO L226 Difference]: Without dead ends: 767 [2018-11-23 13:38:57,562 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 113 GetRequests, 105 SyntacticMatches, 2 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=20, Invalid=36, Unknown=0, NotChecked=0, Total=56 [2018-11-23 13:38:57,563 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 767 states. [2018-11-23 13:38:57,592 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 767 to 679. [2018-11-23 13:38:57,592 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 679 states. [2018-11-23 13:38:57,593 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 679 states to 679 states and 936 transitions. [2018-11-23 13:38:57,593 INFO L78 Accepts]: Start accepts. Automaton has 679 states and 936 transitions. Word has length 54 [2018-11-23 13:38:57,593 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:38:57,593 INFO L480 AbstractCegarLoop]: Abstraction has 679 states and 936 transitions. [2018-11-23 13:38:57,594 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:38:57,594 INFO L276 IsEmpty]: Start isEmpty. Operand 679 states and 936 transitions. [2018-11-23 13:38:57,595 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 13:38:57,595 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:38:57,595 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 13:38:57,595 INFO L423 AbstractCegarLoop]: === Iteration 26 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:38:57,595 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:38:57,595 INFO L82 PathProgramCache]: Analyzing trace with hash -313662180, now seen corresponding path program 1 times [2018-11-23 13:38:57,595 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 13:38:57,596 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:57,596 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:38:57,596 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 13:38:57,596 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 13:38:57,606 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 13:38:57,613 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 13:38:57,626 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 13:38:57,829 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 01:38:57 BoogieIcfgContainer [2018-11-23 13:38:57,829 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 13:38:57,830 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 13:38:57,830 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 13:38:57,830 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 13:38:57,830 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:38:45" (3/4) ... [2018-11-23 13:38:57,836 INFO L147 WitnessPrinter]: No result that supports witness generation found [2018-11-23 13:38:57,836 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 13:38:57,836 INFO L168 Benchmark]: Toolchain (without parser) took 12497.91 ms. Allocated memory was 1.0 GB in the beginning and 1.5 GB in the end (delta: 429.9 MB). Free memory was 959.1 MB in the beginning and 1.2 GB in the end (delta: -253.7 MB). Peak memory consumption was 176.2 MB. Max. memory is 11.5 GB. [2018-11-23 13:38:57,838 INFO L168 Benchmark]: CDTParser took 0.17 ms. Allocated memory is still 1.0 GB. Free memory is still 985.4 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 13:38:57,838 INFO L168 Benchmark]: CACSL2BoogieTranslator took 196.83 ms. Allocated memory is still 1.0 GB. Free memory was 959.1 MB in the beginning and 945.5 MB in the end (delta: 13.6 MB). Peak memory consumption was 13.6 MB. Max. memory is 11.5 GB. [2018-11-23 13:38:57,838 INFO L168 Benchmark]: Boogie Procedure Inliner took 15.73 ms. Allocated memory is still 1.0 GB. Free memory is still 945.5 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 13:38:57,839 INFO L168 Benchmark]: Boogie Preprocessor took 56.61 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 152.0 MB). Free memory was 945.5 MB in the beginning and 1.1 GB in the end (delta: -201.8 MB). Peak memory consumption was 14.1 MB. Max. memory is 11.5 GB. [2018-11-23 13:38:57,839 INFO L168 Benchmark]: RCFGBuilder took 221.97 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: 23.9 MB). Peak memory consumption was 23.9 MB. Max. memory is 11.5 GB. [2018-11-23 13:38:57,839 INFO L168 Benchmark]: TraceAbstraction took 11997.30 ms. Allocated memory was 1.2 GB in the beginning and 1.5 GB in the end (delta: 277.9 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -89.4 MB). Peak memory consumption was 188.5 MB. Max. memory is 11.5 GB. [2018-11-23 13:38:57,840 INFO L168 Benchmark]: Witness Printer took 6.06 ms. Allocated memory is still 1.5 GB. Free memory is still 1.2 GB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 13:38:57,843 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.17 ms. Allocated memory is still 1.0 GB. Free memory is still 985.4 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 196.83 ms. Allocated memory is still 1.0 GB. Free memory was 959.1 MB in the beginning and 945.5 MB in the end (delta: 13.6 MB). Peak memory consumption was 13.6 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 15.73 ms. Allocated memory is still 1.0 GB. Free memory is still 945.5 MB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 56.61 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 152.0 MB). Free memory was 945.5 MB in the beginning and 1.1 GB in the end (delta: -201.8 MB). Peak memory consumption was 14.1 MB. Max. memory is 11.5 GB. * RCFGBuilder took 221.97 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: 23.9 MB). Peak memory consumption was 23.9 MB. Max. memory is 11.5 GB. * TraceAbstraction took 11997.30 ms. Allocated memory was 1.2 GB in the beginning and 1.5 GB in the end (delta: 277.9 MB). Free memory was 1.1 GB in the beginning and 1.2 GB in the end (delta: -89.4 MB). Peak memory consumption was 188.5 MB. Max. memory is 11.5 GB. * Witness Printer took 6.06 ms. Allocated memory is still 1.5 GB. Free memory is still 1.2 GB. 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, 11.9s OverallTime, 26 OverallIterations, 3 TraceHistogramMax, 8.6s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 4080 SDtfs, 6038 SDslu, 12682 SDs, 0 SdLazy, 4776 SolverSat, 362 SolverUnsat, 2 SolverUnknown, 0 SolverNotchecked, 2.8s Time, PredicateUnifierStatistics: 30 DeclaredPredicates, 841 GetRequests, 692 SyntacticMatches, 7 SemanticMatches, 142 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 7 ImplicationChecksByTransitivity, 0.8s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=679occurred in iteration=25, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.3s AbstIntTime, 16 AbstIntIterations, 15 AbstIntStrong, 0.9852770157792315 AbsIntWeakeningRatio, 0.8286558345642541 AbsIntAvgWeakeningVarsNumRemoved, 0.983751846381093 AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.3s AutomataMinimizationTime, 25 MinimizatonAttempts, 8590 StatesRemovedByMinimization, 24 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.2s SatisfiabilityAnalysisTime, 1.1s InterpolantComputationTime, 1188 NumberOfCodeBlocks, 1188 NumberOfCodeBlocksAsserted, 27 NumberOfCheckSat, 1155 ConstructedInterpolants, 1 QuantifiedInterpolants, 139864 SizeOfPredicates, 2 NumberOfNonLiveVariables, 144 ConjunctsInSsa, 5 ConjunctsInUnsatCore, 27 InterpolantComputations, 11 PerfectInterpolantSequences, 287/348 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 13:38:59,379 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 13:38:59,383 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 13:38:59,391 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 13:38:59,392 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 13:38:59,392 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 13:38:59,393 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 13:38:59,394 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 13:38:59,395 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 13:38:59,396 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 13:38:59,396 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 13:38:59,397 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 13:38:59,397 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 13:38:59,398 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 13:38:59,399 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 13:38:59,399 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 13:38:59,400 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 13:38:59,401 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 13:38:59,402 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 13:38:59,403 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 13:38:59,404 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 13:38:59,404 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 13:38:59,406 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 13:38:59,406 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 13:38:59,406 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 13:38:59,407 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 13:38:59,408 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 13:38:59,408 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 13:38:59,409 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 13:38:59,410 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 13:38:59,410 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 13:38:59,410 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 13:38:59,410 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 13:38:59,410 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 13:38:59,411 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 13:38:59,412 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 13:38:59,412 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Bitvector.epf [2018-11-23 13:38:59,421 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 13:38:59,422 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 13:38:59,422 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 13:38:59,422 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 13:38:59,423 INFO L133 SettingsManager]: * User list type=DISABLED [2018-11-23 13:38:59,423 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2018-11-23 13:38:59,423 INFO L133 SettingsManager]: * Explicit value domain=true [2018-11-23 13:38:59,423 INFO L133 SettingsManager]: * Octagon Domain=false [2018-11-23 13:38:59,423 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2018-11-23 13:38:59,423 INFO L133 SettingsManager]: * Interval Domain=false [2018-11-23 13:38:59,424 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 13:38:59,424 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 13:38:59,424 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 13:38:59,424 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 13:38:59,424 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 13:38:59,424 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 13:38:59,425 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 13:38:59,425 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 13:38:59,426 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 13:38:59,426 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 13:38:59,427 INFO L133 SettingsManager]: * Trace refinement strategy=WALRUS [2018-11-23 13:38:59,427 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 13:38:59,427 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 13:38:59,427 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 13:38:59,427 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_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan 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 -> Taipan 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 13:38:59,456 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 13:38:59,465 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 13:38:59,468 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 13:38:59,469 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 13:38:59,469 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 13:38:59,470 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/../../sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:38:59,516 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/f82b0c067/0294d50c9a2744c8835a9a77e6652346/FLAG766ae8f03 [2018-11-23 13:38:59,839 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 13:38:59,840 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/sv-benchmarks/c/bitvector/byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:38:59,844 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/f82b0c067/0294d50c9a2744c8835a9a77e6652346/FLAG766ae8f03 [2018-11-23 13:39:00,271 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/data/f82b0c067/0294d50c9a2744c8835a9a77e6652346 [2018-11-23 13:39:00,273 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 13:39:00,274 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 13:39:00,275 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 13:39:00,275 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 13:39:00,278 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 13:39:00,279 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,281 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@1c42fe31 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00, skipping insertion in model container [2018-11-23 13:39:00,281 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,287 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 13:39:00,307 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 13:39:00,438 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:39:00,441 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 13:39:00,465 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 13:39:00,473 INFO L195 MainTranslator]: Completed translation [2018-11-23 13:39:00,473 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00 WrapperNode [2018-11-23 13:39:00,473 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 13:39:00,474 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 13:39:00,474 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 13:39:00,474 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 13:39:00,479 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,484 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,487 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 13:39:00,488 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 13:39:00,488 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 13:39:00,488 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 13:39:00,493 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,494 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,496 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,496 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,503 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,509 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,511 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... [2018-11-23 13:39:00,513 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 13:39:00,513 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 13:39:00,513 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 13:39:00,513 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 13:39:00,514 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:00,591 INFO L130 BoogieDeclarations]: Found specification of procedure mp_add [2018-11-23 13:39:00,591 INFO L138 BoogieDeclarations]: Found implementation of procedure mp_add [2018-11-23 13:39:00,592 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 13:39:00,592 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 13:39:00,592 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 13:39:00,592 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 13:39:00,592 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 13:39:00,592 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 13:39:00,592 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 13:39:00,592 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 13:39:00,809 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 13:39:00,809 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 13:39:00,811 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:39:00 BoogieIcfgContainer [2018-11-23 13:39:00,811 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 13:39:00,812 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 13:39:00,812 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 13:39:00,814 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 13:39:00,814 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 01:39:00" (1/3) ... [2018-11-23 13:39:00,815 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@34eabf0c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:39:00, skipping insertion in model container [2018-11-23 13:39:00,815 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 01:39:00" (2/3) ... [2018-11-23 13:39:00,815 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@34eabf0c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 01:39:00, skipping insertion in model container [2018-11-23 13:39:00,815 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:39:00" (3/3) ... [2018-11-23 13:39:00,817 INFO L112 eAbstractionObserver]: Analyzing ICFG byte_add_false-unreach-call_true-no-overflow_true-termination.i [2018-11-23 13:39:00,823 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 13:39:00,828 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 13:39:00,841 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 13:39:00,862 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 13:39:00,862 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 13:39:00,862 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 13:39:00,862 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 13:39:00,862 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 13:39:00,862 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 13:39:00,862 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 13:39:00,862 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 13:39:00,862 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 13:39:00,874 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states. [2018-11-23 13:39:00,878 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:39:00,878 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:00,879 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 13:39:00,880 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:00,883 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:00,884 INFO L82 PathProgramCache]: Analyzing trace with hash 397916932, now seen corresponding path program 1 times [2018-11-23 13:39:00,886 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:00,887 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:00,899 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:00,925 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:00,934 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:00,950 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 13:39:00,950 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:00,953 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:00,953 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 13:39:00,955 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 13:39:00,963 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 13:39:00,963 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 13:39:00,964 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 2 states. [2018-11-23 13:39:00,986 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:00,986 INFO L93 Difference]: Finished difference Result 76 states and 112 transitions. [2018-11-23 13:39:00,986 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 13:39:00,987 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 21 [2018-11-23 13:39:00,987 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:00,992 INFO L225 Difference]: With dead ends: 76 [2018-11-23 13:39:00,992 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 13:39:00,994 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 13:39:01,004 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 13:39:01,018 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 47. [2018-11-23 13:39:01,019 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2018-11-23 13:39:01,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 73 transitions. [2018-11-23 13:39:01,022 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 73 transitions. Word has length 21 [2018-11-23 13:39:01,022 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:01,022 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 73 transitions. [2018-11-23 13:39:01,022 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 13:39:01,022 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 73 transitions. [2018-11-23 13:39:01,023 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 22 [2018-11-23 13:39:01,023 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:01,023 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 13:39:01,024 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:01,024 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:01,024 INFO L82 PathProgramCache]: Analyzing trace with hash -1531564698, now seen corresponding path program 1 times [2018-11-23 13:39:01,024 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:01,024 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:01,042 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:01,067 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:01,071 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:01,109 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 13:39:01,109 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:01,110 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:01,110 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:39:01,111 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:39:01,111 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:39:01,112 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:39:01,112 INFO L87 Difference]: Start difference. First operand 47 states and 73 transitions. Second operand 4 states. [2018-11-23 13:39:01,230 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:01,231 INFO L93 Difference]: Finished difference Result 127 states and 213 transitions. [2018-11-23 13:39:01,231 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:39:01,231 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 21 [2018-11-23 13:39:01,231 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:01,233 INFO L225 Difference]: With dead ends: 127 [2018-11-23 13:39:01,233 INFO L226 Difference]: Without dead ends: 95 [2018-11-23 13:39:01,234 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 13:39:01,234 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 95 states. [2018-11-23 13:39:01,240 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 95 to 90. [2018-11-23 13:39:01,241 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 90 states. [2018-11-23 13:39:01,242 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 139 transitions. [2018-11-23 13:39:01,242 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 139 transitions. Word has length 21 [2018-11-23 13:39:01,242 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:01,242 INFO L480 AbstractCegarLoop]: Abstraction has 90 states and 139 transitions. [2018-11-23 13:39:01,242 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:39:01,243 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 139 transitions. [2018-11-23 13:39:01,243 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2018-11-23 13:39:01,243 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:01,243 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 13:39:01,244 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:01,244 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:01,244 INFO L82 PathProgramCache]: Analyzing trace with hash -1988705185, now seen corresponding path program 1 times [2018-11-23 13:39:01,244 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:01,244 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:01,256 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:01,281 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:01,285 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:01,339 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 13:39:01,339 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:01,341 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:01,341 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 13:39:01,341 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 13:39:01,341 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 13:39:01,342 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 13:39:01,342 INFO L87 Difference]: Start difference. First operand 90 states and 139 transitions. Second operand 5 states. [2018-11-23 13:39:01,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:01,549 INFO L93 Difference]: Finished difference Result 173 states and 282 transitions. [2018-11-23 13:39:01,549 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:39:01,550 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 22 [2018-11-23 13:39:01,550 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:01,551 INFO L225 Difference]: With dead ends: 173 [2018-11-23 13:39:01,551 INFO L226 Difference]: Without dead ends: 141 [2018-11-23 13:39:01,552 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 13:39:01,552 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 141 states. [2018-11-23 13:39:01,563 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 141 to 90. [2018-11-23 13:39:01,563 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 90 states. [2018-11-23 13:39:01,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 139 transitions. [2018-11-23 13:39:01,564 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 139 transitions. Word has length 22 [2018-11-23 13:39:01,565 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:01,565 INFO L480 AbstractCegarLoop]: Abstraction has 90 states and 139 transitions. [2018-11-23 13:39:01,565 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 13:39:01,565 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 139 transitions. [2018-11-23 13:39:01,566 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2018-11-23 13:39:01,566 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:01,566 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 13:39:01,566 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:01,566 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:01,566 INFO L82 PathProgramCache]: Analyzing trace with hash -1386022735, now seen corresponding path program 1 times [2018-11-23 13:39:01,567 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:01,567 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:01,584 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:01,614 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:01,617 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:01,648 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 13:39:01,648 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:01,649 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:01,649 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2018-11-23 13:39:01,650 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 13:39:01,650 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 13:39:01,650 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:39:01,650 INFO L87 Difference]: Start difference. First operand 90 states and 139 transitions. Second operand 7 states. [2018-11-23 13:39:01,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:01,824 INFO L93 Difference]: Finished difference Result 215 states and 343 transitions. [2018-11-23 13:39:01,824 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 13:39:01,824 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 23 [2018-11-23 13:39:01,825 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:01,826 INFO L225 Difference]: With dead ends: 215 [2018-11-23 13:39:01,826 INFO L226 Difference]: Without dead ends: 183 [2018-11-23 13:39:01,827 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 13:39:01,827 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 183 states. [2018-11-23 13:39:01,836 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 183 to 120. [2018-11-23 13:39:01,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 120 states. [2018-11-23 13:39:01,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 120 states to 120 states and 183 transitions. [2018-11-23 13:39:01,838 INFO L78 Accepts]: Start accepts. Automaton has 120 states and 183 transitions. Word has length 23 [2018-11-23 13:39:01,838 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:01,838 INFO L480 AbstractCegarLoop]: Abstraction has 120 states and 183 transitions. [2018-11-23 13:39:01,838 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 13:39:01,839 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 183 transitions. [2018-11-23 13:39:01,839 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2018-11-23 13:39:01,839 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:01,839 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 13:39:01,840 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:01,840 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:01,840 INFO L82 PathProgramCache]: Analyzing trace with hash -1127857297, now seen corresponding path program 1 times [2018-11-23 13:39:01,840 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:01,840 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:01,862 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:01,879 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:01,882 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:01,908 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 13:39:01,908 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:01,909 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:01,909 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 13:39:01,909 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 13:39:01,909 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 13:39:01,910 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 13:39:01,910 INFO L87 Difference]: Start difference. First operand 120 states and 183 transitions. Second operand 6 states. [2018-11-23 13:39:02,110 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:02,110 INFO L93 Difference]: Finished difference Result 234 states and 364 transitions. [2018-11-23 13:39:02,110 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 13:39:02,110 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 23 [2018-11-23 13:39:02,111 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:02,111 INFO L225 Difference]: With dead ends: 234 [2018-11-23 13:39:02,112 INFO L226 Difference]: Without dead ends: 202 [2018-11-23 13:39:02,112 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 13:39:02,112 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 202 states. [2018-11-23 13:39:02,119 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 202 to 96. [2018-11-23 13:39:02,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 96 states. [2018-11-23 13:39:02,120 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 138 transitions. [2018-11-23 13:39:02,120 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 138 transitions. Word has length 23 [2018-11-23 13:39:02,120 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:02,120 INFO L480 AbstractCegarLoop]: Abstraction has 96 states and 138 transitions. [2018-11-23 13:39:02,120 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 13:39:02,121 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 138 transitions. [2018-11-23 13:39:02,121 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-23 13:39:02,121 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:02,122 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 13:39:02,122 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:02,122 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:02,122 INFO L82 PathProgramCache]: Analyzing trace with hash 214387631, now seen corresponding path program 1 times [2018-11-23 13:39:02,122 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:02,122 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:02,134 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:02,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:02,157 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:02,167 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 13:39:02,167 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:02,168 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:02,169 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 13:39:02,169 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 13:39:02,169 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 13:39:02,169 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 13:39:02,170 INFO L87 Difference]: Start difference. First operand 96 states and 138 transitions. Second operand 4 states. [2018-11-23 13:39:02,258 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:02,258 INFO L93 Difference]: Finished difference Result 254 states and 370 transitions. [2018-11-23 13:39:02,258 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 13:39:02,258 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 34 [2018-11-23 13:39:02,258 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:02,259 INFO L225 Difference]: With dead ends: 254 [2018-11-23 13:39:02,259 INFO L226 Difference]: Without dead ends: 180 [2018-11-23 13:39:02,260 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 13:39:02,260 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 180 states. [2018-11-23 13:39:02,267 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 180 to 106. [2018-11-23 13:39:02,267 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 106 states. [2018-11-23 13:39:02,268 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 151 transitions. [2018-11-23 13:39:02,268 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 151 transitions. Word has length 34 [2018-11-23 13:39:02,268 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:02,268 INFO L480 AbstractCegarLoop]: Abstraction has 106 states and 151 transitions. [2018-11-23 13:39:02,268 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 13:39:02,269 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 151 transitions. [2018-11-23 13:39:02,269 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2018-11-23 13:39:02,269 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:02,270 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 13:39:02,270 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:02,270 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:02,270 INFO L82 PathProgramCache]: Analyzing trace with hash -1041972219, now seen corresponding path program 1 times [2018-11-23 13:39:02,270 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:02,270 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:02,300 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:02,325 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:02,328 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:02,348 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 13:39:02,349 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:02,353 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:02,354 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 13:39:02,354 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 13:39:02,354 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 13:39:02,354 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2018-11-23 13:39:02,354 INFO L87 Difference]: Start difference. First operand 106 states and 151 transitions. Second operand 5 states. [2018-11-23 13:39:02,441 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:02,441 INFO L93 Difference]: Finished difference Result 334 states and 488 transitions. [2018-11-23 13:39:02,442 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 13:39:02,442 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 35 [2018-11-23 13:39:02,442 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:02,443 INFO L225 Difference]: With dead ends: 334 [2018-11-23 13:39:02,443 INFO L226 Difference]: Without dead ends: 260 [2018-11-23 13:39:02,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 13:39:02,444 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 260 states. [2018-11-23 13:39:02,453 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 260 to 106. [2018-11-23 13:39:02,453 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 106 states. [2018-11-23 13:39:02,454 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 151 transitions. [2018-11-23 13:39:02,454 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 151 transitions. Word has length 35 [2018-11-23 13:39:02,454 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:02,455 INFO L480 AbstractCegarLoop]: Abstraction has 106 states and 151 transitions. [2018-11-23 13:39:02,455 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 13:39:02,455 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 151 transitions. [2018-11-23 13:39:02,456 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 13:39:02,456 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:02,456 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 13:39:02,457 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:02,457 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:02,457 INFO L82 PathProgramCache]: Analyzing trace with hash 919023332, now seen corresponding path program 1 times [2018-11-23 13:39:02,458 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:02,458 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:02,473 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:02,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:02,499 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:02,523 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 13:39:02,523 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:02,533 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:02,533 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2018-11-23 13:39:02,533 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 13:39:02,534 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 13:39:02,534 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2018-11-23 13:39:02,534 INFO L87 Difference]: Start difference. First operand 106 states and 151 transitions. Second operand 7 states. [2018-11-23 13:39:02,669 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:02,669 INFO L93 Difference]: Finished difference Result 408 states and 594 transitions. [2018-11-23 13:39:02,669 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 13:39:02,669 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 36 [2018-11-23 13:39:02,669 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:02,670 INFO L225 Difference]: With dead ends: 408 [2018-11-23 13:39:02,671 INFO L226 Difference]: Without dead ends: 334 [2018-11-23 13:39:02,671 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 13:39:02,672 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 334 states. [2018-11-23 13:39:02,680 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 334 to 166. [2018-11-23 13:39:02,681 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 166 states. [2018-11-23 13:39:02,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 166 states to 166 states and 236 transitions. [2018-11-23 13:39:02,681 INFO L78 Accepts]: Start accepts. Automaton has 166 states and 236 transitions. Word has length 36 [2018-11-23 13:39:02,682 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:02,682 INFO L480 AbstractCegarLoop]: Abstraction has 166 states and 236 transitions. [2018-11-23 13:39:02,682 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 13:39:02,682 INFO L276 IsEmpty]: Start isEmpty. Operand 166 states and 236 transitions. [2018-11-23 13:39:02,683 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 13:39:02,683 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:02,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 13:39:02,683 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:02,683 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:02,683 INFO L82 PathProgramCache]: Analyzing trace with hash -1452715930, now seen corresponding path program 1 times [2018-11-23 13:39:02,684 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:02,684 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:02,698 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:02,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:02,719 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:02,741 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 13:39:02,741 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:02,742 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:39:02,742 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 13:39:02,742 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 13:39:02,742 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 13:39:02,742 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=20, Unknown=0, NotChecked=0, Total=30 [2018-11-23 13:39:02,743 INFO L87 Difference]: Start difference. First operand 166 states and 236 transitions. Second operand 6 states. [2018-11-23 13:39:02,886 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:02,886 INFO L93 Difference]: Finished difference Result 406 states and 588 transitions. [2018-11-23 13:39:02,886 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 13:39:02,886 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 36 [2018-11-23 13:39:02,886 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:02,887 INFO L225 Difference]: With dead ends: 406 [2018-11-23 13:39:02,887 INFO L226 Difference]: Without dead ends: 332 [2018-11-23 13:39:02,888 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 13:39:02,888 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 332 states. [2018-11-23 13:39:02,894 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 332 to 156. [2018-11-23 13:39:02,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 156 states. [2018-11-23 13:39:02,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 156 states to 156 states and 221 transitions. [2018-11-23 13:39:02,895 INFO L78 Accepts]: Start accepts. Automaton has 156 states and 221 transitions. Word has length 36 [2018-11-23 13:39:02,895 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:02,895 INFO L480 AbstractCegarLoop]: Abstraction has 156 states and 221 transitions. [2018-11-23 13:39:02,895 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 13:39:02,895 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 221 transitions. [2018-11-23 13:39:02,896 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2018-11-23 13:39:02,896 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:02,896 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 13:39:02,896 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:02,896 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:02,897 INFO L82 PathProgramCache]: Analyzing trace with hash 617124283, now seen corresponding path program 1 times [2018-11-23 13:39:02,897 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:02,897 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:02,908 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:02,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:02,929 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:02,947 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 13:39:02,947 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:39:02,985 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 13:39:02,986 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:39:02,986 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FPBP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:39:02,992 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:03,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:03,001 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:03,013 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 13:39:03,013 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:39:03,035 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 13:39:03,050 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 4 imperfect interpolant sequences. [2018-11-23 13:39:03,050 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 4, 4] total 12 [2018-11-23 13:39:03,050 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 13:39:03,051 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 13:39:03,051 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=92, Unknown=0, NotChecked=0, Total=132 [2018-11-23 13:39:03,051 INFO L87 Difference]: Start difference. First operand 156 states and 221 transitions. Second operand 12 states. [2018-11-23 13:39:03,849 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:03,849 INFO L93 Difference]: Finished difference Result 864 states and 1399 transitions. [2018-11-23 13:39:03,849 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2018-11-23 13:39:03,849 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 38 [2018-11-23 13:39:03,850 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:03,851 INFO L225 Difference]: With dead ends: 864 [2018-11-23 13:39:03,851 INFO L226 Difference]: Without dead ends: 734 [2018-11-23 13:39:03,852 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 163 GetRequests, 140 SyntacticMatches, 0 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 120 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=184, Invalid=416, Unknown=0, NotChecked=0, Total=600 [2018-11-23 13:39:03,853 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 734 states. [2018-11-23 13:39:03,882 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 734 to 602. [2018-11-23 13:39:03,882 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 602 states. [2018-11-23 13:39:03,885 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 602 states to 602 states and 906 transitions. [2018-11-23 13:39:03,885 INFO L78 Accepts]: Start accepts. Automaton has 602 states and 906 transitions. Word has length 38 [2018-11-23 13:39:03,885 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:03,885 INFO L480 AbstractCegarLoop]: Abstraction has 602 states and 906 transitions. [2018-11-23 13:39:03,885 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 13:39:03,885 INFO L276 IsEmpty]: Start isEmpty. Operand 602 states and 906 transitions. [2018-11-23 13:39:03,887 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2018-11-23 13:39:03,887 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:03,887 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 13:39:03,887 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:03,887 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:03,887 INFO L82 PathProgramCache]: Analyzing trace with hash -569962265, now seen corresponding path program 1 times [2018-11-23 13:39:03,888 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:03,888 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:03,901 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:03,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:03,930 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:03,959 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 13:39:03,959 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:39:04,004 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 13:39:04,006 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:39:04,006 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FPBP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:39:04,011 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:04,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:04,022 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:04,036 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2018-11-23 13:39:04,036 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:39:04,051 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:39:04,051 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [5, 5] total 9 [2018-11-23 13:39:04,052 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 13:39:04,052 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 13:39:04,052 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=48, Unknown=0, NotChecked=0, Total=72 [2018-11-23 13:39:04,052 INFO L87 Difference]: Start difference. First operand 602 states and 906 transitions. Second operand 9 states. [2018-11-23 13:39:04,555 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:39:04,555 INFO L93 Difference]: Finished difference Result 1777 states and 2720 transitions. [2018-11-23 13:39:04,555 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2018-11-23 13:39:04,556 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 58 [2018-11-23 13:39:04,556 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:39:04,560 INFO L225 Difference]: With dead ends: 1777 [2018-11-23 13:39:04,560 INFO L226 Difference]: Without dead ends: 1451 [2018-11-23 13:39:04,561 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 178 GetRequests, 165 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 31 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=67, Invalid=143, Unknown=0, NotChecked=0, Total=210 [2018-11-23 13:39:04,563 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1451 states. [2018-11-23 13:39:04,615 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1451 to 1184. [2018-11-23 13:39:04,615 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 1184 states. [2018-11-23 13:39:04,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1184 states to 1184 states and 1745 transitions. [2018-11-23 13:39:04,619 INFO L78 Accepts]: Start accepts. Automaton has 1184 states and 1745 transitions. Word has length 58 [2018-11-23 13:39:04,619 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:39:04,620 INFO L480 AbstractCegarLoop]: Abstraction has 1184 states and 1745 transitions. [2018-11-23 13:39:04,620 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 13:39:04,620 INFO L276 IsEmpty]: Start isEmpty. Operand 1184 states and 1745 transitions. [2018-11-23 13:39:04,622 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 13:39:04,622 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:39:04,622 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 13:39:04,622 INFO L423 AbstractCegarLoop]: === Iteration 12 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:39:04,622 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:39:04,622 INFO L82 PathProgramCache]: Analyzing trace with hash -313662180, now seen corresponding path program 1 times [2018-11-23 13:39:04,623 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:39:04,623 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:39:04,639 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:04,685 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:04,691 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:05,792 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 13:39:05,792 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:39:08,163 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 13:39:08,164 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:39:08,165 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FPBP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:39:08,170 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:39:08,221 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:39:08,223 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:39:08,548 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 13:39:08,549 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:39:09,142 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 13:39:09,157 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 4 imperfect interpolant sequences. [2018-11-23 13:39:09,157 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 23, 23, 23] total 50 [2018-11-23 13:39:09,158 INFO L459 AbstractCegarLoop]: Interpolant automaton has 50 states [2018-11-23 13:39:09,158 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 50 interpolants. [2018-11-23 13:39:09,158 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=213, Invalid=2237, Unknown=0, NotChecked=0, Total=2450 [2018-11-23 13:39:09,158 INFO L87 Difference]: Start difference. First operand 1184 states and 1745 transitions. Second operand 50 states. [2018-11-23 13:39:18,786 WARN L180 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 90 DAG size of output: 88 [2018-11-23 13:39:25,340 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification. DAG size of input: 92 DAG size of output: 90 [2018-11-23 13:39:29,928 WARN L180 SmtUtils]: Spent 145.00 ms on a formula simplification. DAG size of input: 94 DAG size of output: 92 [2018-11-23 13:39:33,253 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification. DAG size of input: 85 DAG size of output: 71 [2018-11-23 13:39:34,587 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 98 [2018-11-23 13:39:34,972 WARN L180 SmtUtils]: Spent 115.00 ms on a formula simplification. DAG size of input: 99 DAG size of output: 86 [2018-11-23 13:39:38,845 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 92 [2018-11-23 13:39:41,087 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 104 DAG size of output: 91 [2018-11-23 13:39:42,967 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 87 [2018-11-23 13:39:43,818 WARN L180 SmtUtils]: Spent 141.00 ms on a formula simplification. DAG size of input: 106 DAG size of output: 93 [2018-11-23 13:39:44,402 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification. DAG size of input: 102 DAG size of output: 89 [2018-11-23 13:39:49,297 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 90 DAG size of output: 76 [2018-11-23 13:39:52,956 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 96 DAG size of output: 83 [2018-11-23 13:39:54,799 WARN L180 SmtUtils]: Spent 127.00 ms on a formula simplification. DAG size of input: 92 DAG size of output: 79 [2018-11-23 13:39:55,118 WARN L180 SmtUtils]: Spent 120.00 ms on a formula simplification. DAG size of input: 98 DAG size of output: 85 [2018-11-23 13:39:55,679 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 93 DAG size of output: 80 [2018-11-23 13:39:56,051 WARN L180 SmtUtils]: Spent 169.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 105 [2018-11-23 13:39:57,758 WARN L180 SmtUtils]: Spent 132.00 ms on a formula simplification. DAG size of input: 111 DAG size of output: 98 [2018-11-23 13:39:58,172 WARN L180 SmtUtils]: Spent 107.00 ms on a formula simplification. DAG size of input: 94 DAG size of output: 81 [2018-11-23 13:39:58,615 WARN L180 SmtUtils]: Spent 105.00 ms on a formula simplification. DAG size of input: 89 DAG size of output: 76 [2018-11-23 13:39:58,977 WARN L180 SmtUtils]: Spent 171.00 ms on a formula simplification. DAG size of input: 114 DAG size of output: 101 [2018-11-23 13:39:59,330 WARN L180 SmtUtils]: Spent 107.00 ms on a formula simplification. DAG size of input: 95 DAG size of output: 82 [2018-11-23 13:40:00,207 WARN L180 SmtUtils]: Spent 164.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 107 [2018-11-23 13:40:01,156 WARN L180 SmtUtils]: Spent 114.00 ms on a formula simplification. DAG size of input: 91 DAG size of output: 78 [2018-11-23 13:40:01,505 WARN L180 SmtUtils]: Spent 152.00 ms on a formula simplification. DAG size of input: 116 DAG size of output: 103 [2018-11-23 13:40:03,597 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification. DAG size of input: 109 DAG size of output: 96 [2018-11-23 13:40:06,464 WARN L180 SmtUtils]: Spent 162.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 100 [2018-11-23 13:40:06,737 WARN L180 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 99 DAG size of output: 86 [2018-11-23 13:40:07,304 WARN L180 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 86 DAG size of output: 73 [2018-11-23 13:40:07,976 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 92 DAG size of output: 79 [2018-11-23 13:40:09,390 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification. DAG size of input: 95 DAG size of output: 82 [2018-11-23 13:40:09,678 WARN L180 SmtUtils]: Spent 142.00 ms on a formula simplification. DAG size of input: 109 DAG size of output: 96 [2018-11-23 13:40:10,349 WARN L180 SmtUtils]: Spent 173.00 ms on a formula simplification. DAG size of input: 115 DAG size of output: 102 [2018-11-23 13:40:10,635 WARN L180 SmtUtils]: Spent 117.00 ms on a formula simplification. DAG size of input: 101 DAG size of output: 88 [2018-11-23 13:40:11,443 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification. DAG size of input: 117 DAG size of output: 101 [2018-11-23 13:40:12,670 WARN L180 SmtUtils]: Spent 172.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 108 [2018-11-23 13:40:13,964 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 87 DAG size of output: 74 [2018-11-23 13:40:14,268 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification. DAG size of input: 97 DAG size of output: 84 [2018-11-23 13:40:14,596 WARN L180 SmtUtils]: Spent 148.00 ms on a formula simplification. DAG size of input: 111 DAG size of output: 98 [2018-11-23 13:40:15,912 WARN L180 SmtUtils]: Spent 158.00 ms on a formula simplification. DAG size of input: 125 DAG size of output: 112 [2018-11-23 13:40:18,543 WARN L180 SmtUtils]: Spent 135.00 ms on a formula simplification. DAG size of input: 115 DAG size of output: 99 [2018-11-23 13:40:21,686 WARN L180 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 103 DAG size of output: 90 [2018-11-23 13:40:22,745 WARN L180 SmtUtils]: Spent 146.00 ms on a formula simplification. DAG size of input: 123 DAG size of output: 110 [2018-11-23 13:40:23,280 WARN L180 SmtUtils]: Spent 169.00 ms on a formula simplification. DAG size of input: 115 DAG size of output: 105 [2018-11-23 13:40:26,001 WARN L180 SmtUtils]: Spent 131.00 ms on a formula simplification. DAG size of input: 122 DAG size of output: 104 [2018-11-23 13:40:26,434 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification that was a NOOP. DAG size: 114 [2018-11-23 13:40:28,688 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification. DAG size of input: 101 DAG size of output: 88 [2018-11-23 13:40:29,198 WARN L180 SmtUtils]: Spent 164.00 ms on a formula simplification. DAG size of input: 131 DAG size of output: 115 [2018-11-23 13:40:29,837 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 96 [2018-11-23 13:40:30,247 WARN L180 SmtUtils]: Spent 109.00 ms on a formula simplification. DAG size of input: 100 DAG size of output: 96 [2018-11-23 13:40:31,048 WARN L180 SmtUtils]: Spent 186.00 ms on a formula simplification. DAG size of input: 125 DAG size of output: 115 [2018-11-23 13:40:31,922 WARN L180 SmtUtils]: Spent 163.00 ms on a formula simplification. DAG size of input: 124 DAG size of output: 106 [2018-11-23 13:40:32,393 WARN L180 SmtUtils]: Spent 129.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 102 [2018-11-23 13:40:33,231 WARN L180 SmtUtils]: Spent 117.00 ms on a formula simplification. DAG size of input: 109 DAG size of output: 93 [2018-11-23 13:40:34,892 WARN L180 SmtUtils]: Spent 159.00 ms on a formula simplification. DAG size of input: 129 DAG size of output: 113 [2018-11-23 13:40:36,512 WARN L180 SmtUtils]: Spent 174.00 ms on a formula simplification. DAG size of input: 122 DAG size of output: 104 [2018-11-23 13:40:37,078 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 107 DAG size of output: 91 [2018-11-23 13:40:37,624 WARN L180 SmtUtils]: Spent 210.00 ms on a formula simplification. DAG size of input: 122 DAG size of output: 112 [2018-11-23 13:40:39,114 WARN L180 SmtUtils]: Spent 162.00 ms on a formula simplification. DAG size of input: 136 DAG size of output: 118 [2018-11-23 13:40:39,574 WARN L180 SmtUtils]: Spent 116.00 ms on a formula simplification. DAG size of input: 114 DAG size of output: 96 [2018-11-23 13:40:40,177 WARN L180 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 107 DAG size of output: 103 [2018-11-23 13:40:40,691 WARN L180 SmtUtils]: Spent 185.00 ms on a formula simplification. DAG size of input: 131 DAG size of output: 118 [2018-11-23 13:40:41,301 WARN L180 SmtUtils]: Spent 199.00 ms on a formula simplification. DAG size of input: 138 DAG size of output: 120 [2018-11-23 13:40:41,759 WARN L180 SmtUtils]: Spent 160.00 ms on a formula simplification. DAG size of input: 134 DAG size of output: 116 [2018-11-23 13:40:42,662 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification. DAG size of input: 112 DAG size of output: 94 [2018-11-23 13:40:43,215 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 100 [2018-11-23 13:40:44,114 WARN L180 SmtUtils]: Spent 215.00 ms on a formula simplification. DAG size of input: 136 DAG size of output: 118 [2018-11-23 13:40:46,037 WARN L180 SmtUtils]: Spent 187.00 ms on a formula simplification. DAG size of input: 128 DAG size of output: 115 [2018-11-23 13:40:48,640 WARN L180 SmtUtils]: Spent 142.00 ms on a formula simplification. DAG size of input: 119 DAG size of output: 103 [2018-11-23 13:40:49,150 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 113 DAG size of output: 106 [2018-11-23 13:40:49,664 WARN L180 SmtUtils]: Spent 193.00 ms on a formula simplification. DAG size of input: 136 DAG size of output: 121 [2018-11-23 13:40:51,694 WARN L180 SmtUtils]: Spent 177.00 ms on a formula simplification. DAG size of input: 127 DAG size of output: 114 [2018-11-23 13:40:53,102 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 105 DAG size of output: 92 [2018-11-23 13:40:54,158 WARN L180 SmtUtils]: Spent 185.00 ms on a formula simplification. DAG size of input: 133 DAG size of output: 118 [2018-11-23 13:40:55,157 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification. DAG size of input: 124 DAG size of output: 106 [2018-11-23 13:40:56,388 WARN L180 SmtUtils]: Spent 192.00 ms on a formula simplification. DAG size of input: 133 DAG size of output: 117 [2018-11-23 13:40:56,936 WARN L180 SmtUtils]: Spent 154.00 ms on a formula simplification. DAG size of input: 118 DAG size of output: 109 [2018-11-23 13:40:57,765 WARN L180 SmtUtils]: Spent 161.00 ms on a formula simplification. DAG size of input: 126 DAG size of output: 108 [2018-11-23 13:40:58,222 WARN L180 SmtUtils]: Spent 129.00 ms on a formula simplification. DAG size of input: 111 DAG size of output: 95 [2018-11-23 13:40:58,848 WARN L180 SmtUtils]: Spent 134.00 ms on a formula simplification. DAG size of input: 120 DAG size of output: 111 [2018-11-23 13:41:00,404 WARN L180 SmtUtils]: Spent 183.00 ms on a formula simplification. DAG size of input: 138 DAG size of output: 120 [2018-11-23 13:41:00,855 WARN L180 SmtUtils]: Spent 132.00 ms on a formula simplification. DAG size of input: 116 DAG size of output: 98 [2018-11-23 13:41:01,483 WARN L180 SmtUtils]: Spent 196.00 ms on a formula simplification. DAG size of input: 140 DAG size of output: 122 [2018-11-23 13:41:01,523 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:41:01,523 INFO L93 Difference]: Finished difference Result 10350 states and 15468 transitions. [2018-11-23 13:41:01,524 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 309 states. [2018-11-23 13:41:01,524 INFO L78 Accepts]: Start accepts. Automaton has 50 states. Word has length 60 [2018-11-23 13:41:01,524 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:41:01,551 INFO L225 Difference]: With dead ends: 10350 [2018-11-23 13:41:01,551 INFO L226 Difference]: Without dead ends: 9997 [2018-11-23 13:41:01,566 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 539 GetRequests, 188 SyntacticMatches, 2 SemanticMatches, 349 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45599 ImplicationChecksByTransitivity, 96.3s TimeCoverageRelationStatistics Valid=23673, Invalid=99177, Unknown=0, NotChecked=0, Total=122850 [2018-11-23 13:41:01,573 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 9997 states. [2018-11-23 13:41:01,837 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 9997 to 3537. [2018-11-23 13:41:01,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3537 states. [2018-11-23 13:41:01,844 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3537 states to 3537 states and 5458 transitions. [2018-11-23 13:41:01,844 INFO L78 Accepts]: Start accepts. Automaton has 3537 states and 5458 transitions. Word has length 60 [2018-11-23 13:41:01,845 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:41:01,845 INFO L480 AbstractCegarLoop]: Abstraction has 3537 states and 5458 transitions. [2018-11-23 13:41:01,845 INFO L481 AbstractCegarLoop]: Interpolant automaton has 50 states. [2018-11-23 13:41:01,845 INFO L276 IsEmpty]: Start isEmpty. Operand 3537 states and 5458 transitions. [2018-11-23 13:41:01,847 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 13:41:01,847 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:41:01,847 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 13:41:01,847 INFO L423 AbstractCegarLoop]: === Iteration 13 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:41:01,848 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:41:01,848 INFO L82 PathProgramCache]: Analyzing trace with hash 1987160410, now seen corresponding path program 1 times [2018-11-23 13:41:01,848 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:41:01,848 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/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 13:41:01,867 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:01,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:41:01,893 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:41:01,935 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 13:41:01,935 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:41:01,963 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 13:41:01,965 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:41:01,965 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FPBP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:41:01,972 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:01,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:41:01,989 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:41:02,011 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 13:41:02,011 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:41:02,037 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 16 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 13:41:02,060 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 4 imperfect interpolant sequences. [2018-11-23 13:41:02,061 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 5, 5, 4] total 10 [2018-11-23 13:41:02,061 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2018-11-23 13:41:02,061 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2018-11-23 13:41:02,061 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=68, Unknown=0, NotChecked=0, Total=90 [2018-11-23 13:41:02,061 INFO L87 Difference]: Start difference. First operand 3537 states and 5458 transitions. Second operand 10 states. [2018-11-23 13:41:02,929 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:41:02,929 INFO L93 Difference]: Finished difference Result 8558 states and 13421 transitions. [2018-11-23 13:41:02,930 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2018-11-23 13:41:02,930 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 60 [2018-11-23 13:41:02,930 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:41:02,941 INFO L225 Difference]: With dead ends: 8558 [2018-11-23 13:41:02,941 INFO L226 Difference]: Without dead ends: 5054 [2018-11-23 13:41:02,947 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 276 GetRequests, 243 SyntacticMatches, 6 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 172 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=154, Invalid=658, Unknown=0, NotChecked=0, Total=812 [2018-11-23 13:41:02,951 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5054 states. [2018-11-23 13:41:03,219 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5054 to 4343. [2018-11-23 13:41:03,220 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4343 states. [2018-11-23 13:41:03,227 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4343 states to 4343 states and 6224 transitions. [2018-11-23 13:41:03,227 INFO L78 Accepts]: Start accepts. Automaton has 4343 states and 6224 transitions. Word has length 60 [2018-11-23 13:41:03,227 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:41:03,227 INFO L480 AbstractCegarLoop]: Abstraction has 4343 states and 6224 transitions. [2018-11-23 13:41:03,227 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2018-11-23 13:41:03,228 INFO L276 IsEmpty]: Start isEmpty. Operand 4343 states and 6224 transitions. [2018-11-23 13:41:03,230 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 13:41:03,230 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:41:03,230 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 13:41:03,230 INFO L423 AbstractCegarLoop]: === Iteration 14 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:41:03,230 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:41:03,231 INFO L82 PathProgramCache]: Analyzing trace with hash 1930321118, now seen corresponding path program 1 times [2018-11-23 13:41:03,231 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:41:03,231 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/cvc4nyu Starting monitored process 19 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 19 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 13:41:03,243 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:03,259 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:41:03,262 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:41:03,270 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 13:41:03,270 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:41:03,271 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 13:41:03,271 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 13:41:03,271 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 13:41:03,271 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 13:41:03,271 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 13:41:03,271 INFO L87 Difference]: Start difference. First operand 4343 states and 6224 transitions. Second operand 3 states. [2018-11-23 13:41:03,437 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:41:03,437 INFO L93 Difference]: Finished difference Result 5202 states and 7290 transitions. [2018-11-23 13:41:03,437 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 13:41:03,437 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 60 [2018-11-23 13:41:03,437 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:41:03,444 INFO L225 Difference]: With dead ends: 5202 [2018-11-23 13:41:03,444 INFO L226 Difference]: Without dead ends: 5114 [2018-11-23 13:41:03,445 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 13:41:03,447 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5114 states. [2018-11-23 13:41:03,649 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5114 to 4698. [2018-11-23 13:41:03,649 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4698 states. [2018-11-23 13:41:03,653 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4698 states to 4698 states and 6647 transitions. [2018-11-23 13:41:03,654 INFO L78 Accepts]: Start accepts. Automaton has 4698 states and 6647 transitions. Word has length 60 [2018-11-23 13:41:03,654 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:41:03,654 INFO L480 AbstractCegarLoop]: Abstraction has 4698 states and 6647 transitions. [2018-11-23 13:41:03,654 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 13:41:03,654 INFO L276 IsEmpty]: Start isEmpty. Operand 4698 states and 6647 transitions. [2018-11-23 13:41:03,655 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2018-11-23 13:41:03,655 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:41:03,655 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 13:41:03,656 INFO L423 AbstractCegarLoop]: === Iteration 15 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:41:03,656 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:41:03,656 INFO L82 PathProgramCache]: Analyzing trace with hash -666750562, now seen corresponding path program 1 times [2018-11-23 13:41:03,656 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:41:03,656 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/cvc4nyu Starting monitored process 20 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 20 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 13:41:03,670 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:03,694 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:41:03,697 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:41:03,715 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 13:41:03,715 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 13:41:03,748 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 13:41:03,749 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 13:41:03,749 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FPBP No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 13:41:03,755 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:03,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 13:41:03,765 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 13:41:03,793 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 13:41:03,794 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 13:41:03,808 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2018-11-23 13:41:03,809 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [7, 7] total 14 [2018-11-23 13:41:03,809 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 13:41:03,809 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 13:41:03,809 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=143, Unknown=0, NotChecked=0, Total=182 [2018-11-23 13:41:03,809 INFO L87 Difference]: Start difference. First operand 4698 states and 6647 transitions. Second operand 14 states. [2018-11-23 13:41:04,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 13:41:04,948 INFO L93 Difference]: Finished difference Result 10799 states and 15412 transitions. [2018-11-23 13:41:04,949 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-23 13:41:04,949 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 60 [2018-11-23 13:41:04,949 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 13:41:04,956 INFO L225 Difference]: With dead ends: 10799 [2018-11-23 13:41:04,956 INFO L226 Difference]: Without dead ends: 5832 [2018-11-23 13:41:04,963 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 196 GetRequests, 165 SyntacticMatches, 1 SemanticMatches, 30 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 215 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=193, Invalid=799, Unknown=0, NotChecked=0, Total=992 [2018-11-23 13:41:04,968 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5832 states. [2018-11-23 13:41:05,144 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5832 to 3172. [2018-11-23 13:41:05,145 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3172 states. [2018-11-23 13:41:05,147 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3172 states to 3172 states and 3985 transitions. [2018-11-23 13:41:05,147 INFO L78 Accepts]: Start accepts. Automaton has 3172 states and 3985 transitions. Word has length 60 [2018-11-23 13:41:05,147 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 13:41:05,147 INFO L480 AbstractCegarLoop]: Abstraction has 3172 states and 3985 transitions. [2018-11-23 13:41:05,147 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 13:41:05,147 INFO L276 IsEmpty]: Start isEmpty. Operand 3172 states and 3985 transitions. [2018-11-23 13:41:05,149 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 64 [2018-11-23 13:41:05,149 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 13:41:05,149 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 13:41:05,150 INFO L423 AbstractCegarLoop]: === Iteration 16 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 13:41:05,150 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 13:41:05,150 INFO L82 PathProgramCache]: Analyzing trace with hash -1543067804, now seen corresponding path program 1 times [2018-11-23 13:41:05,150 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 13:41:05,150 INFO L69 tionRefinementEngine]: Using refinement strategy WalrusRefinementStrategy No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/cvc4nyu Starting monitored process 22 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 22 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 13:41:05,171 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 13:41:05,203 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 13:41:05,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 13:41:05,269 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 13:41:05,415 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 01:41:05 BoogieIcfgContainer [2018-11-23 13:41:05,415 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 13:41:05,416 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 13:41:05,416 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 13:41:05,416 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 13:41:05,416 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 01:39:00" (3/4) ... [2018-11-23 13:41:05,419 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 13:41:05,901 INFO L145 WitnessManager]: Wrote witness to /tmp/vcloud-vcloud-master/worker/working_dir_44f7ec00-0746-4053-888e-1926581153f6/bin-2019/utaipan/witness.graphml [2018-11-23 13:41:05,901 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 13:41:05,902 INFO L168 Benchmark]: Toolchain (without parser) took 125628.35 ms. Allocated memory was 1.0 GB in the beginning and 1.4 GB in the end (delta: 340.3 MB). Free memory was 949.7 MB in the beginning and 1.3 GB in the end (delta: -317.9 MB). Peak memory consumption was 543.2 MB. Max. memory is 11.5 GB. [2018-11-23 13:41:05,903 INFO L168 Benchmark]: CDTParser took 0.16 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 13:41:05,903 INFO L168 Benchmark]: CACSL2BoogieTranslator took 198.60 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 13:41:05,903 INFO L168 Benchmark]: Boogie Procedure Inliner took 13.79 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 13:41:05,903 INFO L168 Benchmark]: Boogie Preprocessor took 25.32 ms. Allocated memory is still 1.0 GB. Free memory was 933.6 MB in the beginning and 928.3 MB in the end (delta: 5.4 MB). Peak memory consumption was 5.4 MB. Max. memory is 11.5 GB. [2018-11-23 13:41:05,903 INFO L168 Benchmark]: RCFGBuilder took 297.69 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 113.8 MB). Free memory was 928.3 MB in the beginning and 1.1 GB in the end (delta: -154.5 MB). Peak memory consumption was 15.1 MB. Max. memory is 11.5 GB. [2018-11-23 13:41:05,904 INFO L168 Benchmark]: TraceAbstraction took 124603.85 ms. Allocated memory was 1.1 GB in the beginning and 1.4 GB in the end (delta: 212.9 MB). Free memory was 1.1 GB in the beginning and 749.4 MB in the end (delta: 333.4 MB). Peak memory consumption was 546.3 MB. Max. memory is 11.5 GB. [2018-11-23 13:41:05,904 INFO L168 Benchmark]: Witness Printer took 485.71 ms. Allocated memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 13.6 MB). Free memory was 749.4 MB in the beginning and 1.3 GB in the end (delta: -518.3 MB). Peak memory consumption was 16.2 MB. Max. memory is 11.5 GB. [2018-11-23 13:41:05,906 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.16 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 198.60 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 13.79 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 25.32 ms. Allocated memory is still 1.0 GB. Free memory was 933.6 MB in the beginning and 928.3 MB in the end (delta: 5.4 MB). Peak memory consumption was 5.4 MB. Max. memory is 11.5 GB. * RCFGBuilder took 297.69 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 113.8 MB). Free memory was 928.3 MB in the beginning and 1.1 GB in the end (delta: -154.5 MB). Peak memory consumption was 15.1 MB. Max. memory is 11.5 GB. * TraceAbstraction took 124603.85 ms. Allocated memory was 1.1 GB in the beginning and 1.4 GB in the end (delta: 212.9 MB). Free memory was 1.1 GB in the beginning and 749.4 MB in the end (delta: 333.4 MB). Peak memory consumption was 546.3 MB. Max. memory is 11.5 GB. * Witness Printer took 485.71 ms. Allocated memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 13.6 MB). Free memory was 749.4 MB in the beginning and 1.3 GB in the end (delta: -518.3 MB). Peak memory consumption was 16.2 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, 124.5s OverallTime, 16 OverallIterations, 3 TraceHistogramMax, 117.1s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 1813 SDtfs, 7325 SDslu, 10659 SDs, 0 SdLazy, 18994 SolverSat, 1458 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 19.2s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 1653 GetRequests, 1173 SyntacticMatches, 9 SemanticMatches, 471 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 46137 ImplicationChecksByTransitivity, 97.2s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=4698occurred in iteration=14, 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.1s AutomataMinimizationTime, 15 MinimizatonAttempts, 11443 StatesRemovedByMinimization, 14 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.3s SatisfiabilityAnalysisTime, 5.0s InterpolantComputationTime, 926 NumberOfCodeBlocks, 926 NumberOfCodeBlocksAsserted, 21 NumberOfCheckSat, 1269 ConstructedInterpolants, 0 QuantifiedInterpolants, 667227 SizeOfPredicates, 72 NumberOfNonLiveVariables, 1537 ConjunctsInSsa, 151 ConjunctsInUnsatCore, 28 InterpolantComputations, 12 PerfectInterpolantSequences, 272/338 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...