./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/recursive/MultCommutative-2.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/recursive/MultCommutative-2.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash ce29b37e076ab683230ebf17073db3b7759ea39570dd2ef64322b6d43bb636cd --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 18:13:43,984 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 18:13:43,985 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 18:13:44,010 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 18:13:44,012 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 18:13:44,015 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 18:13:44,017 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 18:13:44,022 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 18:13:44,024 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 18:13:44,028 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 18:13:44,029 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 18:13:44,030 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 18:13:44,030 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 18:13:44,032 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 18:13:44,033 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 18:13:44,035 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 18:13:44,036 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 18:13:44,036 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 18:13:44,040 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 18:13:44,042 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 18:13:44,044 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 18:13:44,045 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 18:13:44,046 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 18:13:44,047 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 18:13:44,050 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 18:13:44,050 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 18:13:44,050 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 18:13:44,052 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 18:13:44,052 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 18:13:44,052 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 18:13:44,053 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 18:13:44,054 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 18:13:44,055 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 18:13:44,055 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 18:13:44,056 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 18:13:44,056 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 18:13:44,057 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 18:13:44,057 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 18:13:44,057 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 18:13:44,058 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 18:13:44,058 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 18:13:44,059 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 18:13:44,086 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 18:13:44,088 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 18:13:44,088 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 18:13:44,088 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 18:13:44,089 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 18:13:44,089 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 18:13:44,090 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 18:13:44,090 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 18:13:44,090 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 18:13:44,090 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 18:13:44,091 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 18:13:44,091 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 18:13:44,091 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 18:13:44,091 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 18:13:44,091 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 18:13:44,092 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 18:13:44,093 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 18:13:44,093 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 18:13:44,093 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 18:13:44,093 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 18:13:44,093 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 18:13:44,093 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 18:13:44,093 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 18:13:44,094 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 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 -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux 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(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> ce29b37e076ab683230ebf17073db3b7759ea39570dd2ef64322b6d43bb636cd [2022-02-20 18:13:44,301 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 18:13:44,320 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 18:13:44,323 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 18:13:44,324 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 18:13:44,324 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 18:13:44,325 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/recursive/MultCommutative-2.c [2022-02-20 18:13:44,379 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8267c7613/1d3814d235f14bfa851f422fc6c662db/FLAG7392b996d [2022-02-20 18:13:44,772 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 18:13:44,772 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/recursive/MultCommutative-2.c [2022-02-20 18:13:44,784 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8267c7613/1d3814d235f14bfa851f422fc6c662db/FLAG7392b996d [2022-02-20 18:13:45,187 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8267c7613/1d3814d235f14bfa851f422fc6c662db [2022-02-20 18:13:45,189 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 18:13:45,190 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 18:13:45,207 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 18:13:45,207 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 18:13:45,210 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 18:13:45,210 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,211 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@68c52dea and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45, skipping insertion in model container [2022-02-20 18:13:45,211 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,215 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 18:13:45,223 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 18:13:45,348 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/recursive/MultCommutative-2.c[970,983] [2022-02-20 18:13:45,352 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 18:13:45,358 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 18:13:45,373 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/recursive/MultCommutative-2.c[970,983] [2022-02-20 18:13:45,375 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 18:13:45,390 INFO L208 MainTranslator]: Completed translation [2022-02-20 18:13:45,390 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45 WrapperNode [2022-02-20 18:13:45,391 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 18:13:45,392 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 18:13:45,392 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 18:13:45,392 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 18:13:45,397 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,402 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,416 INFO L137 Inliner]: procedures = 13, calls = 11, calls flagged for inlining = 2, calls inlined = 2, statements flattened = 36 [2022-02-20 18:13:45,416 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 18:13:45,417 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 18:13:45,417 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 18:13:45,417 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 18:13:45,422 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,422 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,430 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,430 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,433 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,434 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,435 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,436 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 18:13:45,437 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 18:13:45,437 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 18:13:45,438 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 18:13:45,438 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (1/1) ... [2022-02-20 18:13:45,443 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 18:13:45,457 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:13:45,467 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 18:13:45,472 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 18:13:45,493 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 18:13:45,493 INFO L130 BoogieDeclarations]: Found specification of procedure mult [2022-02-20 18:13:45,494 INFO L138 BoogieDeclarations]: Found implementation of procedure mult [2022-02-20 18:13:45,494 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 18:13:45,494 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 18:13:45,494 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 18:13:45,533 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 18:13:45,534 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 18:13:45,672 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 18:13:45,677 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 18:13:45,677 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 18:13:45,678 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 06:13:45 BoogieIcfgContainer [2022-02-20 18:13:45,678 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 18:13:45,680 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 18:13:45,680 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 18:13:45,682 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 18:13:45,682 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 06:13:45" (1/3) ... [2022-02-20 18:13:45,683 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@523aae8c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 06:13:45, skipping insertion in model container [2022-02-20 18:13:45,683 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:13:45" (2/3) ... [2022-02-20 18:13:45,683 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@523aae8c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 06:13:45, skipping insertion in model container [2022-02-20 18:13:45,683 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 06:13:45" (3/3) ... [2022-02-20 18:13:45,684 INFO L111 eAbstractionObserver]: Analyzing ICFG MultCommutative-2.c [2022-02-20 18:13:45,687 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 18:13:45,688 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 18:13:45,716 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 18:13:45,720 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 18:13:45,721 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 18:13:45,733 INFO L276 IsEmpty]: Start isEmpty. Operand has 23 states, 16 states have (on average 1.375) internal successors, (22), 17 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 18:13:45,737 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2022-02-20 18:13:45,737 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:13:45,737 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:13:45,738 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:13:45,741 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:13:45,741 INFO L85 PathProgramCache]: Analyzing trace with hash -1513944532, now seen corresponding path program 1 times [2022-02-20 18:13:45,747 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:13:45,747 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1945634153] [2022-02-20 18:13:45,748 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:45,748 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:13:45,852 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:45,977 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:13:45,982 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,025 INFO L290 TraceCheckUtils]: 0: Hoare triple {26#true} ~n := #in~n;~m := #in~m; {26#true} is VALID [2022-02-20 18:13:46,026 INFO L290 TraceCheckUtils]: 1: Hoare triple {26#true} assume !(~m < 0); {26#true} is VALID [2022-02-20 18:13:46,027 INFO L290 TraceCheckUtils]: 2: Hoare triple {26#true} assume 0 == ~m;#res := 0; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,028 INFO L290 TraceCheckUtils]: 3: Hoare triple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,029 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {26#true} #47#return; {33#(= |ULTIMATE.start_main_#t~ret8#1| 0)} is VALID [2022-02-20 18:13:46,030 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:13:46,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,073 INFO L290 TraceCheckUtils]: 0: Hoare triple {26#true} ~n := #in~n;~m := #in~m; {26#true} is VALID [2022-02-20 18:13:46,073 INFO L290 TraceCheckUtils]: 1: Hoare triple {26#true} assume !(~m < 0); {26#true} is VALID [2022-02-20 18:13:46,074 INFO L290 TraceCheckUtils]: 2: Hoare triple {26#true} assume 0 == ~m;#res := 0; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,074 INFO L290 TraceCheckUtils]: 3: Hoare triple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,075 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {34#(= |ULTIMATE.start_main_~res1~0#1| 0)} #49#return; {40#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} is VALID [2022-02-20 18:13:46,076 INFO L290 TraceCheckUtils]: 0: Hoare triple {26#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {26#true} is VALID [2022-02-20 18:13:46,076 INFO L290 TraceCheckUtils]: 1: Hoare triple {26#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {26#true} is VALID [2022-02-20 18:13:46,077 INFO L290 TraceCheckUtils]: 2: Hoare triple {26#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {26#true} is VALID [2022-02-20 18:13:46,077 INFO L290 TraceCheckUtils]: 3: Hoare triple {26#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {26#true} is VALID [2022-02-20 18:13:46,077 INFO L272 TraceCheckUtils]: 4: Hoare triple {26#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {26#true} is VALID [2022-02-20 18:13:46,078 INFO L290 TraceCheckUtils]: 5: Hoare triple {26#true} ~n := #in~n;~m := #in~m; {26#true} is VALID [2022-02-20 18:13:46,078 INFO L290 TraceCheckUtils]: 6: Hoare triple {26#true} assume !(~m < 0); {26#true} is VALID [2022-02-20 18:13:46,079 INFO L290 TraceCheckUtils]: 7: Hoare triple {26#true} assume 0 == ~m;#res := 0; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,079 INFO L290 TraceCheckUtils]: 8: Hoare triple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,081 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {26#true} #47#return; {33#(= |ULTIMATE.start_main_#t~ret8#1| 0)} is VALID [2022-02-20 18:13:46,082 INFO L290 TraceCheckUtils]: 10: Hoare triple {33#(= |ULTIMATE.start_main_#t~ret8#1| 0)} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {34#(= |ULTIMATE.start_main_~res1~0#1| 0)} is VALID [2022-02-20 18:13:46,082 INFO L272 TraceCheckUtils]: 11: Hoare triple {34#(= |ULTIMATE.start_main_~res1~0#1| 0)} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {26#true} is VALID [2022-02-20 18:13:46,082 INFO L290 TraceCheckUtils]: 12: Hoare triple {26#true} ~n := #in~n;~m := #in~m; {26#true} is VALID [2022-02-20 18:13:46,082 INFO L290 TraceCheckUtils]: 13: Hoare triple {26#true} assume !(~m < 0); {26#true} is VALID [2022-02-20 18:13:46,083 INFO L290 TraceCheckUtils]: 14: Hoare triple {26#true} assume 0 == ~m;#res := 0; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,085 INFO L290 TraceCheckUtils]: 15: Hoare triple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,086 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {42#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {34#(= |ULTIMATE.start_main_~res1~0#1| 0)} #49#return; {40#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} is VALID [2022-02-20 18:13:46,086 INFO L290 TraceCheckUtils]: 17: Hoare triple {40#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {41#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)} is VALID [2022-02-20 18:13:46,087 INFO L290 TraceCheckUtils]: 18: Hoare triple {41#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {27#false} is VALID [2022-02-20 18:13:46,087 INFO L290 TraceCheckUtils]: 19: Hoare triple {27#false} assume !false; {27#false} is VALID [2022-02-20 18:13:46,088 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 18:13:46,089 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:13:46,090 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1945634153] [2022-02-20 18:13:46,090 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1945634153] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 18:13:46,091 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 18:13:46,091 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 18:13:46,093 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [198925219] [2022-02-20 18:13:46,095 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 18:13:46,098 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 20 [2022-02-20 18:13:46,100 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:13:46,102 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 18:13:46,140 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:46,141 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 18:13:46,141 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:13:46,166 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 18:13:46,167 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 18:13:46,169 INFO L87 Difference]: Start difference. First operand has 23 states, 16 states have (on average 1.375) internal successors, (22), 17 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 18:13:46,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:46,335 INFO L93 Difference]: Finished difference Result 44 states and 55 transitions. [2022-02-20 18:13:46,335 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 18:13:46,335 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 20 [2022-02-20 18:13:46,336 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:13:46,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 18:13:46,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-02-20 18:13:46,341 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 18:13:46,343 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-02-20 18:13:46,344 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2022-02-20 18:13:46,382 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:46,388 INFO L225 Difference]: With dead ends: 44 [2022-02-20 18:13:46,389 INFO L226 Difference]: Without dead ends: 28 [2022-02-20 18:13:46,391 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 7 SyntacticMatches, 1 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2022-02-20 18:13:46,393 INFO L933 BasicCegarLoop]: 28 mSDtfsCounter, 12 mSDsluCounter, 128 mSDsCounter, 0 mSdLazyCounter, 32 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 14 SdHoareTripleChecker+Valid, 156 SdHoareTripleChecker+Invalid, 33 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 32 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 18:13:46,393 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [14 Valid, 156 Invalid, 33 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 32 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 18:13:46,403 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2022-02-20 18:13:46,413 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 24. [2022-02-20 18:13:46,413 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:13:46,414 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 18:13:46,414 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 18:13:46,414 INFO L87 Difference]: Start difference. First operand 28 states. Second operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 18:13:46,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:46,418 INFO L93 Difference]: Finished difference Result 28 states and 35 transitions. [2022-02-20 18:13:46,418 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 35 transitions. [2022-02-20 18:13:46,419 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:46,419 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:46,419 INFO L74 IsIncluded]: Start isIncluded. First operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Second operand 28 states. [2022-02-20 18:13:46,420 INFO L87 Difference]: Start difference. First operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Second operand 28 states. [2022-02-20 18:13:46,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:46,430 INFO L93 Difference]: Finished difference Result 28 states and 35 transitions. [2022-02-20 18:13:46,430 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 35 transitions. [2022-02-20 18:13:46,431 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:46,431 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:46,431 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:13:46,431 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:13:46,431 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 24 states, 16 states have (on average 1.125) internal successors, (18), 17 states have internal predecessors, (18), 5 states have call successors, (5), 1 states have call predecessors, (5), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 18:13:46,433 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 32 transitions. [2022-02-20 18:13:46,434 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 32 transitions. Word has length 20 [2022-02-20 18:13:46,434 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:13:46,435 INFO L470 AbstractCegarLoop]: Abstraction has 24 states and 32 transitions. [2022-02-20 18:13:46,435 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 6 states have (on average 2.0) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 18:13:46,435 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 32 transitions. [2022-02-20 18:13:46,436 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 18:13:46,436 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:13:46,436 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:13:46,436 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 18:13:46,437 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:13:46,437 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:13:46,437 INFO L85 PathProgramCache]: Analyzing trace with hash 555960324, now seen corresponding path program 1 times [2022-02-20 18:13:46,437 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:13:46,438 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2121535989] [2022-02-20 18:13:46,438 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:46,438 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:13:46,455 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,483 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:13:46,486 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,502 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,503 INFO L290 TraceCheckUtils]: 1: Hoare triple {189#true} assume !(~m < 0); {189#true} is VALID [2022-02-20 18:13:46,503 INFO L290 TraceCheckUtils]: 2: Hoare triple {189#true} assume 0 == ~m;#res := 0; {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,503 INFO L290 TraceCheckUtils]: 3: Hoare triple {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,504 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {189#true} #47#return; {196#(= |ULTIMATE.start_main_#t~ret8#1| 0)} is VALID [2022-02-20 18:13:46,505 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:13:46,510 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,523 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:13:46,525 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,545 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,545 INFO L290 TraceCheckUtils]: 1: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,546 INFO L290 TraceCheckUtils]: 2: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,546 INFO L290 TraceCheckUtils]: 3: Hoare triple {219#(<= |mult_#in~m| 0)} assume true; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,547 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {219#(<= |mult_#in~m| 0)} {212#(<= (+ mult_~m 1) 0)} #43#return; {190#false} is VALID [2022-02-20 18:13:46,547 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,548 INFO L290 TraceCheckUtils]: 1: Hoare triple {189#true} assume ~m < 0; {212#(<= (+ mult_~m 1) 0)} is VALID [2022-02-20 18:13:46,548 INFO L272 TraceCheckUtils]: 2: Hoare triple {212#(<= (+ mult_~m 1) 0)} call #t~ret4 := mult(~n, -~m); {189#true} is VALID [2022-02-20 18:13:46,548 INFO L290 TraceCheckUtils]: 3: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,549 INFO L290 TraceCheckUtils]: 4: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,549 INFO L290 TraceCheckUtils]: 5: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,550 INFO L290 TraceCheckUtils]: 6: Hoare triple {219#(<= |mult_#in~m| 0)} assume true; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,550 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {219#(<= |mult_#in~m| 0)} {212#(<= (+ mult_~m 1) 0)} #43#return; {190#false} is VALID [2022-02-20 18:13:46,551 INFO L290 TraceCheckUtils]: 8: Hoare triple {190#false} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {190#false} is VALID [2022-02-20 18:13:46,551 INFO L290 TraceCheckUtils]: 9: Hoare triple {190#false} assume true; {190#false} is VALID [2022-02-20 18:13:46,551 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {190#false} {197#(= |ULTIMATE.start_main_~res1~0#1| 0)} #49#return; {209#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} is VALID [2022-02-20 18:13:46,551 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {189#true} is VALID [2022-02-20 18:13:46,552 INFO L290 TraceCheckUtils]: 1: Hoare triple {189#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {189#true} is VALID [2022-02-20 18:13:46,552 INFO L290 TraceCheckUtils]: 2: Hoare triple {189#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {189#true} is VALID [2022-02-20 18:13:46,552 INFO L290 TraceCheckUtils]: 3: Hoare triple {189#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {189#true} is VALID [2022-02-20 18:13:46,552 INFO L272 TraceCheckUtils]: 4: Hoare triple {189#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {189#true} is VALID [2022-02-20 18:13:46,552 INFO L290 TraceCheckUtils]: 5: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,552 INFO L290 TraceCheckUtils]: 6: Hoare triple {189#true} assume !(~m < 0); {189#true} is VALID [2022-02-20 18:13:46,553 INFO L290 TraceCheckUtils]: 7: Hoare triple {189#true} assume 0 == ~m;#res := 0; {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,553 INFO L290 TraceCheckUtils]: 8: Hoare triple {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} assume true; {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:46,554 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {211#(and (<= 0 |mult_#res|) (<= |mult_#res| 0))} {189#true} #47#return; {196#(= |ULTIMATE.start_main_#t~ret8#1| 0)} is VALID [2022-02-20 18:13:46,555 INFO L290 TraceCheckUtils]: 10: Hoare triple {196#(= |ULTIMATE.start_main_#t~ret8#1| 0)} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {197#(= |ULTIMATE.start_main_~res1~0#1| 0)} is VALID [2022-02-20 18:13:46,555 INFO L272 TraceCheckUtils]: 11: Hoare triple {197#(= |ULTIMATE.start_main_~res1~0#1| 0)} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {189#true} is VALID [2022-02-20 18:13:46,555 INFO L290 TraceCheckUtils]: 12: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,555 INFO L290 TraceCheckUtils]: 13: Hoare triple {189#true} assume ~m < 0; {212#(<= (+ mult_~m 1) 0)} is VALID [2022-02-20 18:13:46,556 INFO L272 TraceCheckUtils]: 14: Hoare triple {212#(<= (+ mult_~m 1) 0)} call #t~ret4 := mult(~n, -~m); {189#true} is VALID [2022-02-20 18:13:46,556 INFO L290 TraceCheckUtils]: 15: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,556 INFO L290 TraceCheckUtils]: 16: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {218#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,557 INFO L290 TraceCheckUtils]: 17: Hoare triple {218#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,557 INFO L290 TraceCheckUtils]: 18: Hoare triple {219#(<= |mult_#in~m| 0)} assume true; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,558 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {219#(<= |mult_#in~m| 0)} {212#(<= (+ mult_~m 1) 0)} #43#return; {190#false} is VALID [2022-02-20 18:13:46,558 INFO L290 TraceCheckUtils]: 20: Hoare triple {190#false} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {190#false} is VALID [2022-02-20 18:13:46,558 INFO L290 TraceCheckUtils]: 21: Hoare triple {190#false} assume true; {190#false} is VALID [2022-02-20 18:13:46,559 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {190#false} {197#(= |ULTIMATE.start_main_~res1~0#1| 0)} #49#return; {209#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} is VALID [2022-02-20 18:13:46,559 INFO L290 TraceCheckUtils]: 23: Hoare triple {209#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {210#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)} is VALID [2022-02-20 18:13:46,560 INFO L290 TraceCheckUtils]: 24: Hoare triple {210#(= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {190#false} is VALID [2022-02-20 18:13:46,560 INFO L290 TraceCheckUtils]: 25: Hoare triple {190#false} assume !false; {190#false} is VALID [2022-02-20 18:13:46,560 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 7 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 18:13:46,560 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:13:46,560 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2121535989] [2022-02-20 18:13:46,561 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2121535989] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:13:46,561 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1995010073] [2022-02-20 18:13:46,561 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:46,561 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:13:46,561 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:13:46,563 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:13:46,583 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-02-20 18:13:46,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,623 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 4 conjunts are in the unsatisfiable core [2022-02-20 18:13:46,631 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:46,633 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:13:46,772 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {189#true} is VALID [2022-02-20 18:13:46,773 INFO L290 TraceCheckUtils]: 1: Hoare triple {189#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {189#true} is VALID [2022-02-20 18:13:46,773 INFO L290 TraceCheckUtils]: 2: Hoare triple {189#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {189#true} is VALID [2022-02-20 18:13:46,773 INFO L290 TraceCheckUtils]: 3: Hoare triple {189#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {189#true} is VALID [2022-02-20 18:13:46,773 INFO L272 TraceCheckUtils]: 4: Hoare triple {189#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {189#true} is VALID [2022-02-20 18:13:46,774 INFO L290 TraceCheckUtils]: 5: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {238#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,774 INFO L290 TraceCheckUtils]: 6: Hoare triple {238#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {238#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:46,775 INFO L290 TraceCheckUtils]: 7: Hoare triple {238#(<= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,775 INFO L290 TraceCheckUtils]: 8: Hoare triple {219#(<= |mult_#in~m| 0)} assume true; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:46,776 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {219#(<= |mult_#in~m| 0)} {189#true} #47#return; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:46,776 INFO L290 TraceCheckUtils]: 10: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:46,776 INFO L272 TraceCheckUtils]: 11: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {189#true} is VALID [2022-02-20 18:13:46,777 INFO L290 TraceCheckUtils]: 12: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,777 INFO L290 TraceCheckUtils]: 13: Hoare triple {189#true} assume ~m < 0; {189#true} is VALID [2022-02-20 18:13:46,777 INFO L272 TraceCheckUtils]: 14: Hoare triple {189#true} call #t~ret4 := mult(~n, -~m); {189#true} is VALID [2022-02-20 18:13:46,778 INFO L290 TraceCheckUtils]: 15: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:46,778 INFO L290 TraceCheckUtils]: 16: Hoare triple {189#true} assume !(~m < 0); {189#true} is VALID [2022-02-20 18:13:46,778 INFO L290 TraceCheckUtils]: 17: Hoare triple {189#true} assume 0 == ~m;#res := 0; {189#true} is VALID [2022-02-20 18:13:46,778 INFO L290 TraceCheckUtils]: 18: Hoare triple {189#true} assume true; {189#true} is VALID [2022-02-20 18:13:46,778 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {189#true} {189#true} #43#return; {189#true} is VALID [2022-02-20 18:13:46,778 INFO L290 TraceCheckUtils]: 20: Hoare triple {189#true} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {189#true} is VALID [2022-02-20 18:13:46,779 INFO L290 TraceCheckUtils]: 21: Hoare triple {189#true} assume true; {189#true} is VALID [2022-02-20 18:13:46,779 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {189#true} {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} #49#return; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:46,780 INFO L290 TraceCheckUtils]: 23: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:46,782 INFO L290 TraceCheckUtils]: 24: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {190#false} is VALID [2022-02-20 18:13:46,782 INFO L290 TraceCheckUtils]: 25: Hoare triple {190#false} assume !false; {190#false} is VALID [2022-02-20 18:13:46,782 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 18:13:46,782 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:13:47,036 INFO L290 TraceCheckUtils]: 25: Hoare triple {190#false} assume !false; {190#false} is VALID [2022-02-20 18:13:47,036 INFO L290 TraceCheckUtils]: 24: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {190#false} is VALID [2022-02-20 18:13:47,037 INFO L290 TraceCheckUtils]: 23: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:47,038 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {189#true} {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} #49#return; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:47,038 INFO L290 TraceCheckUtils]: 21: Hoare triple {189#true} assume true; {189#true} is VALID [2022-02-20 18:13:47,038 INFO L290 TraceCheckUtils]: 20: Hoare triple {189#true} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {189#true} is VALID [2022-02-20 18:13:47,038 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {189#true} {189#true} #43#return; {189#true} is VALID [2022-02-20 18:13:47,038 INFO L290 TraceCheckUtils]: 18: Hoare triple {189#true} assume true; {189#true} is VALID [2022-02-20 18:13:47,038 INFO L290 TraceCheckUtils]: 17: Hoare triple {189#true} assume 0 == ~m;#res := 0; {189#true} is VALID [2022-02-20 18:13:47,038 INFO L290 TraceCheckUtils]: 16: Hoare triple {189#true} assume !(~m < 0); {189#true} is VALID [2022-02-20 18:13:47,039 INFO L290 TraceCheckUtils]: 15: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:47,039 INFO L272 TraceCheckUtils]: 14: Hoare triple {189#true} call #t~ret4 := mult(~n, -~m); {189#true} is VALID [2022-02-20 18:13:47,039 INFO L290 TraceCheckUtils]: 13: Hoare triple {189#true} assume ~m < 0; {189#true} is VALID [2022-02-20 18:13:47,039 INFO L290 TraceCheckUtils]: 12: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {189#true} is VALID [2022-02-20 18:13:47,039 INFO L272 TraceCheckUtils]: 11: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {189#true} is VALID [2022-02-20 18:13:47,041 INFO L290 TraceCheckUtils]: 10: Hoare triple {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:47,041 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {219#(<= |mult_#in~m| 0)} {189#true} #47#return; {251#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:13:47,047 INFO L290 TraceCheckUtils]: 8: Hoare triple {219#(<= |mult_#in~m| 0)} assume true; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,048 INFO L290 TraceCheckUtils]: 7: Hoare triple {357#(or (not (<= mult_~m 0)) (<= |mult_#in~m| 0))} assume 0 == ~m;#res := 0; {219#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,048 INFO L290 TraceCheckUtils]: 6: Hoare triple {357#(or (not (<= mult_~m 0)) (<= |mult_#in~m| 0))} assume !(~m < 0); {357#(or (not (<= mult_~m 0)) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:47,049 INFO L290 TraceCheckUtils]: 5: Hoare triple {189#true} ~n := #in~n;~m := #in~m; {357#(or (not (<= mult_~m 0)) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:47,049 INFO L272 TraceCheckUtils]: 4: Hoare triple {189#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {189#true} is VALID [2022-02-20 18:13:47,049 INFO L290 TraceCheckUtils]: 3: Hoare triple {189#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {189#true} is VALID [2022-02-20 18:13:47,049 INFO L290 TraceCheckUtils]: 2: Hoare triple {189#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {189#true} is VALID [2022-02-20 18:13:47,049 INFO L290 TraceCheckUtils]: 1: Hoare triple {189#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {189#true} is VALID [2022-02-20 18:13:47,049 INFO L290 TraceCheckUtils]: 0: Hoare triple {189#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {189#true} is VALID [2022-02-20 18:13:47,049 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 18:13:47,050 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1995010073] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:13:47,050 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:13:47,050 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 5, 5] total 13 [2022-02-20 18:13:47,051 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [226960251] [2022-02-20 18:13:47,051 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:13:47,051 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 26 [2022-02-20 18:13:47,052 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:13:47,052 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 18:13:47,085 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:47,085 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-02-20 18:13:47,085 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:13:47,086 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-02-20 18:13:47,086 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=129, Unknown=0, NotChecked=0, Total=156 [2022-02-20 18:13:47,086 INFO L87 Difference]: Start difference. First operand 24 states and 32 transitions. Second operand has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 18:13:47,584 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:47,584 INFO L93 Difference]: Finished difference Result 52 states and 83 transitions. [2022-02-20 18:13:47,584 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 18:13:47,584 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 26 [2022-02-20 18:13:47,585 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:13:47,585 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 18:13:47,589 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2022-02-20 18:13:47,589 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 18:13:47,592 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2022-02-20 18:13:47,592 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2022-02-20 18:13:47,670 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:47,671 INFO L225 Difference]: With dead ends: 52 [2022-02-20 18:13:47,672 INFO L226 Difference]: Without dead ends: 27 [2022-02-20 18:13:47,672 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 72 GetRequests, 55 SyntacticMatches, 1 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=57, Invalid=249, Unknown=0, NotChecked=0, Total=306 [2022-02-20 18:13:47,673 INFO L933 BasicCegarLoop]: 17 mSDtfsCounter, 19 mSDsluCounter, 103 mSDsCounter, 0 mSdLazyCounter, 179 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 120 SdHoareTripleChecker+Invalid, 188 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 179 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 18:13:47,673 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 120 Invalid, 188 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 179 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-02-20 18:13:47,674 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-02-20 18:13:47,678 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 25. [2022-02-20 18:13:47,678 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:13:47,678 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:47,678 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:47,678 INFO L87 Difference]: Start difference. First operand 27 states. Second operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:47,680 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:47,681 INFO L93 Difference]: Finished difference Result 27 states and 34 transitions. [2022-02-20 18:13:47,681 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 34 transitions. [2022-02-20 18:13:47,681 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:47,681 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:47,681 INFO L74 IsIncluded]: Start isIncluded. First operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) Second operand 27 states. [2022-02-20 18:13:47,682 INFO L87 Difference]: Start difference. First operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) Second operand 27 states. [2022-02-20 18:13:47,683 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:47,683 INFO L93 Difference]: Finished difference Result 27 states and 34 transitions. [2022-02-20 18:13:47,683 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 34 transitions. [2022-02-20 18:13:47,684 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:47,684 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:47,684 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:13:47,684 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:13:47,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 17 states have (on average 1.1176470588235294) internal successors, (19), 18 states have internal predecessors, (19), 4 states have call successors, (4), 1 states have call predecessors, (4), 3 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:47,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 31 transitions. [2022-02-20 18:13:47,685 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 31 transitions. Word has length 26 [2022-02-20 18:13:47,685 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:13:47,686 INFO L470 AbstractCegarLoop]: Abstraction has 25 states and 31 transitions. [2022-02-20 18:13:47,686 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 11 states have (on average 2.909090909090909) internal successors, (32), 11 states have internal predecessors, (32), 4 states have call successors, (5), 1 states have call predecessors, (5), 4 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 18:13:47,686 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 31 transitions. [2022-02-20 18:13:47,687 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 28 [2022-02-20 18:13:47,687 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:13:47,687 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:13:47,713 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-02-20 18:13:47,903 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:13:47,904 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:13:47,904 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:13:47,904 INFO L85 PathProgramCache]: Analyzing trace with hash 2011031750, now seen corresponding path program 1 times [2022-02-20 18:13:47,904 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:13:47,905 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [48989466] [2022-02-20 18:13:47,905 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:47,905 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:13:47,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:47,943 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:13:47,946 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:47,950 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:47,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 0: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 1: Hoare triple {533#true} assume !(~m < 0); {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 2: Hoare triple {533#true} assume 0 == ~m;#res := 0; {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 3: Hoare triple {533#true} assume true; {533#true} is VALID [2022-02-20 18:13:47,954 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {533#true} {533#true} #45#return; {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 0: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 1: Hoare triple {533#true} assume !(~m < 0); {533#true} is VALID [2022-02-20 18:13:47,954 INFO L290 TraceCheckUtils]: 2: Hoare triple {533#true} assume !(0 == ~m); {533#true} is VALID [2022-02-20 18:13:47,955 INFO L272 TraceCheckUtils]: 3: Hoare triple {533#true} call #t~ret5 := mult(~n, ~m - 1); {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 4: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 5: Hoare triple {533#true} assume !(~m < 0); {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 6: Hoare triple {533#true} assume 0 == ~m;#res := 0; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 7: Hoare triple {533#true} assume true; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {533#true} {533#true} #45#return; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 9: Hoare triple {533#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L290 TraceCheckUtils]: 10: Hoare triple {533#true} assume true; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {533#true} {533#true} #47#return; {533#true} is VALID [2022-02-20 18:13:47,955 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 18:13:47,958 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:47,969 INFO L290 TraceCheckUtils]: 0: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {558#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:47,970 INFO L290 TraceCheckUtils]: 1: Hoare triple {558#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {558#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:47,970 INFO L290 TraceCheckUtils]: 2: Hoare triple {558#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {559#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,971 INFO L290 TraceCheckUtils]: 3: Hoare triple {559#(<= |mult_#in~m| 0)} assume true; {559#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,971 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {559#(<= |mult_#in~m| 0)} {533#true} #49#return; {552#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 0: Hoare triple {533#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 1: Hoare triple {533#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 2: Hoare triple {533#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 3: Hoare triple {533#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L272 TraceCheckUtils]: 4: Hoare triple {533#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 5: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 6: Hoare triple {533#true} assume !(~m < 0); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 7: Hoare triple {533#true} assume !(0 == ~m); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L272 TraceCheckUtils]: 8: Hoare triple {533#true} call #t~ret5 := mult(~n, ~m - 1); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 9: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 10: Hoare triple {533#true} assume !(~m < 0); {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 11: Hoare triple {533#true} assume 0 == ~m;#res := 0; {533#true} is VALID [2022-02-20 18:13:47,972 INFO L290 TraceCheckUtils]: 12: Hoare triple {533#true} assume true; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {533#true} {533#true} #45#return; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L290 TraceCheckUtils]: 14: Hoare triple {533#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L290 TraceCheckUtils]: 15: Hoare triple {533#true} assume true; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {533#true} {533#true} #47#return; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L290 TraceCheckUtils]: 17: Hoare triple {533#true} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {533#true} is VALID [2022-02-20 18:13:47,973 INFO L272 TraceCheckUtils]: 18: Hoare triple {533#true} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {533#true} is VALID [2022-02-20 18:13:47,973 INFO L290 TraceCheckUtils]: 19: Hoare triple {533#true} ~n := #in~n;~m := #in~m; {558#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:47,974 INFO L290 TraceCheckUtils]: 20: Hoare triple {558#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {558#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:47,974 INFO L290 TraceCheckUtils]: 21: Hoare triple {558#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {559#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,974 INFO L290 TraceCheckUtils]: 22: Hoare triple {559#(<= |mult_#in~m| 0)} assume true; {559#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:13:47,975 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {559#(<= |mult_#in~m| 0)} {533#true} #49#return; {552#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:13:47,975 INFO L290 TraceCheckUtils]: 24: Hoare triple {552#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {552#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:13:47,976 INFO L290 TraceCheckUtils]: 25: Hoare triple {552#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {534#false} is VALID [2022-02-20 18:13:47,976 INFO L290 TraceCheckUtils]: 26: Hoare triple {534#false} assume !false; {534#false} is VALID [2022-02-20 18:13:47,976 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 18:13:47,976 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:13:47,976 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [48989466] [2022-02-20 18:13:47,976 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [48989466] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 18:13:47,976 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 18:13:47,976 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 18:13:47,976 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [152379399] [2022-02-20 18:13:47,977 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 18:13:47,977 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) Word has length 27 [2022-02-20 18:13:47,977 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:13:47,977 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 18:13:47,992 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:47,992 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 18:13:47,992 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:13:47,992 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 18:13:47,992 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 18:13:47,992 INFO L87 Difference]: Start difference. First operand 25 states and 31 transitions. Second operand has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 18:13:48,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:48,099 INFO L93 Difference]: Finished difference Result 31 states and 37 transitions. [2022-02-20 18:13:48,099 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 18:13:48,099 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) Word has length 27 [2022-02-20 18:13:48,100 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:13:48,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 18:13:48,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 30 transitions. [2022-02-20 18:13:48,101 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 18:13:48,102 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 30 transitions. [2022-02-20 18:13:48,102 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 30 transitions. [2022-02-20 18:13:48,123 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:48,124 INFO L225 Difference]: With dead ends: 31 [2022-02-20 18:13:48,124 INFO L226 Difference]: Without dead ends: 27 [2022-02-20 18:13:48,125 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2022-02-20 18:13:48,125 INFO L933 BasicCegarLoop]: 16 mSDtfsCounter, 8 mSDsluCounter, 29 mSDsCounter, 0 mSdLazyCounter, 37 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 10 SdHoareTripleChecker+Valid, 45 SdHoareTripleChecker+Invalid, 40 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 37 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 18:13:48,126 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [10 Valid, 45 Invalid, 40 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 37 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 18:13:48,127 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-02-20 18:13:48,130 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-02-20 18:13:48,130 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:13:48,131 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:48,131 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:48,131 INFO L87 Difference]: Start difference. First operand 27 states. Second operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:48,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:48,132 INFO L93 Difference]: Finished difference Result 27 states and 32 transitions. [2022-02-20 18:13:48,132 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2022-02-20 18:13:48,133 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:48,133 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:48,133 INFO L74 IsIncluded]: Start isIncluded. First operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) Second operand 27 states. [2022-02-20 18:13:48,133 INFO L87 Difference]: Start difference. First operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) Second operand 27 states. [2022-02-20 18:13:48,134 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:48,134 INFO L93 Difference]: Finished difference Result 27 states and 32 transitions. [2022-02-20 18:13:48,135 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2022-02-20 18:13:48,135 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:48,135 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:48,135 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:13:48,135 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:13:48,135 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 18 states have (on average 1.1111111111111112) internal successors, (20), 20 states have internal predecessors, (20), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (8), 5 states have call predecessors, (8), 4 states have call successors, (8) [2022-02-20 18:13:48,136 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 32 transitions. [2022-02-20 18:13:48,136 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 32 transitions. Word has length 27 [2022-02-20 18:13:48,136 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:13:48,136 INFO L470 AbstractCegarLoop]: Abstraction has 27 states and 32 transitions. [2022-02-20 18:13:48,137 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 3.6) internal successors, (18), 5 states have internal predecessors, (18), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2022-02-20 18:13:48,137 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2022-02-20 18:13:48,137 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-02-20 18:13:48,137 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:13:48,137 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:13:48,138 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 18:13:48,138 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:13:48,138 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:13:48,138 INFO L85 PathProgramCache]: Analyzing trace with hash -760266050, now seen corresponding path program 2 times [2022-02-20 18:13:48,138 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:13:48,138 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [21853546] [2022-02-20 18:13:48,138 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:48,138 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:13:48,174 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,252 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:13:48,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,305 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:48,308 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,336 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,337 INFO L290 TraceCheckUtils]: 1: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,338 INFO L290 TraceCheckUtils]: 2: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,338 INFO L290 TraceCheckUtils]: 3: Hoare triple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,341 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {723#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:48,341 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,342 INFO L290 TraceCheckUtils]: 1: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,342 INFO L290 TraceCheckUtils]: 2: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,342 INFO L272 TraceCheckUtils]: 3: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:48,342 INFO L290 TraceCheckUtils]: 4: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,343 INFO L290 TraceCheckUtils]: 5: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,343 INFO L290 TraceCheckUtils]: 6: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,344 INFO L290 TraceCheckUtils]: 7: Hoare triple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,345 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {723#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:48,346 INFO L290 TraceCheckUtils]: 9: Hoare triple {723#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,346 INFO L290 TraceCheckUtils]: 10: Hoare triple {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,347 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {687#true} #47#return; {701#(and (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 1)))} is VALID [2022-02-20 18:13:48,347 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 18:13:48,361 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,416 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:48,423 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,475 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,476 INFO L290 TraceCheckUtils]: 1: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} is VALID [2022-02-20 18:13:48,476 INFO L290 TraceCheckUtils]: 2: Hoare triple {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} assume 0 == ~m;#res := 0; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,477 INFO L290 TraceCheckUtils]: 3: Hoare triple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} assume true; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,481 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {732#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:48,482 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,482 INFO L290 TraceCheckUtils]: 1: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,483 INFO L290 TraceCheckUtils]: 2: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,483 INFO L272 TraceCheckUtils]: 3: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:48,483 INFO L290 TraceCheckUtils]: 4: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,484 INFO L290 TraceCheckUtils]: 5: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} is VALID [2022-02-20 18:13:48,484 INFO L290 TraceCheckUtils]: 6: Hoare triple {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} assume 0 == ~m;#res := 0; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,485 INFO L290 TraceCheckUtils]: 7: Hoare triple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} assume true; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,486 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {732#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:48,486 INFO L290 TraceCheckUtils]: 9: Hoare triple {732#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,487 INFO L290 TraceCheckUtils]: 10: Hoare triple {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,488 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {702#(and (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} #49#return; {715#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret9#1| 1)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:13:48,488 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {687#true} is VALID [2022-02-20 18:13:48,489 INFO L290 TraceCheckUtils]: 1: Hoare triple {687#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {687#true} is VALID [2022-02-20 18:13:48,489 INFO L290 TraceCheckUtils]: 2: Hoare triple {687#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {687#true} is VALID [2022-02-20 18:13:48,489 INFO L290 TraceCheckUtils]: 3: Hoare triple {687#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {687#true} is VALID [2022-02-20 18:13:48,489 INFO L272 TraceCheckUtils]: 4: Hoare triple {687#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {687#true} is VALID [2022-02-20 18:13:48,489 INFO L290 TraceCheckUtils]: 5: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,490 INFO L290 TraceCheckUtils]: 6: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,490 INFO L290 TraceCheckUtils]: 7: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,490 INFO L272 TraceCheckUtils]: 8: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:48,491 INFO L290 TraceCheckUtils]: 9: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,491 INFO L290 TraceCheckUtils]: 10: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,491 INFO L290 TraceCheckUtils]: 11: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,492 INFO L290 TraceCheckUtils]: 12: Hoare triple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:48,493 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {726#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {723#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:48,494 INFO L290 TraceCheckUtils]: 14: Hoare triple {723#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,494 INFO L290 TraceCheckUtils]: 15: Hoare triple {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,495 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {724#(and (<= |mult_#res| |mult_#in~n|) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {687#true} #47#return; {701#(and (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 1)))} is VALID [2022-02-20 18:13:48,495 INFO L290 TraceCheckUtils]: 17: Hoare triple {701#(and (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 1)))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {702#(and (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} is VALID [2022-02-20 18:13:48,495 INFO L272 TraceCheckUtils]: 18: Hoare triple {702#(and (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {687#true} is VALID [2022-02-20 18:13:48,496 INFO L290 TraceCheckUtils]: 19: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,496 INFO L290 TraceCheckUtils]: 20: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,497 INFO L290 TraceCheckUtils]: 21: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:48,497 INFO L272 TraceCheckUtils]: 22: Hoare triple {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:48,497 INFO L290 TraceCheckUtils]: 23: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {725#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:48,497 INFO L290 TraceCheckUtils]: 24: Hoare triple {725#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} is VALID [2022-02-20 18:13:48,498 INFO L290 TraceCheckUtils]: 25: Hoare triple {734#(and (= |mult_#in~m| mult_~m) (<= 0 mult_~m))} assume 0 == ~m;#res := 0; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,498 INFO L290 TraceCheckUtils]: 26: Hoare triple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} assume true; {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} is VALID [2022-02-20 18:13:48,499 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {735#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| |mult_#in~m|))} {717#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {732#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:48,500 INFO L290 TraceCheckUtils]: 28: Hoare triple {732#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,500 INFO L290 TraceCheckUtils]: 29: Hoare triple {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:48,501 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {733#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {702#(and (<= (+ |ULTIMATE.start_main_~m~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} #49#return; {715#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret9#1| 1)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:13:48,502 INFO L290 TraceCheckUtils]: 31: Hoare triple {715#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_#t~ret9#1| 1)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {716#(and (or (<= (+ |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res2~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} is VALID [2022-02-20 18:13:48,502 INFO L290 TraceCheckUtils]: 32: Hoare triple {716#(and (or (<= (+ |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (+ |ULTIMATE.start_main_~res2~0#1| 1)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|)) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {688#false} is VALID [2022-02-20 18:13:48,502 INFO L290 TraceCheckUtils]: 33: Hoare triple {688#false} assume !false; {688#false} is VALID [2022-02-20 18:13:48,503 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 3 proven. 19 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 18:13:48,503 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:13:48,503 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [21853546] [2022-02-20 18:13:48,503 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [21853546] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:13:48,503 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1496085459] [2022-02-20 18:13:48,503 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-02-20 18:13:48,503 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:13:48,503 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:13:48,505 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:13:48,507 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-02-20 18:13:48,552 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-02-20 18:13:48,553 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:13:48,554 INFO L263 TraceCheckSpWp]: Trace formula consists of 121 conjuncts, 41 conjunts are in the unsatisfiable core [2022-02-20 18:13:48,565 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:48,566 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:13:49,182 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {687#true} is VALID [2022-02-20 18:13:49,182 INFO L290 TraceCheckUtils]: 1: Hoare triple {687#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {687#true} is VALID [2022-02-20 18:13:49,183 INFO L290 TraceCheckUtils]: 2: Hoare triple {687#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {687#true} is VALID [2022-02-20 18:13:49,183 INFO L290 TraceCheckUtils]: 3: Hoare triple {687#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {687#true} is VALID [2022-02-20 18:13:49,183 INFO L272 TraceCheckUtils]: 4: Hoare triple {687#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {687#true} is VALID [2022-02-20 18:13:49,184 INFO L290 TraceCheckUtils]: 5: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,184 INFO L290 TraceCheckUtils]: 6: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(~m < 0); {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,184 INFO L290 TraceCheckUtils]: 7: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(0 == ~m); {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,184 INFO L272 TraceCheckUtils]: 8: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:49,187 INFO L290 TraceCheckUtils]: 9: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {767#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:49,188 INFO L290 TraceCheckUtils]: 10: Hoare triple {767#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {767#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:49,188 INFO L290 TraceCheckUtils]: 11: Hoare triple {767#(<= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:49,188 INFO L290 TraceCheckUtils]: 12: Hoare triple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:49,189 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} #45#return; {781#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:49,190 INFO L290 TraceCheckUtils]: 14: Hoare triple {781#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:49,190 INFO L290 TraceCheckUtils]: 15: Hoare triple {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:49,191 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {687#true} #47#return; {792#(and (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:49,191 INFO L290 TraceCheckUtils]: 17: Hoare triple {792#(and (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {796#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:49,191 INFO L272 TraceCheckUtils]: 18: Hoare triple {796#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {687#true} is VALID [2022-02-20 18:13:49,192 INFO L290 TraceCheckUtils]: 19: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,192 INFO L290 TraceCheckUtils]: 20: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(~m < 0); {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,193 INFO L290 TraceCheckUtils]: 21: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(0 == ~m); {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:49,193 INFO L272 TraceCheckUtils]: 22: Hoare triple {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:49,193 INFO L290 TraceCheckUtils]: 23: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {767#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:49,193 INFO L290 TraceCheckUtils]: 24: Hoare triple {767#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {767#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:49,195 INFO L290 TraceCheckUtils]: 25: Hoare triple {767#(<= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:49,195 INFO L290 TraceCheckUtils]: 26: Hoare triple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:49,196 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {754#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} #45#return; {781#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:49,197 INFO L290 TraceCheckUtils]: 28: Hoare triple {781#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:49,197 INFO L290 TraceCheckUtils]: 29: Hoare triple {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:49,198 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {785#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {796#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #49#return; {836#(and (= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~m~0#1| 1) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:49,199 INFO L290 TraceCheckUtils]: 31: Hoare triple {836#(and (= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~m~0#1| 1) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {840#(and (= |ULTIMATE.start_main_~res2~0#1| |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~m~0#1| 1) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:49,199 INFO L290 TraceCheckUtils]: 32: Hoare triple {840#(and (= |ULTIMATE.start_main_~res2~0#1| |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~m~0#1| 1) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {688#false} is VALID [2022-02-20 18:13:49,199 INFO L290 TraceCheckUtils]: 33: Hoare triple {688#false} assume !false; {688#false} is VALID [2022-02-20 18:13:49,199 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 2 proven. 14 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 18:13:49,200 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:13:51,318 INFO L290 TraceCheckUtils]: 33: Hoare triple {688#false} assume !false; {688#false} is VALID [2022-02-20 18:13:51,319 INFO L290 TraceCheckUtils]: 32: Hoare triple {850#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {688#false} is VALID [2022-02-20 18:13:51,320 INFO L290 TraceCheckUtils]: 31: Hoare triple {854#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {850#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:13:51,321 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {862#(or (and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)))} {858#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} #49#return; {854#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:13:51,322 INFO L290 TraceCheckUtils]: 29: Hoare triple {862#(or (and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)))} assume true; {862#(or (and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,322 INFO L290 TraceCheckUtils]: 28: Hoare triple {869#(or (and (<= |mult_#in~m| 1) (or (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {862#(or (and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,324 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} #45#return; {869#(or (and (<= |mult_#in~m| 1) (or (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,324 INFO L290 TraceCheckUtils]: 26: Hoare triple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,324 INFO L290 TraceCheckUtils]: 25: Hoare triple {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume 0 == ~m;#res := 0; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,325 INFO L290 TraceCheckUtils]: 24: Hoare triple {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume !(~m < 0); {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,325 INFO L290 TraceCheckUtils]: 23: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,325 INFO L272 TraceCheckUtils]: 22: Hoare triple {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:51,326 INFO L290 TraceCheckUtils]: 21: Hoare triple {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} assume !(0 == ~m); {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,326 INFO L290 TraceCheckUtils]: 20: Hoare triple {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} assume !(~m < 0); {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,327 INFO L290 TraceCheckUtils]: 19: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {873#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,327 INFO L272 TraceCheckUtils]: 18: Hoare triple {858#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {687#true} is VALID [2022-02-20 18:13:51,327 INFO L290 TraceCheckUtils]: 17: Hoare triple {902#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~n~0#1|))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {858#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:13:51,328 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {909#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| |mult_#res|) (<= |mult_#in~m| 0)) (or (<= |mult_#res| 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} {687#true} #47#return; {902#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:13:51,329 INFO L290 TraceCheckUtils]: 15: Hoare triple {909#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| |mult_#res|) (<= |mult_#in~m| 0)) (or (<= |mult_#res| 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} assume true; {909#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| |mult_#res|) (<= |mult_#in~m| 0)) (or (<= |mult_#res| 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,329 INFO L290 TraceCheckUtils]: 14: Hoare triple {916#(or (< 1 |mult_#in~n|) (and (or (<= (+ |mult_#t~ret5| mult_~n) 1) (<= |mult_#in~m| 0)) (or (<= |mult_#in~m| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {909#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| |mult_#res|) (<= |mult_#in~m| 0)) (or (<= |mult_#res| 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,330 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} #45#return; {916#(or (< 1 |mult_#in~n|) (and (or (<= (+ |mult_#t~ret5| mult_~n) 1) (<= |mult_#in~m| 0)) (or (<= |mult_#in~m| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:51,331 INFO L290 TraceCheckUtils]: 12: Hoare triple {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,331 INFO L290 TraceCheckUtils]: 11: Hoare triple {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume 0 == ~m;#res := 0; {774#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,331 INFO L290 TraceCheckUtils]: 10: Hoare triple {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume !(~m < 0); {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,332 INFO L290 TraceCheckUtils]: 9: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {883#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:51,332 INFO L272 TraceCheckUtils]: 8: Hoare triple {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {687#true} is VALID [2022-02-20 18:13:51,332 INFO L290 TraceCheckUtils]: 7: Hoare triple {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} assume !(0 == ~m); {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,334 INFO L290 TraceCheckUtils]: 6: Hoare triple {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} assume !(~m < 0); {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,334 INFO L290 TraceCheckUtils]: 5: Hoare triple {687#true} ~n := #in~n;~m := #in~m; {920#(or (< 1 |mult_#in~n|) (and (or (<= |mult_#in~m| mult_~n) (<= |mult_#in~m| 0)) (or (<= mult_~n 1) (<= |mult_#in~m| 0))) (not (< 0 |mult_#in~n|)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:51,334 INFO L272 TraceCheckUtils]: 4: Hoare triple {687#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {687#true} is VALID [2022-02-20 18:13:51,334 INFO L290 TraceCheckUtils]: 3: Hoare triple {687#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {687#true} is VALID [2022-02-20 18:13:51,334 INFO L290 TraceCheckUtils]: 2: Hoare triple {687#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {687#true} is VALID [2022-02-20 18:13:51,335 INFO L290 TraceCheckUtils]: 1: Hoare triple {687#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {687#true} is VALID [2022-02-20 18:13:51,335 INFO L290 TraceCheckUtils]: 0: Hoare triple {687#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {687#true} is VALID [2022-02-20 18:13:51,335 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 8 proven. 14 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 18:13:51,335 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1496085459] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:13:51,335 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:13:51,335 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 11, 14] total 35 [2022-02-20 18:13:51,335 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1730110619] [2022-02-20 18:13:51,335 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:13:51,336 INFO L78 Accepts]: Start accepts. Automaton has has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) Word has length 34 [2022-02-20 18:13:51,338 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:13:51,339 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) [2022-02-20 18:13:51,397 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:51,398 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 35 states [2022-02-20 18:13:51,398 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:13:51,398 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2022-02-20 18:13:51,399 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=131, Invalid=1059, Unknown=0, NotChecked=0, Total=1190 [2022-02-20 18:13:51,399 INFO L87 Difference]: Start difference. First operand 27 states and 32 transitions. Second operand has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) [2022-02-20 18:13:52,507 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:52,507 INFO L93 Difference]: Finished difference Result 40 states and 49 transitions. [2022-02-20 18:13:52,508 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 18:13:52,508 INFO L78 Accepts]: Start accepts. Automaton has has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) Word has length 34 [2022-02-20 18:13:52,508 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:13:52,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) [2022-02-20 18:13:52,510 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 44 transitions. [2022-02-20 18:13:52,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) [2022-02-20 18:13:52,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 44 transitions. [2022-02-20 18:13:52,511 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 44 transitions. [2022-02-20 18:13:52,557 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:52,559 INFO L225 Difference]: With dead ends: 40 [2022-02-20 18:13:52,559 INFO L226 Difference]: Without dead ends: 36 [2022-02-20 18:13:52,560 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 95 GetRequests, 52 SyntacticMatches, 2 SemanticMatches, 41 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 358 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=235, Invalid=1571, Unknown=0, NotChecked=0, Total=1806 [2022-02-20 18:13:52,560 INFO L933 BasicCegarLoop]: 17 mSDtfsCounter, 23 mSDsluCounter, 231 mSDsCounter, 0 mSdLazyCounter, 458 mSolverCounterSat, 21 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 24 SdHoareTripleChecker+Valid, 248 SdHoareTripleChecker+Invalid, 479 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 21 IncrementalHoareTripleChecker+Valid, 458 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 18:13:52,560 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [24 Valid, 248 Invalid, 479 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [21 Valid, 458 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-02-20 18:13:52,561 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2022-02-20 18:13:52,567 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 32. [2022-02-20 18:13:52,567 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:13:52,567 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) [2022-02-20 18:13:52,567 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) [2022-02-20 18:13:52,567 INFO L87 Difference]: Start difference. First operand 36 states. Second operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) [2022-02-20 18:13:52,569 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:52,569 INFO L93 Difference]: Finished difference Result 36 states and 45 transitions. [2022-02-20 18:13:52,569 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 45 transitions. [2022-02-20 18:13:52,570 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:52,570 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:52,570 INFO L74 IsIncluded]: Start isIncluded. First operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) Second operand 36 states. [2022-02-20 18:13:52,570 INFO L87 Difference]: Start difference. First operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) Second operand 36 states. [2022-02-20 18:13:52,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:13:52,572 INFO L93 Difference]: Finished difference Result 36 states and 45 transitions. [2022-02-20 18:13:52,572 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 45 transitions. [2022-02-20 18:13:52,572 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:13:52,572 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:13:52,572 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:13:52,572 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:13:52,573 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 32 states, 21 states have (on average 1.0952380952380953) internal successors, (23), 23 states have internal predecessors, (23), 5 states have call successors, (5), 1 states have call predecessors, (5), 5 states have return successors, (14), 7 states have call predecessors, (14), 5 states have call successors, (14) [2022-02-20 18:13:52,574 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 42 transitions. [2022-02-20 18:13:52,574 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 42 transitions. Word has length 34 [2022-02-20 18:13:52,574 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:13:52,574 INFO L470 AbstractCegarLoop]: Abstraction has 32 states and 42 transitions. [2022-02-20 18:13:52,575 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 35 states, 32 states have (on average 1.5625) internal successors, (50), 24 states have internal predecessors, (50), 8 states have call successors, (8), 1 states have call predecessors, (8), 8 states have return successors, (11), 11 states have call predecessors, (11), 8 states have call successors, (11) [2022-02-20 18:13:52,575 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 42 transitions. [2022-02-20 18:13:52,575 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 18:13:52,575 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:13:52,576 INFO L514 BasicCegarLoop]: trace histogram [5, 5, 5, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:13:52,593 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-02-20 18:13:52,791 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable3 [2022-02-20 18:13:52,792 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:13:52,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:13:52,792 INFO L85 PathProgramCache]: Analyzing trace with hash -983670890, now seen corresponding path program 3 times [2022-02-20 18:13:52,792 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:13:52,792 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1522839772] [2022-02-20 18:13:52,792 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:13:52,792 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:13:52,818 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:52,906 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:13:52,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:52,981 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:52,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:53,008 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,009 INFO L290 TraceCheckUtils]: 1: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,009 INFO L290 TraceCheckUtils]: 2: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,010 INFO L290 TraceCheckUtils]: 3: Hoare triple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,011 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1171#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:53,011 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,012 INFO L290 TraceCheckUtils]: 1: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,012 INFO L290 TraceCheckUtils]: 2: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,012 INFO L272 TraceCheckUtils]: 3: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,012 INFO L290 TraceCheckUtils]: 4: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,013 INFO L290 TraceCheckUtils]: 5: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,013 INFO L290 TraceCheckUtils]: 6: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,019 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1171#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:53,019 INFO L290 TraceCheckUtils]: 9: Hoare triple {1171#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:13:53,022 INFO L290 TraceCheckUtils]: 10: Hoare triple {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:13:53,022 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {1128#true} #47#return; {1142#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 2)) (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|))} is VALID [2022-02-20 18:13:53,023 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 18:13:53,028 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:53,072 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:53,076 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:53,167 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:13:53,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:53,195 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,196 INFO L290 TraceCheckUtils]: 1: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,197 INFO L290 TraceCheckUtils]: 2: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,197 INFO L290 TraceCheckUtils]: 3: Hoare triple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,198 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:53,199 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,199 INFO L290 TraceCheckUtils]: 1: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:13:53,200 INFO L290 TraceCheckUtils]: 2: Hoare triple {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:13:53,200 INFO L272 TraceCheckUtils]: 3: Hoare triple {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,200 INFO L290 TraceCheckUtils]: 4: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,200 INFO L290 TraceCheckUtils]: 5: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,201 INFO L290 TraceCheckUtils]: 6: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,201 INFO L290 TraceCheckUtils]: 7: Hoare triple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,202 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:53,203 INFO L290 TraceCheckUtils]: 9: Hoare triple {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,203 INFO L290 TraceCheckUtils]: 10: Hoare triple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,204 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1187#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:13:53,204 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,205 INFO L290 TraceCheckUtils]: 1: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,205 INFO L290 TraceCheckUtils]: 2: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,205 INFO L272 TraceCheckUtils]: 3: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,206 INFO L290 TraceCheckUtils]: 4: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,206 INFO L290 TraceCheckUtils]: 5: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:13:53,206 INFO L290 TraceCheckUtils]: 6: Hoare triple {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:13:53,206 INFO L272 TraceCheckUtils]: 7: Hoare triple {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,207 INFO L290 TraceCheckUtils]: 8: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,207 INFO L290 TraceCheckUtils]: 9: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,207 INFO L290 TraceCheckUtils]: 10: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,208 INFO L290 TraceCheckUtils]: 11: Hoare triple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,209 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:53,209 INFO L290 TraceCheckUtils]: 13: Hoare triple {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,210 INFO L290 TraceCheckUtils]: 14: Hoare triple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,211 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1187#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:13:53,211 INFO L290 TraceCheckUtils]: 16: Hoare triple {1187#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:13:53,212 INFO L290 TraceCheckUtils]: 17: Hoare triple {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} assume true; {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:13:53,213 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} {1143#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} #49#return; {1163#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret9#1| 2)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:13:53,213 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1128#true} is VALID [2022-02-20 18:13:53,213 INFO L290 TraceCheckUtils]: 1: Hoare triple {1128#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1128#true} is VALID [2022-02-20 18:13:53,213 INFO L290 TraceCheckUtils]: 2: Hoare triple {1128#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1128#true} is VALID [2022-02-20 18:13:53,213 INFO L290 TraceCheckUtils]: 3: Hoare triple {1128#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1128#true} is VALID [2022-02-20 18:13:53,213 INFO L272 TraceCheckUtils]: 4: Hoare triple {1128#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1128#true} is VALID [2022-02-20 18:13:53,213 INFO L290 TraceCheckUtils]: 5: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,214 INFO L290 TraceCheckUtils]: 6: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,214 INFO L290 TraceCheckUtils]: 7: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,214 INFO L272 TraceCheckUtils]: 8: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,218 INFO L290 TraceCheckUtils]: 9: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,219 INFO L290 TraceCheckUtils]: 10: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,219 INFO L290 TraceCheckUtils]: 11: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,220 INFO L290 TraceCheckUtils]: 12: Hoare triple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,221 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {1174#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1171#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:53,221 INFO L290 TraceCheckUtils]: 14: Hoare triple {1171#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:13:53,222 INFO L290 TraceCheckUtils]: 15: Hoare triple {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:13:53,222 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1172#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {1128#true} #47#return; {1142#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 2)) (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|))} is VALID [2022-02-20 18:13:53,223 INFO L290 TraceCheckUtils]: 17: Hoare triple {1142#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_#t~ret8#1| 2)) (<= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1143#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} is VALID [2022-02-20 18:13:53,223 INFO L272 TraceCheckUtils]: 18: Hoare triple {1143#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1128#true} is VALID [2022-02-20 18:13:53,223 INFO L290 TraceCheckUtils]: 19: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,224 INFO L290 TraceCheckUtils]: 20: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,224 INFO L290 TraceCheckUtils]: 21: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,224 INFO L272 TraceCheckUtils]: 22: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,224 INFO L290 TraceCheckUtils]: 23: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:53,225 INFO L290 TraceCheckUtils]: 24: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:13:53,225 INFO L290 TraceCheckUtils]: 25: Hoare triple {1189#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:13:53,225 INFO L272 TraceCheckUtils]: 26: Hoare triple {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:53,226 INFO L290 TraceCheckUtils]: 27: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,226 INFO L290 TraceCheckUtils]: 28: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:53,226 INFO L290 TraceCheckUtils]: 29: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,227 INFO L290 TraceCheckUtils]: 30: Hoare triple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:13:53,228 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1198#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1190#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:13:53,228 INFO L290 TraceCheckUtils]: 32: Hoare triple {1196#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,229 INFO L290 TraceCheckUtils]: 33: Hoare triple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:13:53,230 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1197#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1187#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:13:53,230 INFO L290 TraceCheckUtils]: 35: Hoare triple {1187#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:13:53,231 INFO L290 TraceCheckUtils]: 36: Hoare triple {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} assume true; {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:13:53,232 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1188#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} {1143#(and (<= (+ (* 2 |ULTIMATE.start_main_~n~0#1|) |ULTIMATE.start_main_~m~0#1|) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|))} #49#return; {1163#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret9#1| 2)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:13:53,232 INFO L290 TraceCheckUtils]: 38: Hoare triple {1163#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret9#1| 2)) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1164#(and (or (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (<= (+ |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res2~0#1| 2))) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} is VALID [2022-02-20 18:13:53,233 INFO L290 TraceCheckUtils]: 39: Hoare triple {1164#(and (or (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (<= (+ |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res2~0#1| 2))) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1129#false} is VALID [2022-02-20 18:13:53,233 INFO L290 TraceCheckUtils]: 40: Hoare triple {1129#false} assume !false; {1129#false} is VALID [2022-02-20 18:13:53,233 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 10 proven. 29 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 18:13:53,233 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:13:53,233 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1522839772] [2022-02-20 18:13:53,233 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1522839772] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:13:53,233 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [632540752] [2022-02-20 18:13:53,233 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-02-20 18:13:53,233 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:13:53,234 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:13:53,235 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:13:53,236 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-02-20 18:13:53,275 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2022-02-20 18:13:53,276 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:13:53,277 INFO L263 TraceCheckSpWp]: Trace formula consists of 140 conjuncts, 57 conjunts are in the unsatisfiable core [2022-02-20 18:13:53,286 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:13:53,287 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:13:54,062 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1128#true} is VALID [2022-02-20 18:13:54,062 INFO L290 TraceCheckUtils]: 1: Hoare triple {1128#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1128#true} is VALID [2022-02-20 18:13:54,062 INFO L290 TraceCheckUtils]: 2: Hoare triple {1128#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1128#true} is VALID [2022-02-20 18:13:54,062 INFO L290 TraceCheckUtils]: 3: Hoare triple {1128#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1128#true} is VALID [2022-02-20 18:13:54,062 INFO L272 TraceCheckUtils]: 4: Hoare triple {1128#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1128#true} is VALID [2022-02-20 18:13:54,063 INFO L290 TraceCheckUtils]: 5: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,063 INFO L290 TraceCheckUtils]: 6: Hoare triple {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(~m < 0); {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,064 INFO L290 TraceCheckUtils]: 7: Hoare triple {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,064 INFO L272 TraceCheckUtils]: 8: Hoare triple {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:54,064 INFO L290 TraceCheckUtils]: 9: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1230#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:54,064 INFO L290 TraceCheckUtils]: 10: Hoare triple {1230#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {1230#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:54,065 INFO L290 TraceCheckUtils]: 11: Hoare triple {1230#(<= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:54,065 INFO L290 TraceCheckUtils]: 12: Hoare triple {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:54,066 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1217#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} #45#return; {1244#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:54,066 INFO L290 TraceCheckUtils]: 14: Hoare triple {1244#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1248#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:54,067 INFO L290 TraceCheckUtils]: 15: Hoare triple {1248#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {1248#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:13:54,067 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1248#(and (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {1128#true} #47#return; {1255#(and (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:54,068 INFO L290 TraceCheckUtils]: 17: Hoare triple {1255#(and (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1259#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:54,068 INFO L272 TraceCheckUtils]: 18: Hoare triple {1259#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1128#true} is VALID [2022-02-20 18:13:54,068 INFO L290 TraceCheckUtils]: 19: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,069 INFO L290 TraceCheckUtils]: 20: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,069 INFO L290 TraceCheckUtils]: 21: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,069 INFO L272 TraceCheckUtils]: 22: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:54,069 INFO L290 TraceCheckUtils]: 23: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,070 INFO L290 TraceCheckUtils]: 24: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,070 INFO L290 TraceCheckUtils]: 25: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:13:54,070 INFO L272 TraceCheckUtils]: 26: Hoare triple {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:54,071 INFO L290 TraceCheckUtils]: 27: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1173#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:13:54,071 INFO L290 TraceCheckUtils]: 28: Hoare triple {1173#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1293#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:13:54,071 INFO L290 TraceCheckUtils]: 29: Hoare triple {1293#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:54,072 INFO L290 TraceCheckUtils]: 30: Hoare triple {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:54,072 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1304#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:13:54,073 INFO L290 TraceCheckUtils]: 32: Hoare triple {1304#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1308#(and (not (< |mult_#in~m| 1)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:13:54,073 INFO L290 TraceCheckUtils]: 33: Hoare triple {1308#(and (not (< |mult_#in~m| 1)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} assume true; {1308#(and (not (< |mult_#in~m| 1)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:13:54,074 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1308#(and (not (< |mult_#in~m| 1)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} {1165#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1315#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:13:54,075 INFO L290 TraceCheckUtils]: 35: Hoare triple {1315#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1319#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:13:54,075 INFO L290 TraceCheckUtils]: 36: Hoare triple {1319#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} assume true; {1319#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:13:54,076 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1319#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} {1259#(and (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~m~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #49#return; {1326#(and (not (< |ULTIMATE.start_main_~res1~0#1| 2)) (= |ULTIMATE.start_main_#t~ret9#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (<= |ULTIMATE.start_main_~res1~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:54,076 INFO L290 TraceCheckUtils]: 38: Hoare triple {1326#(and (not (< |ULTIMATE.start_main_~res1~0#1| 2)) (= |ULTIMATE.start_main_#t~ret9#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (<= |ULTIMATE.start_main_~res1~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1330#(and (= |ULTIMATE.start_main_~res2~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (< |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:13:54,077 INFO L290 TraceCheckUtils]: 39: Hoare triple {1330#(and (= |ULTIMATE.start_main_~res2~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (< |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| 1))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1129#false} is VALID [2022-02-20 18:13:54,077 INFO L290 TraceCheckUtils]: 40: Hoare triple {1129#false} assume !false; {1129#false} is VALID [2022-02-20 18:13:54,077 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 17 proven. 26 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-02-20 18:13:54,077 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:13:57,249 INFO L290 TraceCheckUtils]: 40: Hoare triple {1129#false} assume !false; {1129#false} is VALID [2022-02-20 18:13:57,250 INFO L290 TraceCheckUtils]: 39: Hoare triple {1340#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1129#false} is VALID [2022-02-20 18:13:57,250 INFO L290 TraceCheckUtils]: 38: Hoare triple {1344#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1340#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|))} is VALID [2022-02-20 18:13:57,251 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1352#(or (and (= |mult_#res| (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} {1348#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (<= |ULTIMATE.start_main_~m~0#1| 2)) (not (<= 2 |ULTIMATE.start_main_~m~0#1|)))} #49#return; {1344#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|))} is VALID [2022-02-20 18:13:57,252 INFO L290 TraceCheckUtils]: 36: Hoare triple {1352#(or (and (= |mult_#res| (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} assume true; {1352#(or (and (= |mult_#res| (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,252 INFO L290 TraceCheckUtils]: 35: Hoare triple {1359#(or (and (= (* 2 |mult_#in~n|) (+ |mult_#t~ret5| mult_~n)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1352#(or (and (= |mult_#res| (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,254 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1367#(and (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1) (or (not (< 0 |mult_#in~n|)) (= (* 2 |mult_#in~n|) (+ |mult_#res| |mult_#in~n|))))} {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} #45#return; {1359#(or (and (= (* 2 |mult_#in~n|) (+ |mult_#t~ret5| mult_~n)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,254 INFO L290 TraceCheckUtils]: 33: Hoare triple {1367#(and (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1) (or (not (< 0 |mult_#in~n|)) (= (* 2 |mult_#in~n|) (+ |mult_#res| |mult_#in~n|))))} assume true; {1367#(and (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1) (or (not (< 0 |mult_#in~n|)) (= (* 2 |mult_#in~n|) (+ |mult_#res| |mult_#in~n|))))} is VALID [2022-02-20 18:13:57,255 INFO L290 TraceCheckUtils]: 32: Hoare triple {1374#(and (or (= (+ |mult_#t~ret5| |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1367#(and (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1) (or (not (< 0 |mult_#in~n|)) (= (* 2 |mult_#in~n|) (+ |mult_#res| |mult_#in~n|))))} is VALID [2022-02-20 18:13:57,256 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} #45#return; {1374#(and (or (= (+ |mult_#t~ret5| |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:13:57,256 INFO L290 TraceCheckUtils]: 30: Hoare triple {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,257 INFO L290 TraceCheckUtils]: 29: Hoare triple {1388#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m))} assume 0 == ~m;#res := 0; {1297#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,257 INFO L290 TraceCheckUtils]: 28: Hoare triple {1392#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m) (< mult_~m 0))} assume !(~m < 0); {1388#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m))} is VALID [2022-02-20 18:13:57,258 INFO L290 TraceCheckUtils]: 27: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1392#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m) (< mult_~m 0))} is VALID [2022-02-20 18:13:57,258 INFO L272 TraceCheckUtils]: 26: Hoare triple {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:57,258 INFO L290 TraceCheckUtils]: 25: Hoare triple {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} assume !(0 == ~m); {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} is VALID [2022-02-20 18:13:57,259 INFO L290 TraceCheckUtils]: 24: Hoare triple {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} assume !(~m < 0); {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} is VALID [2022-02-20 18:13:57,259 INFO L290 TraceCheckUtils]: 23: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1378#(or (not (<= mult_~m 1)) (and (or (= (+ |mult_#in~n| mult_~n) (* 2 |mult_#in~n|)) (not (< 0 |mult_#in~n|))) (<= 1 |mult_#in~m|) (<= |mult_#in~m| 1)) (< mult_~m 1))} is VALID [2022-02-20 18:13:57,259 INFO L272 TraceCheckUtils]: 22: Hoare triple {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:57,260 INFO L290 TraceCheckUtils]: 21: Hoare triple {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} assume !(0 == ~m); {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,261 INFO L290 TraceCheckUtils]: 20: Hoare triple {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} assume !(~m < 0); {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,261 INFO L290 TraceCheckUtils]: 19: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1363#(or (not (<= mult_~m 2)) (and (= (* 2 mult_~n) (* 2 |mult_#in~n|)) (<= 2 |mult_#in~m|) (<= |mult_#in~m| 2)) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:13:57,261 INFO L272 TraceCheckUtils]: 18: Hoare triple {1348#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (<= |ULTIMATE.start_main_~m~0#1| 2)) (not (<= 2 |ULTIMATE.start_main_~m~0#1|)))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1128#true} is VALID [2022-02-20 18:13:57,262 INFO L290 TraceCheckUtils]: 17: Hoare triple {1417#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (<= |ULTIMATE.start_main_~m~0#1| 2)) (not (<= 2 |ULTIMATE.start_main_~m~0#1|)))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1348#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (<= |ULTIMATE.start_main_~m~0#1| 2)) (not (<= 2 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:13:57,263 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1424#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) |mult_#res|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (- |mult_#res|) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} {1128#true} #47#return; {1417#(or (not (< 0 |ULTIMATE.start_main_~n~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| (* 2 |ULTIMATE.start_main_~n~0#1|)) (not (<= |ULTIMATE.start_main_~m~0#1| 2)) (not (<= 2 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:13:57,263 INFO L290 TraceCheckUtils]: 15: Hoare triple {1424#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) |mult_#res|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (- |mult_#res|) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} assume true; {1424#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) |mult_#res|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (- |mult_#res|) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} is VALID [2022-02-20 18:13:57,264 INFO L290 TraceCheckUtils]: 14: Hoare triple {1431#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n) (* (- 1) |mult_#t~ret5|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (+ (* (- 1) mult_~n) (* (- 1) |mult_#t~ret5|)) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1424#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) |mult_#res|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (- |mult_#res|) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} is VALID [2022-02-20 18:13:57,266 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} #45#return; {1431#(or (and (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n) (* (- 1) |mult_#t~ret5|)) (- 2))) (<= |mult_#in~m| 0)) (or (<= (div (+ (* (- 1) mult_~n) (* (- 1) |mult_#t~ret5|)) (- 2)) 1) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)))} is VALID [2022-02-20 18:13:57,266 INFO L290 TraceCheckUtils]: 12: Hoare triple {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,266 INFO L290 TraceCheckUtils]: 11: Hoare triple {1445#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume 0 == ~m;#res := 0; {1237#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,267 INFO L290 TraceCheckUtils]: 10: Hoare triple {1445#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume !(~m < 0); {1445#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,267 INFO L290 TraceCheckUtils]: 9: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1445#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:13:57,267 INFO L272 TraceCheckUtils]: 8: Hoare triple {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1128#true} is VALID [2022-02-20 18:13:57,268 INFO L290 TraceCheckUtils]: 7: Hoare triple {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} assume !(0 == ~m); {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:57,269 INFO L290 TraceCheckUtils]: 6: Hoare triple {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} assume !(~m < 0); {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:57,269 INFO L290 TraceCheckUtils]: 5: Hoare triple {1128#true} ~n := #in~n;~m := #in~m; {1435#(or (and (or (<= (div (* (- 1) mult_~n) (- 2)) 1) (<= |mult_#in~m| 0)) (or (<= (+ |mult_#in~m| 1) (div (+ (- 1) (* (- 1) mult_~n)) (- 2))) (<= |mult_#in~m| 0))) (not (<= 2 |mult_#in~n|)) (not (<= |mult_#in~n| 2)) (< 1 mult_~m))} is VALID [2022-02-20 18:13:57,269 INFO L272 TraceCheckUtils]: 4: Hoare triple {1128#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1128#true} is VALID [2022-02-20 18:13:57,270 INFO L290 TraceCheckUtils]: 3: Hoare triple {1128#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1128#true} is VALID [2022-02-20 18:13:57,270 INFO L290 TraceCheckUtils]: 2: Hoare triple {1128#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1128#true} is VALID [2022-02-20 18:13:57,270 INFO L290 TraceCheckUtils]: 1: Hoare triple {1128#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1128#true} is VALID [2022-02-20 18:13:57,270 INFO L290 TraceCheckUtils]: 0: Hoare triple {1128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1128#true} is VALID [2022-02-20 18:13:57,270 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 8 proven. 38 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 18:13:57,271 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [632540752] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:13:57,271 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:13:57,271 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 19, 20] total 49 [2022-02-20 18:13:57,271 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2123703912] [2022-02-20 18:13:57,271 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:13:57,272 INFO L78 Accepts]: Start accepts. Automaton has has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) Word has length 41 [2022-02-20 18:13:57,279 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:13:57,279 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:13:57,357 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:13:57,357 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 49 states [2022-02-20 18:13:57,357 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:13:57,358 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 49 interpolants. [2022-02-20 18:13:57,358 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=205, Invalid=2147, Unknown=0, NotChecked=0, Total=2352 [2022-02-20 18:13:57,359 INFO L87 Difference]: Start difference. First operand 32 states and 42 transitions. Second operand has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:00,732 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:00,732 INFO L93 Difference]: Finished difference Result 67 states and 87 transitions. [2022-02-20 18:14:00,732 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2022-02-20 18:14:00,732 INFO L78 Accepts]: Start accepts. Automaton has has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) Word has length 41 [2022-02-20 18:14:00,732 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:14:00,733 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:00,735 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 82 transitions. [2022-02-20 18:14:00,735 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:00,737 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 82 transitions. [2022-02-20 18:14:00,737 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states and 82 transitions. [2022-02-20 18:14:00,820 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 82 edges. 82 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:00,822 INFO L225 Difference]: With dead ends: 67 [2022-02-20 18:14:00,822 INFO L226 Difference]: Without dead ends: 61 [2022-02-20 18:14:00,823 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 57 SyntacticMatches, 2 SemanticMatches, 67 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1132 ImplicationChecksByTransitivity, 1.7s TimeCoverageRelationStatistics Valid=536, Invalid=4156, Unknown=0, NotChecked=0, Total=4692 [2022-02-20 18:14:00,824 INFO L933 BasicCegarLoop]: 18 mSDtfsCounter, 44 mSDsluCounter, 304 mSDsCounter, 0 mSdLazyCounter, 1004 mSolverCounterSat, 66 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 54 SdHoareTripleChecker+Valid, 322 SdHoareTripleChecker+Invalid, 1070 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 66 IncrementalHoareTripleChecker+Valid, 1004 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.1s IncrementalHoareTripleChecker+Time [2022-02-20 18:14:00,824 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [54 Valid, 322 Invalid, 1070 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [66 Valid, 1004 Invalid, 0 Unknown, 0 Unchecked, 1.1s Time] [2022-02-20 18:14:00,824 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2022-02-20 18:14:00,870 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 47. [2022-02-20 18:14:00,871 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:14:00,871 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) [2022-02-20 18:14:00,871 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) [2022-02-20 18:14:00,872 INFO L87 Difference]: Start difference. First operand 61 states. Second operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) [2022-02-20 18:14:00,874 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:00,874 INFO L93 Difference]: Finished difference Result 61 states and 80 transitions. [2022-02-20 18:14:00,874 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 80 transitions. [2022-02-20 18:14:00,875 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:00,875 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:00,875 INFO L74 IsIncluded]: Start isIncluded. First operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) Second operand 61 states. [2022-02-20 18:14:00,875 INFO L87 Difference]: Start difference. First operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) Second operand 61 states. [2022-02-20 18:14:00,878 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:00,888 INFO L93 Difference]: Finished difference Result 61 states and 80 transitions. [2022-02-20 18:14:00,888 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 80 transitions. [2022-02-20 18:14:00,889 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:00,889 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:00,889 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:14:00,889 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:14:00,890 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 states, 31 states have (on average 1.1290322580645162) internal successors, (35), 33 states have internal predecessors, (35), 7 states have call successors, (7), 2 states have call predecessors, (7), 8 states have return successors, (27), 11 states have call predecessors, (27), 7 states have call successors, (27) [2022-02-20 18:14:00,891 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 69 transitions. [2022-02-20 18:14:00,892 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 69 transitions. Word has length 41 [2022-02-20 18:14:00,892 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:14:00,892 INFO L470 AbstractCegarLoop]: Abstraction has 47 states and 69 transitions. [2022-02-20 18:14:00,892 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 49 states, 45 states have (on average 1.511111111111111) internal successors, (68), 34 states have internal predecessors, (68), 10 states have call successors, (10), 1 states have call predecessors, (10), 13 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:00,892 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 69 transitions. [2022-02-20 18:14:00,893 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 18:14:00,893 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:14:00,893 INFO L514 BasicCegarLoop]: trace histogram [5, 5, 5, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:14:00,914 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-02-20 18:14:01,109 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:01,110 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:14:01,110 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:14:01,110 INFO L85 PathProgramCache]: Analyzing trace with hash 392052136, now seen corresponding path program 4 times [2022-02-20 18:14:01,110 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:14:01,111 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [149394603] [2022-02-20 18:14:01,111 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:14:01,111 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:14:01,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,182 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:14:01,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,262 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:01,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,360 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:01,366 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,404 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,404 INFO L290 TraceCheckUtils]: 1: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,405 INFO L290 TraceCheckUtils]: 2: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,405 INFO L290 TraceCheckUtils]: 3: Hoare triple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,406 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:14:01,407 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,407 INFO L290 TraceCheckUtils]: 1: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:01,408 INFO L290 TraceCheckUtils]: 2: Hoare triple {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:01,417 INFO L272 TraceCheckUtils]: 3: Hoare triple {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,417 INFO L290 TraceCheckUtils]: 4: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,418 INFO L290 TraceCheckUtils]: 5: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,418 INFO L290 TraceCheckUtils]: 6: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,419 INFO L290 TraceCheckUtils]: 7: Hoare triple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,421 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:14:01,422 INFO L290 TraceCheckUtils]: 9: Hoare triple {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,424 INFO L290 TraceCheckUtils]: 10: Hoare triple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,426 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1816#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:14:01,427 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,427 INFO L290 TraceCheckUtils]: 1: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,427 INFO L290 TraceCheckUtils]: 2: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,428 INFO L272 TraceCheckUtils]: 3: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,428 INFO L290 TraceCheckUtils]: 4: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,428 INFO L290 TraceCheckUtils]: 5: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:01,429 INFO L290 TraceCheckUtils]: 6: Hoare triple {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:01,429 INFO L272 TraceCheckUtils]: 7: Hoare triple {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,429 INFO L290 TraceCheckUtils]: 8: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,429 INFO L290 TraceCheckUtils]: 9: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,430 INFO L290 TraceCheckUtils]: 10: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,430 INFO L290 TraceCheckUtils]: 11: Hoare triple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,431 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:14:01,432 INFO L290 TraceCheckUtils]: 13: Hoare triple {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,432 INFO L290 TraceCheckUtils]: 14: Hoare triple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,433 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1816#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:14:01,434 INFO L290 TraceCheckUtils]: 16: Hoare triple {1816#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:14:01,434 INFO L290 TraceCheckUtils]: 17: Hoare triple {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} assume true; {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:14:01,435 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} {1766#true} #47#return; {1787#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))) (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 2)))} is VALID [2022-02-20 18:14:01,435 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 25 [2022-02-20 18:14:01,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,520 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:01,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,569 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,570 INFO L290 TraceCheckUtils]: 1: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,570 INFO L290 TraceCheckUtils]: 2: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,570 INFO L290 TraceCheckUtils]: 3: Hoare triple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,572 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1834#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:01,572 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,573 INFO L290 TraceCheckUtils]: 1: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,573 INFO L290 TraceCheckUtils]: 2: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,573 INFO L272 TraceCheckUtils]: 3: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,574 INFO L290 TraceCheckUtils]: 4: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,574 INFO L290 TraceCheckUtils]: 5: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,574 INFO L290 TraceCheckUtils]: 6: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,575 INFO L290 TraceCheckUtils]: 7: Hoare triple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,576 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1834#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:01,577 INFO L290 TraceCheckUtils]: 9: Hoare triple {1834#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:01,577 INFO L290 TraceCheckUtils]: 10: Hoare triple {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:01,578 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {1788#(and (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))))} #49#return; {1801#(and (<= (+ |ULTIMATE.start_main_#t~ret9#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|))} is VALID [2022-02-20 18:14:01,579 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1766#true} is VALID [2022-02-20 18:14:01,579 INFO L290 TraceCheckUtils]: 1: Hoare triple {1766#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1766#true} is VALID [2022-02-20 18:14:01,579 INFO L290 TraceCheckUtils]: 2: Hoare triple {1766#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1766#true} is VALID [2022-02-20 18:14:01,579 INFO L290 TraceCheckUtils]: 3: Hoare triple {1766#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1766#true} is VALID [2022-02-20 18:14:01,579 INFO L272 TraceCheckUtils]: 4: Hoare triple {1766#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1766#true} is VALID [2022-02-20 18:14:01,579 INFO L290 TraceCheckUtils]: 5: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,580 INFO L290 TraceCheckUtils]: 6: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,580 INFO L290 TraceCheckUtils]: 7: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,580 INFO L272 TraceCheckUtils]: 8: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,581 INFO L290 TraceCheckUtils]: 9: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,581 INFO L290 TraceCheckUtils]: 10: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:01,582 INFO L290 TraceCheckUtils]: 11: Hoare triple {1818#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:01,582 INFO L272 TraceCheckUtils]: 12: Hoare triple {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,582 INFO L290 TraceCheckUtils]: 13: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,582 INFO L290 TraceCheckUtils]: 14: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,583 INFO L290 TraceCheckUtils]: 15: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,583 INFO L290 TraceCheckUtils]: 16: Hoare triple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} assume true; {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,584 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1828#(and (<= |mult_#in~m| |mult_#res|) (<= |mult_#res| 0))} {1819#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} is VALID [2022-02-20 18:14:01,585 INFO L290 TraceCheckUtils]: 18: Hoare triple {1825#(and (<= |mult_#in~m| (+ |mult_#t~ret5| 1)) (<= (+ |mult_#t~ret5| 1) |mult_#in~m|) (= |mult_#in~n| mult_~n))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,585 INFO L290 TraceCheckUtils]: 19: Hoare triple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} assume true; {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} is VALID [2022-02-20 18:14:01,587 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {1826#(and (<= (+ |mult_#res| 1) (+ |mult_#in~n| |mult_#in~m|)) (<= (+ |mult_#in~n| |mult_#in~m|) (+ |mult_#res| 1)))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1816#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} is VALID [2022-02-20 18:14:01,587 INFO L290 TraceCheckUtils]: 21: Hoare triple {1816#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#in~m| mult_~n) (+ 2 |mult_#t~ret5|)) (<= (+ 2 |mult_#t~ret5|) (+ |mult_#in~m| mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:14:01,588 INFO L290 TraceCheckUtils]: 22: Hoare triple {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} assume true; {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} is VALID [2022-02-20 18:14:01,589 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1817#(and (<= (+ (* 2 |mult_#in~n|) |mult_#in~m|) (+ |mult_#res| 2)) (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~n|) |mult_#in~m|)))} {1766#true} #47#return; {1787#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))) (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 2)))} is VALID [2022-02-20 18:14:01,589 INFO L290 TraceCheckUtils]: 24: Hoare triple {1787#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))) (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 2)))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1788#(and (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))))} is VALID [2022-02-20 18:14:01,589 INFO L272 TraceCheckUtils]: 25: Hoare triple {1788#(and (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1766#true} is VALID [2022-02-20 18:14:01,590 INFO L290 TraceCheckUtils]: 26: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,590 INFO L290 TraceCheckUtils]: 27: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,590 INFO L290 TraceCheckUtils]: 28: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:01,591 INFO L272 TraceCheckUtils]: 29: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:01,591 INFO L290 TraceCheckUtils]: 30: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,592 INFO L290 TraceCheckUtils]: 31: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:01,599 INFO L290 TraceCheckUtils]: 32: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,600 INFO L290 TraceCheckUtils]: 33: Hoare triple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:01,601 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1836#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1834#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:01,601 INFO L290 TraceCheckUtils]: 35: Hoare triple {1834#(and (= |mult_#in~n| mult_~n) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)) (<= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:01,602 INFO L290 TraceCheckUtils]: 36: Hoare triple {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:01,603 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1835#(and (<= |mult_#res| |mult_#in~n|) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {1788#(and (<= (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 2) (+ |ULTIMATE.start_main_~n~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|))))} #49#return; {1801#(and (<= (+ |ULTIMATE.start_main_#t~ret9#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|))} is VALID [2022-02-20 18:14:01,603 INFO L290 TraceCheckUtils]: 38: Hoare triple {1801#(and (<= (+ |ULTIMATE.start_main_#t~ret9#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1802#(and (or (<= (+ |ULTIMATE.start_main_~res2~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1))) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|))} is VALID [2022-02-20 18:14:01,604 INFO L290 TraceCheckUtils]: 39: Hoare triple {1802#(and (or (<= (+ |ULTIMATE.start_main_~res2~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 2)) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1))) (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1767#false} is VALID [2022-02-20 18:14:01,604 INFO L290 TraceCheckUtils]: 40: Hoare triple {1767#false} assume !false; {1767#false} is VALID [2022-02-20 18:14:01,605 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 4 proven. 35 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 18:14:01,605 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:14:01,605 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [149394603] [2022-02-20 18:14:01,605 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [149394603] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:14:01,605 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1781693822] [2022-02-20 18:14:01,605 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-02-20 18:14:01,606 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:01,606 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:14:01,607 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:14:01,609 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-02-20 18:14:01,665 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-02-20 18:14:01,665 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:14:01,666 INFO L263 TraceCheckSpWp]: Trace formula consists of 140 conjuncts, 57 conjunts are in the unsatisfiable core [2022-02-20 18:14:01,679 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:01,680 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:14:02,292 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1766#true} is VALID [2022-02-20 18:14:02,292 INFO L290 TraceCheckUtils]: 1: Hoare triple {1766#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1766#true} is VALID [2022-02-20 18:14:02,293 INFO L290 TraceCheckUtils]: 2: Hoare triple {1766#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1766#true} is VALID [2022-02-20 18:14:02,293 INFO L290 TraceCheckUtils]: 3: Hoare triple {1766#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1766#true} is VALID [2022-02-20 18:14:02,293 INFO L272 TraceCheckUtils]: 4: Hoare triple {1766#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1766#true} is VALID [2022-02-20 18:14:02,293 INFO L290 TraceCheckUtils]: 5: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,293 INFO L290 TraceCheckUtils]: 6: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,294 INFO L290 TraceCheckUtils]: 7: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,294 INFO L272 TraceCheckUtils]: 8: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:02,294 INFO L290 TraceCheckUtils]: 9: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,294 INFO L290 TraceCheckUtils]: 10: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,295 INFO L290 TraceCheckUtils]: 11: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,295 INFO L272 TraceCheckUtils]: 12: Hoare triple {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:02,295 INFO L290 TraceCheckUtils]: 13: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1827#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:02,295 INFO L290 TraceCheckUtils]: 14: Hoare triple {1827#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {1882#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:02,296 INFO L290 TraceCheckUtils]: 15: Hoare triple {1882#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:02,296 INFO L290 TraceCheckUtils]: 16: Hoare triple {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:02,297 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1893#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:02,297 INFO L290 TraceCheckUtils]: 18: Hoare triple {1893#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:02,298 INFO L290 TraceCheckUtils]: 19: Hoare triple {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:02,298 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {1803#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {1904#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:02,299 INFO L290 TraceCheckUtils]: 21: Hoare triple {1904#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1908#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:02,299 INFO L290 TraceCheckUtils]: 22: Hoare triple {1908#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} assume true; {1908#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:02,300 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1908#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} {1766#true} #47#return; {1915#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= |ULTIMATE.start_main_#t~ret8#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (not (< |ULTIMATE.start_main_~n~0#1| 2)))} is VALID [2022-02-20 18:14:02,300 INFO L290 TraceCheckUtils]: 24: Hoare triple {1915#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= |ULTIMATE.start_main_#t~ret8#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (not (< |ULTIMATE.start_main_~n~0#1| 2)))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1919#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (not (< |ULTIMATE.start_main_~n~0#1| 2)))} is VALID [2022-02-20 18:14:02,301 INFO L272 TraceCheckUtils]: 25: Hoare triple {1919#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (not (< |ULTIMATE.start_main_~n~0#1| 2)))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1766#true} is VALID [2022-02-20 18:14:02,301 INFO L290 TraceCheckUtils]: 26: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,302 INFO L290 TraceCheckUtils]: 27: Hoare triple {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(~m < 0); {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,302 INFO L290 TraceCheckUtils]: 28: Hoare triple {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} assume !(0 == ~m); {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:02,302 INFO L272 TraceCheckUtils]: 29: Hoare triple {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:02,302 INFO L290 TraceCheckUtils]: 30: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {1939#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:02,303 INFO L290 TraceCheckUtils]: 31: Hoare triple {1939#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {1939#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:02,303 INFO L290 TraceCheckUtils]: 32: Hoare triple {1939#(<= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:02,303 INFO L290 TraceCheckUtils]: 33: Hoare triple {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:02,304 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {1926#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| mult_~m))} #45#return; {1953#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:02,304 INFO L290 TraceCheckUtils]: 35: Hoare triple {1953#(and (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1957#(and (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:14:02,305 INFO L290 TraceCheckUtils]: 36: Hoare triple {1957#(and (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} assume true; {1957#(and (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:14:02,306 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1957#(and (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) 0) (<= |mult_#in~m| 1))} {1919#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (not (< |ULTIMATE.start_main_~n~0#1| 2)))} #49#return; {1964#(and (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~m~0#1| 1) (<= |ULTIMATE.start_main_#t~ret9#1| 2) (not (< |ULTIMATE.start_main_#t~ret9#1| 2)))} is VALID [2022-02-20 18:14:02,307 INFO L290 TraceCheckUtils]: 38: Hoare triple {1964#(and (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~m~0#1| 1) (<= |ULTIMATE.start_main_#t~ret9#1| 2) (not (< |ULTIMATE.start_main_#t~ret9#1| 2)))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1968#(and (not (< |ULTIMATE.start_main_~res2~0#1| 2)) (<= |ULTIMATE.start_main_~res2~0#1| 2) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~m~0#1| 1))} is VALID [2022-02-20 18:14:02,307 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#(and (not (< |ULTIMATE.start_main_~res2~0#1| 2)) (<= |ULTIMATE.start_main_~res2~0#1| 2) (= |ULTIMATE.start_main_~res1~0#1| (* 2 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~m~0#1| 1))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1767#false} is VALID [2022-02-20 18:14:02,307 INFO L290 TraceCheckUtils]: 40: Hoare triple {1767#false} assume !false; {1767#false} is VALID [2022-02-20 18:14:02,308 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 0 proven. 43 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-02-20 18:14:02,308 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:14:03,986 INFO L290 TraceCheckUtils]: 40: Hoare triple {1767#false} assume !false; {1767#false} is VALID [2022-02-20 18:14:03,987 INFO L290 TraceCheckUtils]: 39: Hoare triple {1978#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {1767#false} is VALID [2022-02-20 18:14:03,987 INFO L290 TraceCheckUtils]: 38: Hoare triple {1982#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {1978#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:14:03,988 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1990#(and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1))} {1986#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} #49#return; {1982#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:14:03,988 INFO L290 TraceCheckUtils]: 36: Hoare triple {1990#(and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1))} assume true; {1990#(and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:14:03,989 INFO L290 TraceCheckUtils]: 35: Hoare triple {1997#(and (<= |mult_#in~m| 1) (or (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1990#(and (or (<= |mult_#in~m| 0) (= |mult_#res| |mult_#in~n|)) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:14:03,990 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} #45#return; {1997#(and (<= |mult_#in~m| 1) (or (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 0)))} is VALID [2022-02-20 18:14:03,990 INFO L290 TraceCheckUtils]: 33: Hoare triple {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,990 INFO L290 TraceCheckUtils]: 32: Hoare triple {2011#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume 0 == ~m;#res := 0; {1946#(and (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,990 INFO L290 TraceCheckUtils]: 31: Hoare triple {2011#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} assume !(~m < 0); {2011#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,991 INFO L290 TraceCheckUtils]: 30: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {2011#(or (< 0 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,991 INFO L272 TraceCheckUtils]: 29: Hoare triple {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:03,991 INFO L290 TraceCheckUtils]: 28: Hoare triple {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} assume !(0 == ~m); {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} is VALID [2022-02-20 18:14:03,992 INFO L290 TraceCheckUtils]: 27: Hoare triple {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} assume !(~m < 0); {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} is VALID [2022-02-20 18:14:03,992 INFO L290 TraceCheckUtils]: 26: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {2001#(or (and (or (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 0)) (<= |mult_#in~m| 1)) (< 1 mult_~m))} is VALID [2022-02-20 18:14:03,992 INFO L272 TraceCheckUtils]: 25: Hoare triple {1986#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {1766#true} is VALID [2022-02-20 18:14:03,992 INFO L290 TraceCheckUtils]: 24: Hoare triple {2030#(or (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~n~0#1|))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {1986#(or (= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~n~0#1|) (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)))} is VALID [2022-02-20 18:14:03,993 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2037#(or (< 1 |mult_#in~n|) (= |mult_#res| |mult_#in~m|) (not (< 0 |mult_#in~n|)))} {1766#true} #47#return; {2030#(or (< 1 |ULTIMATE.start_main_~m~0#1|) (not (< 0 |ULTIMATE.start_main_~m~0#1|)) (= |ULTIMATE.start_main_#t~ret8#1| |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:14:03,993 INFO L290 TraceCheckUtils]: 22: Hoare triple {2037#(or (< 1 |mult_#in~n|) (= |mult_#res| |mult_#in~m|) (not (< 0 |mult_#in~n|)))} assume true; {2037#(or (< 1 |mult_#in~n|) (= |mult_#res| |mult_#in~m|) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:03,994 INFO L290 TraceCheckUtils]: 21: Hoare triple {2044#(or (< 1 |mult_#in~n|) (= |mult_#in~m| (+ |mult_#t~ret5| mult_~n)) (not (< 0 |mult_#in~n|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2037#(or (< 1 |mult_#in~n|) (= |mult_#res| |mult_#in~m|) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:03,995 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} #45#return; {2044#(or (< 1 |mult_#in~n|) (= |mult_#in~m| (+ |mult_#t~ret5| mult_~n)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:03,995 INFO L290 TraceCheckUtils]: 19: Hoare triple {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:03,996 INFO L290 TraceCheckUtils]: 18: Hoare triple {2058#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 1))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {1897#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:03,997 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} #45#return; {2058#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| (+ |mult_#t~ret5| mult_~n)) (<= |mult_#in~m| 1))} is VALID [2022-02-20 18:14:03,997 INFO L290 TraceCheckUtils]: 16: Hoare triple {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,997 INFO L290 TraceCheckUtils]: 15: Hoare triple {2072#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m))} assume 0 == ~m;#res := 0; {1886#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:03,998 INFO L290 TraceCheckUtils]: 14: Hoare triple {2076#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m) (< mult_~m 0))} assume !(~m < 0); {2072#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m))} is VALID [2022-02-20 18:14:03,998 INFO L290 TraceCheckUtils]: 13: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {2076#(or (and (<= 0 |mult_#in~m|) (<= |mult_#in~m| 0)) (< 0 mult_~m) (< mult_~m 0))} is VALID [2022-02-20 18:14:03,998 INFO L272 TraceCheckUtils]: 12: Hoare triple {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:03,998 INFO L290 TraceCheckUtils]: 11: Hoare triple {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} assume !(0 == ~m); {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} is VALID [2022-02-20 18:14:03,999 INFO L290 TraceCheckUtils]: 10: Hoare triple {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} assume !(~m < 0); {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} is VALID [2022-02-20 18:14:03,999 INFO L290 TraceCheckUtils]: 9: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {2062#(or (not (<= mult_~m 1)) (< mult_~m 1) (and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1)))} is VALID [2022-02-20 18:14:04,002 INFO L272 TraceCheckUtils]: 8: Hoare triple {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} call #t~ret5 := mult(~n, ~m - 1); {1766#true} is VALID [2022-02-20 18:14:04,002 INFO L290 TraceCheckUtils]: 7: Hoare triple {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} assume !(0 == ~m); {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:04,003 INFO L290 TraceCheckUtils]: 6: Hoare triple {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} assume !(~m < 0); {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:04,003 INFO L290 TraceCheckUtils]: 5: Hoare triple {1766#true} ~n := #in~n;~m := #in~m; {2048#(or (< 1 |mult_#in~n|) (not (<= mult_~m 2)) (= (* 2 mult_~n) |mult_#in~m|) (not (<= 2 mult_~m)) (not (< 0 |mult_#in~n|)))} is VALID [2022-02-20 18:14:04,003 INFO L272 TraceCheckUtils]: 4: Hoare triple {1766#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {1766#true} is VALID [2022-02-20 18:14:04,003 INFO L290 TraceCheckUtils]: 3: Hoare triple {1766#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {1766#true} is VALID [2022-02-20 18:14:04,003 INFO L290 TraceCheckUtils]: 2: Hoare triple {1766#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {1766#true} is VALID [2022-02-20 18:14:04,004 INFO L290 TraceCheckUtils]: 1: Hoare triple {1766#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {1766#true} is VALID [2022-02-20 18:14:04,004 INFO L290 TraceCheckUtils]: 0: Hoare triple {1766#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {1766#true} is VALID [2022-02-20 18:14:04,004 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 0 proven. 46 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 18:14:04,004 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1781693822] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:14:04,004 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:14:04,004 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 19, 20] total 48 [2022-02-20 18:14:04,004 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [547984055] [2022-02-20 18:14:04,004 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:14:04,006 INFO L78 Accepts]: Start accepts. Automaton has has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) Word has length 41 [2022-02-20 18:14:04,026 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:14:04,027 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:04,123 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 92 edges. 92 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:04,123 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 48 states [2022-02-20 18:14:04,123 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:14:04,124 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 48 interpolants. [2022-02-20 18:14:04,125 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=207, Invalid=2049, Unknown=0, NotChecked=0, Total=2256 [2022-02-20 18:14:04,125 INFO L87 Difference]: Start difference. First operand 47 states and 69 transitions. Second operand has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:06,083 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:06,083 INFO L93 Difference]: Finished difference Result 84 states and 125 transitions. [2022-02-20 18:14:06,083 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 30 states. [2022-02-20 18:14:06,085 INFO L78 Accepts]: Start accepts. Automaton has has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) Word has length 41 [2022-02-20 18:14:06,085 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:14:06,086 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:06,090 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 93 transitions. [2022-02-20 18:14:06,091 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:06,095 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 93 transitions. [2022-02-20 18:14:06,095 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 30 states and 93 transitions. [2022-02-20 18:14:06,177 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:06,183 INFO L225 Difference]: With dead ends: 84 [2022-02-20 18:14:06,183 INFO L226 Difference]: Without dead ends: 74 [2022-02-20 18:14:06,187 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 127 GetRequests, 57 SyntacticMatches, 3 SemanticMatches, 67 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1240 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=544, Invalid=4148, Unknown=0, NotChecked=0, Total=4692 [2022-02-20 18:14:06,188 INFO L933 BasicCegarLoop]: 24 mSDtfsCounter, 48 mSDsluCounter, 302 mSDsCounter, 0 mSdLazyCounter, 849 mSolverCounterSat, 115 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 58 SdHoareTripleChecker+Valid, 326 SdHoareTripleChecker+Invalid, 964 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 115 IncrementalHoareTripleChecker+Valid, 849 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-02-20 18:14:06,188 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [58 Valid, 326 Invalid, 964 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [115 Valid, 849 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-02-20 18:14:06,189 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 74 states. [2022-02-20 18:14:06,224 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 74 to 56. [2022-02-20 18:14:06,224 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:14:06,225 INFO L82 GeneralOperation]: Start isEquivalent. First operand 74 states. Second operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) [2022-02-20 18:14:06,225 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) [2022-02-20 18:14:06,225 INFO L87 Difference]: Start difference. First operand 74 states. Second operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) [2022-02-20 18:14:06,230 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:06,231 INFO L93 Difference]: Finished difference Result 74 states and 107 transitions. [2022-02-20 18:14:06,231 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 107 transitions. [2022-02-20 18:14:06,232 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:06,232 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:06,232 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) Second operand 74 states. [2022-02-20 18:14:06,232 INFO L87 Difference]: Start difference. First operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) Second operand 74 states. [2022-02-20 18:14:06,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:06,238 INFO L93 Difference]: Finished difference Result 74 states and 107 transitions. [2022-02-20 18:14:06,238 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 107 transitions. [2022-02-20 18:14:06,239 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:06,239 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:06,239 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:14:06,239 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:14:06,239 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 37 states have (on average 1.135135135135135) internal successors, (42), 39 states have internal predecessors, (42), 9 states have call successors, (9), 3 states have call predecessors, (9), 9 states have return successors, (40), 13 states have call predecessors, (40), 9 states have call successors, (40) [2022-02-20 18:14:06,242 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 91 transitions. [2022-02-20 18:14:06,243 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 91 transitions. Word has length 41 [2022-02-20 18:14:06,243 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:14:06,243 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 91 transitions. [2022-02-20 18:14:06,243 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 48 states, 44 states have (on average 1.5227272727272727) internal successors, (67), 33 states have internal predecessors, (67), 10 states have call successors, (10), 1 states have call predecessors, (10), 12 states have return successors, (15), 15 states have call predecessors, (15), 10 states have call successors, (15) [2022-02-20 18:14:06,243 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 91 transitions. [2022-02-20 18:14:06,246 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 62 [2022-02-20 18:14:06,246 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:14:06,246 INFO L514 BasicCegarLoop]: trace histogram [8, 8, 7, 5, 5, 5, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:14:06,277 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-02-20 18:14:06,464 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:06,464 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:14:06,464 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:14:06,464 INFO L85 PathProgramCache]: Analyzing trace with hash 491802084, now seen corresponding path program 1 times [2022-02-20 18:14:06,464 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:14:06,465 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2030896896] [2022-02-20 18:14:06,465 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:14:06,465 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:14:06,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,494 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:14:06,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,498 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:06,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,501 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L272 TraceCheckUtils]: 3: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,502 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,503 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {2464#true} {2464#true} #47#return; {2464#true} is VALID [2022-02-20 18:14:06,503 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 18:14:06,509 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,523 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:06,528 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,548 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:14:06,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,556 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:06,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,563 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:06,564 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,566 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:06,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,568 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L272 TraceCheckUtils]: 3: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,569 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L272 TraceCheckUtils]: 3: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,570 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,580 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L272 TraceCheckUtils]: 7: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L290 TraceCheckUtils]: 8: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,590 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 13: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 14: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 16: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,591 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L272 TraceCheckUtils]: 3: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L272 TraceCheckUtils]: 7: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 8: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,592 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L272 TraceCheckUtils]: 11: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 13: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 14: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 18: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,593 INFO L290 TraceCheckUtils]: 20: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,594 INFO L290 TraceCheckUtils]: 21: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,594 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,594 INFO L290 TraceCheckUtils]: 23: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,594 INFO L290 TraceCheckUtils]: 24: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,595 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {2464#true} {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,595 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2556#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,596 INFO L290 TraceCheckUtils]: 1: Hoare triple {2556#(= |mult_#in~m| mult_~m)} assume ~m < 0; {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} is VALID [2022-02-20 18:14:06,596 INFO L272 TraceCheckUtils]: 2: Hoare triple {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} call #t~ret4 := mult(~n, -~m); {2464#true} is VALID [2022-02-20 18:14:06,596 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,596 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,596 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,596 INFO L272 TraceCheckUtils]: 6: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,596 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 8: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L272 TraceCheckUtils]: 10: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 13: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L272 TraceCheckUtils]: 14: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,597 INFO L290 TraceCheckUtils]: 16: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,598 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,613 INFO L290 TraceCheckUtils]: 18: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,613 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,613 INFO L290 TraceCheckUtils]: 20: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,613 INFO L290 TraceCheckUtils]: 21: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,613 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,614 INFO L290 TraceCheckUtils]: 23: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,614 INFO L290 TraceCheckUtils]: 24: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,614 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,614 INFO L290 TraceCheckUtils]: 26: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,614 INFO L290 TraceCheckUtils]: 27: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,616 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2464#true} {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,616 INFO L290 TraceCheckUtils]: 29: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,616 INFO L290 TraceCheckUtils]: 30: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume true; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,617 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {2584#(<= (+ |mult_#in~m| 1) 0)} {2523#(not (<= mult_~m 0))} #45#return; {2465#false} is VALID [2022-02-20 18:14:06,617 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,617 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume !(~m < 0); {2522#(< 0 (+ mult_~m 1))} is VALID [2022-02-20 18:14:06,618 INFO L290 TraceCheckUtils]: 2: Hoare triple {2522#(< 0 (+ mult_~m 1))} assume !(0 == ~m); {2523#(not (<= mult_~m 0))} is VALID [2022-02-20 18:14:06,618 INFO L272 TraceCheckUtils]: 3: Hoare triple {2523#(not (<= mult_~m 0))} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,618 INFO L290 TraceCheckUtils]: 4: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2556#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,618 INFO L290 TraceCheckUtils]: 5: Hoare triple {2556#(= |mult_#in~m| mult_~m)} assume ~m < 0; {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} is VALID [2022-02-20 18:14:06,618 INFO L272 TraceCheckUtils]: 6: Hoare triple {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} call #t~ret4 := mult(~n, -~m); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 8: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L272 TraceCheckUtils]: 10: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 13: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L272 TraceCheckUtils]: 14: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,619 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 16: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L272 TraceCheckUtils]: 18: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 19: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 20: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 21: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 22: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 24: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,620 INFO L290 TraceCheckUtils]: 25: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L290 TraceCheckUtils]: 27: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L290 TraceCheckUtils]: 28: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L290 TraceCheckUtils]: 30: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,621 INFO L290 TraceCheckUtils]: 31: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,622 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2464#true} {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,622 INFO L290 TraceCheckUtils]: 33: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,622 INFO L290 TraceCheckUtils]: 34: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume true; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,623 INFO L284 TraceCheckUtils]: 35: Hoare quadruple {2584#(<= (+ |mult_#in~m| 1) 0)} {2523#(not (<= mult_~m 0))} #45#return; {2465#false} is VALID [2022-02-20 18:14:06,623 INFO L290 TraceCheckUtils]: 36: Hoare triple {2465#false} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2465#false} is VALID [2022-02-20 18:14:06,623 INFO L290 TraceCheckUtils]: 37: Hoare triple {2465#false} assume true; {2465#false} is VALID [2022-02-20 18:14:06,623 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {2465#false} {2464#true} #49#return; {2465#false} is VALID [2022-02-20 18:14:06,623 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {2464#true} is VALID [2022-02-20 18:14:06,623 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L272 TraceCheckUtils]: 4: Hoare triple {2464#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L272 TraceCheckUtils]: 8: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,624 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L290 TraceCheckUtils]: 14: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2464#true} {2464#true} #47#return; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L272 TraceCheckUtils]: 18: Hoare triple {2464#true} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {2464#true} is VALID [2022-02-20 18:14:06,625 INFO L290 TraceCheckUtils]: 19: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,626 INFO L290 TraceCheckUtils]: 20: Hoare triple {2464#true} assume !(~m < 0); {2522#(< 0 (+ mult_~m 1))} is VALID [2022-02-20 18:14:06,626 INFO L290 TraceCheckUtils]: 21: Hoare triple {2522#(< 0 (+ mult_~m 1))} assume !(0 == ~m); {2523#(not (<= mult_~m 0))} is VALID [2022-02-20 18:14:06,626 INFO L272 TraceCheckUtils]: 22: Hoare triple {2523#(not (<= mult_~m 0))} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,626 INFO L290 TraceCheckUtils]: 23: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2556#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 24: Hoare triple {2556#(= |mult_#in~m| mult_~m)} assume ~m < 0; {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} is VALID [2022-02-20 18:14:06,627 INFO L272 TraceCheckUtils]: 25: Hoare triple {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} call #t~ret4 := mult(~n, -~m); {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 26: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 27: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 28: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L272 TraceCheckUtils]: 29: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 30: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 31: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,627 INFO L290 TraceCheckUtils]: 32: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L272 TraceCheckUtils]: 33: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 34: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 35: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 36: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L272 TraceCheckUtils]: 37: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 38: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 39: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 40: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L290 TraceCheckUtils]: 41: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,628 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 43: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 44: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 46: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 47: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 49: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,629 INFO L290 TraceCheckUtils]: 50: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,630 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {2464#true} {2557#(and (= |mult_#in~m| mult_~m) (<= (+ mult_~m 1) 0))} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,630 INFO L290 TraceCheckUtils]: 52: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,630 INFO L290 TraceCheckUtils]: 53: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume true; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,631 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {2584#(<= (+ |mult_#in~m| 1) 0)} {2523#(not (<= mult_~m 0))} #45#return; {2465#false} is VALID [2022-02-20 18:14:06,631 INFO L290 TraceCheckUtils]: 55: Hoare triple {2465#false} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2465#false} is VALID [2022-02-20 18:14:06,631 INFO L290 TraceCheckUtils]: 56: Hoare triple {2465#false} assume true; {2465#false} is VALID [2022-02-20 18:14:06,631 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {2465#false} {2464#true} #49#return; {2465#false} is VALID [2022-02-20 18:14:06,631 INFO L290 TraceCheckUtils]: 58: Hoare triple {2465#false} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {2465#false} is VALID [2022-02-20 18:14:06,632 INFO L290 TraceCheckUtils]: 59: Hoare triple {2465#false} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {2465#false} is VALID [2022-02-20 18:14:06,632 INFO L290 TraceCheckUtils]: 60: Hoare triple {2465#false} assume !false; {2465#false} is VALID [2022-02-20 18:14:06,632 INFO L134 CoverageAnalysis]: Checked inductivity of 153 backedges. 36 proven. 11 refuted. 0 times theorem prover too weak. 106 trivial. 0 not checked. [2022-02-20 18:14:06,632 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:14:06,632 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2030896896] [2022-02-20 18:14:06,632 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2030896896] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:14:06,632 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [261594229] [2022-02-20 18:14:06,632 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:14:06,633 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:06,633 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:14:06,634 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:14:06,635 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-02-20 18:14:06,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,679 INFO L263 TraceCheckSpWp]: Trace formula consists of 196 conjuncts, 6 conjunts are in the unsatisfiable core [2022-02-20 18:14:06,686 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:06,687 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:14:06,829 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L272 TraceCheckUtils]: 4: Hoare triple {2464#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L272 TraceCheckUtils]: 8: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,830 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 14: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2464#true} {2464#true} #47#return; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {2464#true} is VALID [2022-02-20 18:14:06,831 INFO L272 TraceCheckUtils]: 18: Hoare triple {2464#true} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {2464#true} is VALID [2022-02-20 18:14:06,832 INFO L290 TraceCheckUtils]: 19: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2681#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,832 INFO L290 TraceCheckUtils]: 20: Hoare triple {2681#(<= |mult_#in~m| mult_~m)} assume !(~m < 0); {2681#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,832 INFO L290 TraceCheckUtils]: 21: Hoare triple {2681#(<= |mult_#in~m| mult_~m)} assume !(0 == ~m); {2681#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,832 INFO L272 TraceCheckUtils]: 22: Hoare triple {2681#(<= |mult_#in~m| mult_~m)} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,833 INFO L290 TraceCheckUtils]: 23: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2681#(<= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:06,833 INFO L290 TraceCheckUtils]: 24: Hoare triple {2681#(<= |mult_#in~m| mult_~m)} assume ~m < 0; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,833 INFO L272 TraceCheckUtils]: 25: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} call #t~ret4 := mult(~n, -~m); {2464#true} is VALID [2022-02-20 18:14:06,833 INFO L290 TraceCheckUtils]: 26: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 27: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 28: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L272 TraceCheckUtils]: 29: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 30: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 31: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 32: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L272 TraceCheckUtils]: 33: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 34: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,834 INFO L290 TraceCheckUtils]: 35: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 36: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L272 TraceCheckUtils]: 37: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 38: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 39: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 40: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 41: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 43: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,835 INFO L290 TraceCheckUtils]: 44: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L290 TraceCheckUtils]: 46: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L290 TraceCheckUtils]: 47: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L290 TraceCheckUtils]: 49: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:06,836 INFO L290 TraceCheckUtils]: 50: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:06,837 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {2464#true} {2584#(<= (+ |mult_#in~m| 1) 0)} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,837 INFO L290 TraceCheckUtils]: 52: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,837 INFO L290 TraceCheckUtils]: 53: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume true; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:06,838 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {2584#(<= (+ |mult_#in~m| 1) 0)} {2681#(<= |mult_#in~m| mult_~m)} #45#return; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:06,838 INFO L290 TraceCheckUtils]: 55: Hoare triple {2787#(<= |mult_#in~m| 0)} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:06,838 INFO L290 TraceCheckUtils]: 56: Hoare triple {2787#(<= |mult_#in~m| 0)} assume true; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:06,839 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {2787#(<= |mult_#in~m| 0)} {2464#true} #49#return; {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:14:06,839 INFO L290 TraceCheckUtils]: 58: Hoare triple {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:14:06,839 INFO L290 TraceCheckUtils]: 59: Hoare triple {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {2465#false} is VALID [2022-02-20 18:14:06,840 INFO L290 TraceCheckUtils]: 60: Hoare triple {2465#false} assume !false; {2465#false} is VALID [2022-02-20 18:14:06,840 INFO L134 CoverageAnalysis]: Checked inductivity of 153 backedges. 35 proven. 17 refuted. 0 times theorem prover too weak. 101 trivial. 0 not checked. [2022-02-20 18:14:06,840 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:14:07,262 INFO L290 TraceCheckUtils]: 60: Hoare triple {2465#false} assume !false; {2465#false} is VALID [2022-02-20 18:14:07,263 INFO L290 TraceCheckUtils]: 59: Hoare triple {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {2465#false} is VALID [2022-02-20 18:14:07,263 INFO L290 TraceCheckUtils]: 58: Hoare triple {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:14:07,264 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {2787#(<= |mult_#in~m| 0)} {2464#true} #49#return; {2797#(<= |ULTIMATE.start_main_~m~0#1| 0)} is VALID [2022-02-20 18:14:07,264 INFO L290 TraceCheckUtils]: 56: Hoare triple {2787#(<= |mult_#in~m| 0)} assume true; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:07,264 INFO L290 TraceCheckUtils]: 55: Hoare triple {2787#(<= |mult_#in~m| 0)} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:07,265 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {2584#(<= (+ |mult_#in~m| 1) 0)} {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} #45#return; {2787#(<= |mult_#in~m| 0)} is VALID [2022-02-20 18:14:07,265 INFO L290 TraceCheckUtils]: 53: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume true; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:07,265 INFO L290 TraceCheckUtils]: 52: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;#res := #t~ret4;havoc #t~ret4; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:07,266 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {2464#true} {2584#(<= (+ |mult_#in~m| 1) 0)} #43#return; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:07,266 INFO L290 TraceCheckUtils]: 50: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,266 INFO L290 TraceCheckUtils]: 49: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:07,266 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:07,266 INFO L290 TraceCheckUtils]: 47: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,266 INFO L290 TraceCheckUtils]: 46: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:07,266 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 44: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 43: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 41: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 40: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 39: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 38: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L272 TraceCheckUtils]: 37: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:07,267 INFO L290 TraceCheckUtils]: 36: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 35: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 34: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L272 TraceCheckUtils]: 33: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 32: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 31: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 30: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L272 TraceCheckUtils]: 29: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 28: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 27: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,268 INFO L290 TraceCheckUtils]: 26: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,269 INFO L272 TraceCheckUtils]: 25: Hoare triple {2584#(<= (+ |mult_#in~m| 1) 0)} call #t~ret4 := mult(~n, -~m); {2464#true} is VALID [2022-02-20 18:14:07,270 INFO L290 TraceCheckUtils]: 24: Hoare triple {2922#(or (<= (+ |mult_#in~m| 1) 0) (not (< mult_~m 0)))} assume ~m < 0; {2584#(<= (+ |mult_#in~m| 1) 0)} is VALID [2022-02-20 18:14:07,270 INFO L290 TraceCheckUtils]: 23: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2922#(or (<= (+ |mult_#in~m| 1) 0) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:07,270 INFO L272 TraceCheckUtils]: 22: Hoare triple {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:07,271 INFO L290 TraceCheckUtils]: 21: Hoare triple {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} assume !(0 == ~m); {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:07,271 INFO L290 TraceCheckUtils]: 20: Hoare triple {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} assume !(~m < 0); {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:07,271 INFO L290 TraceCheckUtils]: 19: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2828#(or (<= 1 mult_~m) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:07,271 INFO L272 TraceCheckUtils]: 18: Hoare triple {2464#true} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 17: Hoare triple {2464#true} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2464#true} {2464#true} #47#return; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 15: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 14: Hoare triple {2464#true} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {2464#true} {2464#true} #45#return; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 12: Hoare triple {2464#true} assume true; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 11: Hoare triple {2464#true} assume 0 == ~m;#res := 0; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 10: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L290 TraceCheckUtils]: 9: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,272 INFO L272 TraceCheckUtils]: 8: Hoare triple {2464#true} call #t~ret5 := mult(~n, ~m - 1); {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 7: Hoare triple {2464#true} assume !(0 == ~m); {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 6: Hoare triple {2464#true} assume !(~m < 0); {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 5: Hoare triple {2464#true} ~n := #in~n;~m := #in~m; {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L272 TraceCheckUtils]: 4: Hoare triple {2464#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 3: Hoare triple {2464#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 2: Hoare triple {2464#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 1: Hoare triple {2464#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {2464#true} is VALID [2022-02-20 18:14:07,273 INFO L290 TraceCheckUtils]: 0: Hoare triple {2464#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {2464#true} is VALID [2022-02-20 18:14:07,274 INFO L134 CoverageAnalysis]: Checked inductivity of 153 backedges. 35 proven. 18 refuted. 0 times theorem prover too weak. 100 trivial. 0 not checked. [2022-02-20 18:14:07,274 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [261594229] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:14:07,274 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:14:07,274 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 6, 7] total 12 [2022-02-20 18:14:07,274 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1321273156] [2022-02-20 18:14:07,274 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:14:07,276 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) Word has length 61 [2022-02-20 18:14:07,282 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:14:07,283 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 18:14:07,307 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:07,307 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-02-20 18:14:07,307 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:14:07,308 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-02-20 18:14:07,309 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=92, Unknown=0, NotChecked=0, Total=132 [2022-02-20 18:14:07,309 INFO L87 Difference]: Start difference. First operand 56 states and 91 transitions. Second operand has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 18:14:07,497 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:07,497 INFO L93 Difference]: Finished difference Result 82 states and 128 transitions. [2022-02-20 18:14:07,497 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 18:14:07,497 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) Word has length 61 [2022-02-20 18:14:07,498 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:14:07,498 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 18:14:07,501 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 50 transitions. [2022-02-20 18:14:07,502 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 18:14:07,503 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 50 transitions. [2022-02-20 18:14:07,503 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 50 transitions. [2022-02-20 18:14:07,540 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:07,542 INFO L225 Difference]: With dead ends: 82 [2022-02-20 18:14:07,543 INFO L226 Difference]: Without dead ends: 44 [2022-02-20 18:14:07,544 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 146 GetRequests, 130 SyntacticMatches, 3 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 38 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=65, Invalid=145, Unknown=0, NotChecked=0, Total=210 [2022-02-20 18:14:07,545 INFO L933 BasicCegarLoop]: 18 mSDtfsCounter, 21 mSDsluCounter, 66 mSDsCounter, 0 mSdLazyCounter, 78 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 22 SdHoareTripleChecker+Valid, 84 SdHoareTripleChecker+Invalid, 86 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 78 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 18:14:07,545 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [22 Valid, 84 Invalid, 86 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 78 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 18:14:07,546 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2022-02-20 18:14:07,567 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 44. [2022-02-20 18:14:07,567 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:14:07,568 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) [2022-02-20 18:14:07,568 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) [2022-02-20 18:14:07,568 INFO L87 Difference]: Start difference. First operand 44 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) [2022-02-20 18:14:07,570 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:07,570 INFO L93 Difference]: Finished difference Result 44 states and 57 transitions. [2022-02-20 18:14:07,570 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 57 transitions. [2022-02-20 18:14:07,570 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:07,570 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:07,571 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) Second operand 44 states. [2022-02-20 18:14:07,571 INFO L87 Difference]: Start difference. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) Second operand 44 states. [2022-02-20 18:14:07,573 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:07,573 INFO L93 Difference]: Finished difference Result 44 states and 57 transitions. [2022-02-20 18:14:07,573 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 57 transitions. [2022-02-20 18:14:07,573 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:07,574 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:07,574 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:14:07,574 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:14:07,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 7 states have call successors, (7), 3 states have call predecessors, (7), 6 states have return successors, (17), 9 states have call predecessors, (17), 7 states have call successors, (17) [2022-02-20 18:14:07,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 57 transitions. [2022-02-20 18:14:07,576 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 57 transitions. Word has length 61 [2022-02-20 18:14:07,576 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:14:07,576 INFO L470 AbstractCegarLoop]: Abstraction has 44 states and 57 transitions. [2022-02-20 18:14:07,576 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 10 states have (on average 3.5) internal successors, (35), 12 states have internal predecessors, (35), 6 states have call successors, (8), 1 states have call predecessors, (8), 4 states have return successors, (9), 5 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 18:14:07,576 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 57 transitions. [2022-02-20 18:14:07,577 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-02-20 18:14:07,577 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:14:07,578 INFO L514 BasicCegarLoop]: trace histogram [7, 7, 7, 5, 5, 5, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:14:07,613 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-02-20 18:14:07,795 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:07,796 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:14:07,797 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:14:07,797 INFO L85 PathProgramCache]: Analyzing trace with hash 1710256294, now seen corresponding path program 5 times [2022-02-20 18:14:07,797 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:14:07,797 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [86009332] [2022-02-20 18:14:07,797 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:14:07,797 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:14:07,828 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:07,879 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:14:07,887 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:07,928 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:07,934 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:07,971 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:07,975 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,060 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:08,064 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,101 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,102 INFO L290 TraceCheckUtils]: 1: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,102 INFO L290 TraceCheckUtils]: 2: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,103 INFO L290 TraceCheckUtils]: 3: Hoare triple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,103 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,104 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,104 INFO L290 TraceCheckUtils]: 1: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,105 INFO L290 TraceCheckUtils]: 2: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,105 INFO L272 TraceCheckUtils]: 3: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,105 INFO L290 TraceCheckUtils]: 4: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,105 INFO L290 TraceCheckUtils]: 5: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,106 INFO L290 TraceCheckUtils]: 6: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,106 INFO L290 TraceCheckUtils]: 7: Hoare triple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,107 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,107 INFO L290 TraceCheckUtils]: 9: Hoare triple {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,108 INFO L290 TraceCheckUtils]: 10: Hoare triple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,108 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} is VALID [2022-02-20 18:14:08,109 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,109 INFO L290 TraceCheckUtils]: 1: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,109 INFO L290 TraceCheckUtils]: 2: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,109 INFO L272 TraceCheckUtils]: 3: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,110 INFO L290 TraceCheckUtils]: 4: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,110 INFO L290 TraceCheckUtils]: 5: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,110 INFO L290 TraceCheckUtils]: 6: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,111 INFO L272 TraceCheckUtils]: 7: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,111 INFO L290 TraceCheckUtils]: 8: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,111 INFO L290 TraceCheckUtils]: 9: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,111 INFO L290 TraceCheckUtils]: 10: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,112 INFO L290 TraceCheckUtils]: 11: Hoare triple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,113 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,113 INFO L290 TraceCheckUtils]: 13: Hoare triple {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,113 INFO L290 TraceCheckUtils]: 14: Hoare triple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,114 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} is VALID [2022-02-20 18:14:08,115 INFO L290 TraceCheckUtils]: 16: Hoare triple {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,115 INFO L290 TraceCheckUtils]: 17: Hoare triple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} assume true; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,116 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3304#(and (<= (+ 6 |mult_#t~ret5|) (+ (* 2 mult_~n) (* 2 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 2 mult_~n) (* 2 |mult_#in~m|)) (+ 6 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,116 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,117 INFO L290 TraceCheckUtils]: 1: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,117 INFO L290 TraceCheckUtils]: 2: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,117 INFO L272 TraceCheckUtils]: 3: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,117 INFO L290 TraceCheckUtils]: 4: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,118 INFO L290 TraceCheckUtils]: 5: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,118 INFO L290 TraceCheckUtils]: 6: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,118 INFO L272 TraceCheckUtils]: 7: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,118 INFO L290 TraceCheckUtils]: 8: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,119 INFO L290 TraceCheckUtils]: 9: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,119 INFO L290 TraceCheckUtils]: 10: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,119 INFO L272 TraceCheckUtils]: 11: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,119 INFO L290 TraceCheckUtils]: 12: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,120 INFO L290 TraceCheckUtils]: 13: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,120 INFO L290 TraceCheckUtils]: 14: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,120 INFO L290 TraceCheckUtils]: 15: Hoare triple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,121 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,122 INFO L290 TraceCheckUtils]: 17: Hoare triple {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,122 INFO L290 TraceCheckUtils]: 18: Hoare triple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,123 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} is VALID [2022-02-20 18:14:08,123 INFO L290 TraceCheckUtils]: 20: Hoare triple {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,124 INFO L290 TraceCheckUtils]: 21: Hoare triple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} assume true; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,125 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3304#(and (<= (+ 6 |mult_#t~ret5|) (+ (* 2 mult_~n) (* 2 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 2 mult_~n) (* 2 |mult_#in~m|)) (+ 6 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,125 INFO L290 TraceCheckUtils]: 23: Hoare triple {3304#(and (<= (+ 6 |mult_#t~ret5|) (+ (* 2 mult_~n) (* 2 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 2 mult_~n) (* 2 |mult_#in~m|)) (+ 6 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} is VALID [2022-02-20 18:14:08,126 INFO L290 TraceCheckUtils]: 24: Hoare triple {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} assume true; {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} is VALID [2022-02-20 18:14:08,126 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} {3233#true} #47#return; {3261#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 6)))} is VALID [2022-02-20 18:14:08,126 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 18:14:08,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,188 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:08,192 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,261 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:08,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,290 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,290 INFO L290 TraceCheckUtils]: 1: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,290 INFO L290 TraceCheckUtils]: 2: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,291 INFO L290 TraceCheckUtils]: 3: Hoare triple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,292 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,292 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,292 INFO L290 TraceCheckUtils]: 1: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,293 INFO L290 TraceCheckUtils]: 2: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,293 INFO L272 TraceCheckUtils]: 3: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,293 INFO L290 TraceCheckUtils]: 4: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,294 INFO L290 TraceCheckUtils]: 5: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,294 INFO L290 TraceCheckUtils]: 6: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,294 INFO L290 TraceCheckUtils]: 7: Hoare triple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,295 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,296 INFO L290 TraceCheckUtils]: 9: Hoare triple {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,296 INFO L290 TraceCheckUtils]: 10: Hoare triple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,297 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3343#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:08,297 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,298 INFO L290 TraceCheckUtils]: 1: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,298 INFO L290 TraceCheckUtils]: 2: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,298 INFO L272 TraceCheckUtils]: 3: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,298 INFO L290 TraceCheckUtils]: 4: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,299 INFO L290 TraceCheckUtils]: 5: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,299 INFO L290 TraceCheckUtils]: 6: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,299 INFO L272 TraceCheckUtils]: 7: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,299 INFO L290 TraceCheckUtils]: 8: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,300 INFO L290 TraceCheckUtils]: 9: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,300 INFO L290 TraceCheckUtils]: 10: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,300 INFO L290 TraceCheckUtils]: 11: Hoare triple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,301 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,302 INFO L290 TraceCheckUtils]: 13: Hoare triple {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,302 INFO L290 TraceCheckUtils]: 14: Hoare triple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,303 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3343#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:08,303 INFO L290 TraceCheckUtils]: 16: Hoare triple {3343#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:08,304 INFO L290 TraceCheckUtils]: 17: Hoare triple {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:08,305 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3262#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 6)))} #49#return; {3282#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:14:08,305 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {3233#true} is VALID [2022-02-20 18:14:08,305 INFO L290 TraceCheckUtils]: 1: Hoare triple {3233#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {3233#true} is VALID [2022-02-20 18:14:08,305 INFO L290 TraceCheckUtils]: 2: Hoare triple {3233#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {3233#true} is VALID [2022-02-20 18:14:08,305 INFO L290 TraceCheckUtils]: 3: Hoare triple {3233#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {3233#true} is VALID [2022-02-20 18:14:08,305 INFO L272 TraceCheckUtils]: 4: Hoare triple {3233#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {3233#true} is VALID [2022-02-20 18:14:08,306 INFO L290 TraceCheckUtils]: 5: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,306 INFO L290 TraceCheckUtils]: 6: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,306 INFO L290 TraceCheckUtils]: 7: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,306 INFO L272 TraceCheckUtils]: 8: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,307 INFO L290 TraceCheckUtils]: 9: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,307 INFO L290 TraceCheckUtils]: 10: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,307 INFO L290 TraceCheckUtils]: 11: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,307 INFO L272 TraceCheckUtils]: 12: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,308 INFO L290 TraceCheckUtils]: 13: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,308 INFO L290 TraceCheckUtils]: 14: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,308 INFO L290 TraceCheckUtils]: 15: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,308 INFO L272 TraceCheckUtils]: 16: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,309 INFO L290 TraceCheckUtils]: 17: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,309 INFO L290 TraceCheckUtils]: 18: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,309 INFO L290 TraceCheckUtils]: 19: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,310 INFO L290 TraceCheckUtils]: 20: Hoare triple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} assume true; {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:08,310 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3330#(and (<= (* 2 |mult_#in~m|) |mult_#res|) (<= |mult_#res| 0))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,311 INFO L290 TraceCheckUtils]: 22: Hoare triple {3327#(and (= |mult_#in~n| mult_~n) (<= (+ 2 |mult_#t~ret5|) (* 2 |mult_#in~m|)) (<= (* 2 |mult_#in~m|) (+ 2 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,311 INFO L290 TraceCheckUtils]: 23: Hoare triple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} assume true; {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} is VALID [2022-02-20 18:14:08,312 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {3328#(and (<= (+ |mult_#res| 2) (+ (* 2 |mult_#in~m|) |mult_#in~n|)) (<= (+ (* 2 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 2)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} is VALID [2022-02-20 18:14:08,313 INFO L290 TraceCheckUtils]: 25: Hoare triple {3318#(and (= |mult_#in~n| mult_~n) (<= (+ |mult_#t~ret5| 4) (+ (* 2 |mult_#in~m|) mult_~n)) (<= (+ (* 2 |mult_#in~m|) mult_~n) (+ |mult_#t~ret5| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,313 INFO L290 TraceCheckUtils]: 26: Hoare triple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} assume true; {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} is VALID [2022-02-20 18:14:08,314 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3319#(and (<= (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 4)) (<= (+ |mult_#res| 4) (+ (* 2 |mult_#in~n|) (* 2 |mult_#in~m|))))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3304#(and (<= (+ 6 |mult_#t~ret5|) (+ (* 2 mult_~n) (* 2 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 2 mult_~n) (* 2 |mult_#in~m|)) (+ 6 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,314 INFO L290 TraceCheckUtils]: 28: Hoare triple {3304#(and (<= (+ 6 |mult_#t~ret5|) (+ (* 2 mult_~n) (* 2 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 2 mult_~n) (* 2 |mult_#in~m|)) (+ 6 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} is VALID [2022-02-20 18:14:08,315 INFO L290 TraceCheckUtils]: 29: Hoare triple {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} assume true; {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} is VALID [2022-02-20 18:14:08,315 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {3305#(and (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|))) (<= (+ (* 3 |mult_#in~n|) (* 2 |mult_#in~m|)) (+ |mult_#res| 6)))} {3233#true} #47#return; {3261#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 6)))} is VALID [2022-02-20 18:14:08,316 INFO L290 TraceCheckUtils]: 31: Hoare triple {3261#(and (<= (+ |ULTIMATE.start_main_#t~ret8#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_#t~ret8#1| 6)))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {3262#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 6)))} is VALID [2022-02-20 18:14:08,316 INFO L272 TraceCheckUtils]: 32: Hoare triple {3262#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 6)))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {3233#true} is VALID [2022-02-20 18:14:08,316 INFO L290 TraceCheckUtils]: 33: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,317 INFO L290 TraceCheckUtils]: 34: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,317 INFO L290 TraceCheckUtils]: 35: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,317 INFO L272 TraceCheckUtils]: 36: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,317 INFO L290 TraceCheckUtils]: 37: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:08,318 INFO L290 TraceCheckUtils]: 38: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:08,318 INFO L290 TraceCheckUtils]: 39: Hoare triple {3320#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:08,318 INFO L272 TraceCheckUtils]: 40: Hoare triple {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:08,318 INFO L290 TraceCheckUtils]: 41: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,319 INFO L290 TraceCheckUtils]: 42: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:08,319 INFO L290 TraceCheckUtils]: 43: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,319 INFO L290 TraceCheckUtils]: 44: Hoare triple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:08,320 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {3352#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {3321#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:08,321 INFO L290 TraceCheckUtils]: 46: Hoare triple {3350#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,321 INFO L290 TraceCheckUtils]: 47: Hoare triple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:08,322 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {3351#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3343#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:08,322 INFO L290 TraceCheckUtils]: 49: Hoare triple {3343#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:08,323 INFO L290 TraceCheckUtils]: 50: Hoare triple {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:08,323 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {3344#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3262#(and (<= (+ |ULTIMATE.start_main_~res1~0#1| 6) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|))) (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* 2 |ULTIMATE.start_main_~n~0#1|)) (+ |ULTIMATE.start_main_~res1~0#1| 6)))} #49#return; {3282#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:14:08,324 INFO L290 TraceCheckUtils]: 52: Hoare triple {3282#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {3283#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} is VALID [2022-02-20 18:14:08,324 INFO L290 TraceCheckUtils]: 53: Hoare triple {3283#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {3234#false} is VALID [2022-02-20 18:14:08,324 INFO L290 TraceCheckUtils]: 54: Hoare triple {3234#false} assume !false; {3234#false} is VALID [2022-02-20 18:14:08,325 INFO L134 CoverageAnalysis]: Checked inductivity of 125 backedges. 14 proven. 70 refuted. 0 times theorem prover too weak. 41 trivial. 0 not checked. [2022-02-20 18:14:08,325 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:14:08,325 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [86009332] [2022-02-20 18:14:08,325 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [86009332] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:14:08,325 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2104166610] [2022-02-20 18:14:08,325 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2022-02-20 18:14:08,325 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:08,326 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:14:08,335 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:14:08,336 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-02-20 18:14:08,383 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 8 check-sat command(s) [2022-02-20 18:14:08,383 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:14:08,385 INFO L263 TraceCheckSpWp]: Trace formula consists of 178 conjuncts, 85 conjunts are in the unsatisfiable core [2022-02-20 18:14:08,399 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:08,400 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:14:09,549 INFO L290 TraceCheckUtils]: 0: Hoare triple {3233#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {3233#true} is VALID [2022-02-20 18:14:09,549 INFO L290 TraceCheckUtils]: 1: Hoare triple {3233#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {3233#true} is VALID [2022-02-20 18:14:09,549 INFO L290 TraceCheckUtils]: 2: Hoare triple {3233#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {3233#true} is VALID [2022-02-20 18:14:09,549 INFO L290 TraceCheckUtils]: 3: Hoare triple {3233#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {3233#true} is VALID [2022-02-20 18:14:09,549 INFO L272 TraceCheckUtils]: 4: Hoare triple {3233#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {3233#true} is VALID [2022-02-20 18:14:09,550 INFO L290 TraceCheckUtils]: 5: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,550 INFO L290 TraceCheckUtils]: 6: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,550 INFO L290 TraceCheckUtils]: 7: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,551 INFO L272 TraceCheckUtils]: 8: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:09,551 INFO L290 TraceCheckUtils]: 9: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,551 INFO L290 TraceCheckUtils]: 10: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,551 INFO L290 TraceCheckUtils]: 11: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,552 INFO L272 TraceCheckUtils]: 12: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:09,552 INFO L290 TraceCheckUtils]: 13: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,552 INFO L290 TraceCheckUtils]: 14: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,552 INFO L290 TraceCheckUtils]: 15: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,552 INFO L272 TraceCheckUtils]: 16: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:09,553 INFO L290 TraceCheckUtils]: 17: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:09,553 INFO L290 TraceCheckUtils]: 18: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3410#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:09,553 INFO L290 TraceCheckUtils]: 19: Hoare triple {3410#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:09,554 INFO L290 TraceCheckUtils]: 20: Hoare triple {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:09,555 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3421#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:09,555 INFO L290 TraceCheckUtils]: 22: Hoare triple {3421#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:09,556 INFO L290 TraceCheckUtils]: 23: Hoare triple {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:09,557 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3432#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,557 INFO L290 TraceCheckUtils]: 25: Hoare triple {3432#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,557 INFO L290 TraceCheckUtils]: 26: Hoare triple {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} assume true; {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,558 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3443#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} is VALID [2022-02-20 18:14:09,559 INFO L290 TraceCheckUtils]: 28: Hoare triple {3443#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3447#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:09,559 INFO L290 TraceCheckUtils]: 29: Hoare triple {3447#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} assume true; {3447#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:09,560 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {3447#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} {3233#true} #47#return; {3454#(and (= (* 3 |ULTIMATE.start_main_~m~0#1|) |ULTIMATE.start_main_#t~ret8#1|) (not (< |ULTIMATE.start_main_~n~0#1| 3)) (<= |ULTIMATE.start_main_~n~0#1| 3))} is VALID [2022-02-20 18:14:09,560 INFO L290 TraceCheckUtils]: 31: Hoare triple {3454#(and (= (* 3 |ULTIMATE.start_main_~m~0#1|) |ULTIMATE.start_main_#t~ret8#1|) (not (< |ULTIMATE.start_main_~n~0#1| 3)) (<= |ULTIMATE.start_main_~n~0#1| 3))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {3458#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} is VALID [2022-02-20 18:14:09,561 INFO L272 TraceCheckUtils]: 32: Hoare triple {3458#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {3233#true} is VALID [2022-02-20 18:14:09,561 INFO L290 TraceCheckUtils]: 33: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,561 INFO L290 TraceCheckUtils]: 34: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,561 INFO L290 TraceCheckUtils]: 35: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,562 INFO L272 TraceCheckUtils]: 36: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:09,562 INFO L290 TraceCheckUtils]: 37: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,562 INFO L290 TraceCheckUtils]: 38: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,562 INFO L290 TraceCheckUtils]: 39: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:09,562 INFO L272 TraceCheckUtils]: 40: Hoare triple {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3233#true} is VALID [2022-02-20 18:14:09,563 INFO L290 TraceCheckUtils]: 41: Hoare triple {3233#true} ~n := #in~n;~m := #in~m; {3329#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:09,563 INFO L290 TraceCheckUtils]: 42: Hoare triple {3329#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {3410#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:09,563 INFO L290 TraceCheckUtils]: 43: Hoare triple {3410#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:09,564 INFO L290 TraceCheckUtils]: 44: Hoare triple {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:09,565 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {3414#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3421#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:09,565 INFO L290 TraceCheckUtils]: 46: Hoare triple {3421#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:09,566 INFO L290 TraceCheckUtils]: 47: Hoare triple {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:09,567 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {3425#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {3284#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {3432#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,567 INFO L290 TraceCheckUtils]: 49: Hoare triple {3432#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,567 INFO L290 TraceCheckUtils]: 50: Hoare triple {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} assume true; {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:09,569 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {3436#(and (not (< |mult_#in~m| 2)) (= (+ (* (- 1) |mult_#in~n|) |mult_#res|) |mult_#in~n|) (<= |mult_#in~m| 2))} {3458#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} #49#return; {3519#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (= (mod |ULTIMATE.start_main_#t~ret9#1| 2) 0) (not (< (div |ULTIMATE.start_main_#t~ret9#1| 2) 3)) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2)) (<= (div |ULTIMATE.start_main_#t~ret9#1| 2) 3))} is VALID [2022-02-20 18:14:09,569 INFO L290 TraceCheckUtils]: 52: Hoare triple {3519#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (= (mod |ULTIMATE.start_main_#t~ret9#1| 2) 0) (not (< (div |ULTIMATE.start_main_#t~ret9#1| 2) 3)) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2)) (<= (div |ULTIMATE.start_main_#t~ret9#1| 2) 3))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {3523#(and (= (mod |ULTIMATE.start_main_~res2~0#1| 2) 0) (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2) (not (< (div |ULTIMATE.start_main_~res2~0#1| 2) 3)) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2)) (<= (div |ULTIMATE.start_main_~res2~0#1| 2) 3))} is VALID [2022-02-20 18:14:09,570 INFO L290 TraceCheckUtils]: 53: Hoare triple {3523#(and (= (mod |ULTIMATE.start_main_~res2~0#1| 2) 0) (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2) (not (< (div |ULTIMATE.start_main_~res2~0#1| 2) 3)) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 2)) (<= (div |ULTIMATE.start_main_~res2~0#1| 2) 3))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {3234#false} is VALID [2022-02-20 18:14:09,570 INFO L290 TraceCheckUtils]: 54: Hoare triple {3234#false} assume !false; {3234#false} is VALID [2022-02-20 18:14:09,570 INFO L134 CoverageAnalysis]: Checked inductivity of 125 backedges. 2 proven. 62 refuted. 0 times theorem prover too weak. 61 trivial. 0 not checked. [2022-02-20 18:14:09,570 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:14:27,549 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2104166610] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:14:27,549 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 18:14:27,549 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 16] total 34 [2022-02-20 18:14:27,549 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2035765780] [2022-02-20 18:14:27,549 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 18:14:27,550 INFO L78 Accepts]: Start accepts. Automaton has has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) Word has length 55 [2022-02-20 18:14:27,550 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:14:27,551 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) [2022-02-20 18:14:27,599 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:27,599 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 34 states [2022-02-20 18:14:27,599 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:14:27,600 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2022-02-20 18:14:27,600 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=187, Invalid=2357, Unknown=6, NotChecked=0, Total=2550 [2022-02-20 18:14:27,601 INFO L87 Difference]: Start difference. First operand 44 states and 57 transitions. Second operand has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) [2022-02-20 18:14:29,582 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:29,583 INFO L93 Difference]: Finished difference Result 62 states and 81 transitions. [2022-02-20 18:14:29,583 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2022-02-20 18:14:29,583 INFO L78 Accepts]: Start accepts. Automaton has has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) Word has length 55 [2022-02-20 18:14:29,583 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:14:29,583 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) [2022-02-20 18:14:29,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 49 transitions. [2022-02-20 18:14:29,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) [2022-02-20 18:14:29,585 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 49 transitions. [2022-02-20 18:14:29,585 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 49 transitions. [2022-02-20 18:14:29,629 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:14:29,630 INFO L225 Difference]: With dead ends: 62 [2022-02-20 18:14:29,630 INFO L226 Difference]: Without dead ends: 56 [2022-02-20 18:14:29,631 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 138 GetRequests, 72 SyntacticMatches, 6 SemanticMatches, 60 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 843 ImplicationChecksByTransitivity, 9.2s TimeCoverageRelationStatistics Valid=344, Invalid=3432, Unknown=6, NotChecked=0, Total=3782 [2022-02-20 18:14:29,631 INFO L933 BasicCegarLoop]: 19 mSDtfsCounter, 23 mSDsluCounter, 346 mSDsCounter, 0 mSdLazyCounter, 692 mSolverCounterSat, 20 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 365 SdHoareTripleChecker+Invalid, 712 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 20 IncrementalHoareTripleChecker+Valid, 692 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-02-20 18:14:29,632 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 365 Invalid, 712 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [20 Valid, 692 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-02-20 18:14:29,632 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-02-20 18:14:29,653 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 49. [2022-02-20 18:14:29,653 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:14:29,653 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) [2022-02-20 18:14:29,653 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) [2022-02-20 18:14:29,654 INFO L87 Difference]: Start difference. First operand 56 states. Second operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) [2022-02-20 18:14:29,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:29,656 INFO L93 Difference]: Finished difference Result 56 states and 74 transitions. [2022-02-20 18:14:29,656 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 74 transitions. [2022-02-20 18:14:29,656 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:29,656 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:29,656 INFO L74 IsIncluded]: Start isIncluded. First operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) Second operand 56 states. [2022-02-20 18:14:29,657 INFO L87 Difference]: Start difference. First operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) Second operand 56 states. [2022-02-20 18:14:29,659 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:14:29,660 INFO L93 Difference]: Finished difference Result 56 states and 74 transitions. [2022-02-20 18:14:29,660 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 74 transitions. [2022-02-20 18:14:29,660 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:14:29,660 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:14:29,660 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:14:29,660 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:14:29,660 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 49 states, 33 states have (on average 1.0909090909090908) internal successors, (36), 34 states have internal predecessors, (36), 8 states have call successors, (8), 3 states have call predecessors, (8), 7 states have return successors, (23), 11 states have call predecessors, (23), 8 states have call successors, (23) [2022-02-20 18:14:29,663 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 67 transitions. [2022-02-20 18:14:29,663 INFO L78 Accepts]: Start accepts. Automaton has 49 states and 67 transitions. Word has length 55 [2022-02-20 18:14:29,663 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:14:29,663 INFO L470 AbstractCegarLoop]: Abstraction has 49 states and 67 transitions. [2022-02-20 18:14:29,663 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 34 states, 31 states have (on average 1.3225806451612903) internal successors, (41), 22 states have internal predecessors, (41), 5 states have call successors, (5), 1 states have call predecessors, (5), 11 states have return successors, (12), 12 states have call predecessors, (12), 5 states have call successors, (12) [2022-02-20 18:14:29,664 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 67 transitions. [2022-02-20 18:14:29,664 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 70 [2022-02-20 18:14:29,664 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:14:29,665 INFO L514 BasicCegarLoop]: trace histogram [9, 9, 9, 7, 7, 7, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 18:14:29,684 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-02-20 18:14:29,882 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:29,882 INFO L402 AbstractCegarLoop]: === Iteration 9 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:14:29,883 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:14:29,883 INFO L85 PathProgramCache]: Analyzing trace with hash -1356577930, now seen corresponding path program 6 times [2022-02-20 18:14:29,883 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:14:29,883 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1066737592] [2022-02-20 18:14:29,883 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:14:29,883 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:14:29,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:29,969 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 4 [2022-02-20 18:14:29,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,028 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,084 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,088 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,170 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,172 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,203 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,204 INFO L290 TraceCheckUtils]: 1: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,204 INFO L290 TraceCheckUtils]: 2: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,205 INFO L290 TraceCheckUtils]: 3: Hoare triple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} assume true; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,206 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} is VALID [2022-02-20 18:14:30,207 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,207 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,208 INFO L290 TraceCheckUtils]: 2: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,208 INFO L272 TraceCheckUtils]: 3: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,208 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,209 INFO L290 TraceCheckUtils]: 5: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,209 INFO L290 TraceCheckUtils]: 6: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,209 INFO L290 TraceCheckUtils]: 7: Hoare triple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} assume true; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,211 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} is VALID [2022-02-20 18:14:30,211 INFO L290 TraceCheckUtils]: 9: Hoare triple {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,212 INFO L290 TraceCheckUtils]: 10: Hoare triple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} assume true; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,213 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} is VALID [2022-02-20 18:14:30,213 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,213 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,214 INFO L290 TraceCheckUtils]: 2: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,214 INFO L272 TraceCheckUtils]: 3: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,214 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,215 INFO L290 TraceCheckUtils]: 5: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,215 INFO L290 TraceCheckUtils]: 6: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,215 INFO L272 TraceCheckUtils]: 7: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,216 INFO L290 TraceCheckUtils]: 8: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,216 INFO L290 TraceCheckUtils]: 9: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,216 INFO L290 TraceCheckUtils]: 10: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,217 INFO L290 TraceCheckUtils]: 11: Hoare triple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} assume true; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,218 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} is VALID [2022-02-20 18:14:30,218 INFO L290 TraceCheckUtils]: 13: Hoare triple {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,219 INFO L290 TraceCheckUtils]: 14: Hoare triple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} assume true; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,220 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} is VALID [2022-02-20 18:14:30,220 INFO L290 TraceCheckUtils]: 16: Hoare triple {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,221 INFO L290 TraceCheckUtils]: 17: Hoare triple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} assume true; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,222 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4009#(and (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) (* 2 mult_~n)) (+ |mult_#t~ret5| 12)) (<= (+ |mult_#t~ret5| 12) (+ (* |mult_#in~m| 4) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,223 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,223 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,223 INFO L290 TraceCheckUtils]: 2: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,223 INFO L272 TraceCheckUtils]: 3: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,224 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,224 INFO L290 TraceCheckUtils]: 5: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,224 INFO L290 TraceCheckUtils]: 6: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,224 INFO L272 TraceCheckUtils]: 7: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,225 INFO L290 TraceCheckUtils]: 8: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,225 INFO L290 TraceCheckUtils]: 9: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,226 INFO L290 TraceCheckUtils]: 10: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,226 INFO L272 TraceCheckUtils]: 11: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,226 INFO L290 TraceCheckUtils]: 12: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,226 INFO L290 TraceCheckUtils]: 13: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,227 INFO L290 TraceCheckUtils]: 14: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,227 INFO L290 TraceCheckUtils]: 15: Hoare triple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} assume true; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,228 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} is VALID [2022-02-20 18:14:30,229 INFO L290 TraceCheckUtils]: 17: Hoare triple {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,229 INFO L290 TraceCheckUtils]: 18: Hoare triple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} assume true; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,230 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} is VALID [2022-02-20 18:14:30,231 INFO L290 TraceCheckUtils]: 20: Hoare triple {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,232 INFO L290 TraceCheckUtils]: 21: Hoare triple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} assume true; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,233 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4009#(and (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) (* 2 mult_~n)) (+ |mult_#t~ret5| 12)) (<= (+ |mult_#t~ret5| 12) (+ (* |mult_#in~m| 4) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,233 INFO L290 TraceCheckUtils]: 23: Hoare triple {4009#(and (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) (* 2 mult_~n)) (+ |mult_#t~ret5| 12)) (<= (+ |mult_#t~ret5| 12) (+ (* |mult_#in~m| 4) (* 2 mult_~n))))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} is VALID [2022-02-20 18:14:30,234 INFO L290 TraceCheckUtils]: 24: Hoare triple {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} assume true; {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} is VALID [2022-02-20 18:14:30,235 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} {3924#true} #47#return; {3952#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_#t~ret8#1| 12)) (<= (+ |ULTIMATE.start_main_#t~ret8#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} is VALID [2022-02-20 18:14:30,235 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 18:14:30,243 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,326 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,332 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,392 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,460 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,535 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 3 [2022-02-20 18:14:30,537 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,568 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,568 INFO L290 TraceCheckUtils]: 1: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,569 INFO L290 TraceCheckUtils]: 2: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,569 INFO L290 TraceCheckUtils]: 3: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,570 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,571 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,571 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,572 INFO L290 TraceCheckUtils]: 2: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,572 INFO L272 TraceCheckUtils]: 3: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,572 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,572 INFO L290 TraceCheckUtils]: 5: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,573 INFO L290 TraceCheckUtils]: 6: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,573 INFO L290 TraceCheckUtils]: 7: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,574 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,575 INFO L290 TraceCheckUtils]: 9: Hoare triple {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,575 INFO L290 TraceCheckUtils]: 10: Hoare triple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,576 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:30,577 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,577 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,577 INFO L290 TraceCheckUtils]: 2: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,577 INFO L272 TraceCheckUtils]: 3: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,578 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,578 INFO L290 TraceCheckUtils]: 5: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,579 INFO L290 TraceCheckUtils]: 6: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,579 INFO L272 TraceCheckUtils]: 7: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,579 INFO L290 TraceCheckUtils]: 8: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,579 INFO L290 TraceCheckUtils]: 9: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,580 INFO L290 TraceCheckUtils]: 10: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,580 INFO L290 TraceCheckUtils]: 11: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,581 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,582 INFO L290 TraceCheckUtils]: 13: Hoare triple {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,582 INFO L290 TraceCheckUtils]: 14: Hoare triple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,583 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:30,584 INFO L290 TraceCheckUtils]: 16: Hoare triple {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,584 INFO L290 TraceCheckUtils]: 17: Hoare triple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,585 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,585 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,586 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,586 INFO L290 TraceCheckUtils]: 2: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,586 INFO L272 TraceCheckUtils]: 3: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,586 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,587 INFO L290 TraceCheckUtils]: 5: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,587 INFO L290 TraceCheckUtils]: 6: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,587 INFO L272 TraceCheckUtils]: 7: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,588 INFO L290 TraceCheckUtils]: 8: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,588 INFO L290 TraceCheckUtils]: 9: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,588 INFO L290 TraceCheckUtils]: 10: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,589 INFO L272 TraceCheckUtils]: 11: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,589 INFO L290 TraceCheckUtils]: 12: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,589 INFO L290 TraceCheckUtils]: 13: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,590 INFO L290 TraceCheckUtils]: 14: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,590 INFO L290 TraceCheckUtils]: 15: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,591 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,592 INFO L290 TraceCheckUtils]: 17: Hoare triple {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,592 INFO L290 TraceCheckUtils]: 18: Hoare triple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,593 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:30,594 INFO L290 TraceCheckUtils]: 20: Hoare triple {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,594 INFO L290 TraceCheckUtils]: 21: Hoare triple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,595 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,596 INFO L290 TraceCheckUtils]: 23: Hoare triple {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,596 INFO L290 TraceCheckUtils]: 24: Hoare triple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} assume true; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,597 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4062#(and (<= (+ |mult_#t~ret5| 12) (+ (* 3 mult_~n) (* 3 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 3 mult_~n) (* 3 |mult_#in~m|)) (+ |mult_#t~ret5| 12)))} is VALID [2022-02-20 18:14:30,598 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,598 INFO L290 TraceCheckUtils]: 1: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,598 INFO L290 TraceCheckUtils]: 2: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,598 INFO L272 TraceCheckUtils]: 3: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,599 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,599 INFO L290 TraceCheckUtils]: 5: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,599 INFO L290 TraceCheckUtils]: 6: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,599 INFO L272 TraceCheckUtils]: 7: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,600 INFO L290 TraceCheckUtils]: 8: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,600 INFO L290 TraceCheckUtils]: 9: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,600 INFO L290 TraceCheckUtils]: 10: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,601 INFO L272 TraceCheckUtils]: 11: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,601 INFO L290 TraceCheckUtils]: 12: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,601 INFO L290 TraceCheckUtils]: 13: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,602 INFO L290 TraceCheckUtils]: 14: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,602 INFO L272 TraceCheckUtils]: 15: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,602 INFO L290 TraceCheckUtils]: 16: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,602 INFO L290 TraceCheckUtils]: 17: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,603 INFO L290 TraceCheckUtils]: 18: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,603 INFO L290 TraceCheckUtils]: 19: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,604 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,605 INFO L290 TraceCheckUtils]: 21: Hoare triple {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,605 INFO L290 TraceCheckUtils]: 22: Hoare triple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,606 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:30,607 INFO L290 TraceCheckUtils]: 24: Hoare triple {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,607 INFO L290 TraceCheckUtils]: 25: Hoare triple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,608 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,609 INFO L290 TraceCheckUtils]: 27: Hoare triple {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,609 INFO L290 TraceCheckUtils]: 28: Hoare triple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} assume true; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,610 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4062#(and (<= (+ |mult_#t~ret5| 12) (+ (* 3 mult_~n) (* 3 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 3 mult_~n) (* 3 |mult_#in~m|)) (+ |mult_#t~ret5| 12)))} is VALID [2022-02-20 18:14:30,611 INFO L290 TraceCheckUtils]: 30: Hoare triple {4062#(and (<= (+ |mult_#t~ret5| 12) (+ (* 3 mult_~n) (* 3 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 3 mult_~n) (* 3 |mult_#in~m|)) (+ |mult_#t~ret5| 12)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} is VALID [2022-02-20 18:14:30,611 INFO L290 TraceCheckUtils]: 31: Hoare triple {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} assume true; {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} is VALID [2022-02-20 18:14:30,612 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} {3953#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_~res1~0#1| 12)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} #49#return; {3987#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:14:30,613 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {3924#true} is VALID [2022-02-20 18:14:30,613 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {3924#true} is VALID [2022-02-20 18:14:30,613 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {3924#true} is VALID [2022-02-20 18:14:30,613 INFO L290 TraceCheckUtils]: 3: Hoare triple {3924#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {3924#true} is VALID [2022-02-20 18:14:30,613 INFO L272 TraceCheckUtils]: 4: Hoare triple {3924#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {3924#true} is VALID [2022-02-20 18:14:30,613 INFO L290 TraceCheckUtils]: 5: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,614 INFO L290 TraceCheckUtils]: 6: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,614 INFO L290 TraceCheckUtils]: 7: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,614 INFO L272 TraceCheckUtils]: 8: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,614 INFO L290 TraceCheckUtils]: 9: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,615 INFO L290 TraceCheckUtils]: 10: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,615 INFO L290 TraceCheckUtils]: 11: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,615 INFO L272 TraceCheckUtils]: 12: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,616 INFO L290 TraceCheckUtils]: 13: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,616 INFO L290 TraceCheckUtils]: 14: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,616 INFO L290 TraceCheckUtils]: 15: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,616 INFO L272 TraceCheckUtils]: 16: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,617 INFO L290 TraceCheckUtils]: 17: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,617 INFO L290 TraceCheckUtils]: 18: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,618 INFO L290 TraceCheckUtils]: 19: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,618 INFO L290 TraceCheckUtils]: 20: Hoare triple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} assume true; {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} is VALID [2022-02-20 18:14:30,619 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {4035#(and (<= (* |mult_#in~m| 4) |mult_#res|) (<= |mult_#res| 0))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} is VALID [2022-02-20 18:14:30,619 INFO L290 TraceCheckUtils]: 22: Hoare triple {4032#(and (= |mult_#in~n| mult_~n) (<= (* |mult_#in~m| 4) (+ |mult_#t~ret5| 4)) (<= (+ |mult_#t~ret5| 4) (* |mult_#in~m| 4)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,620 INFO L290 TraceCheckUtils]: 23: Hoare triple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} assume true; {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} is VALID [2022-02-20 18:14:30,621 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {4033#(and (<= (+ |mult_#res| 4) (+ (* |mult_#in~m| 4) |mult_#in~n|)) (<= (+ (* |mult_#in~m| 4) |mult_#in~n|) (+ |mult_#res| 4)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} is VALID [2022-02-20 18:14:30,622 INFO L290 TraceCheckUtils]: 25: Hoare triple {4023#(and (<= (+ |mult_#t~ret5| 8) (+ (* |mult_#in~m| 4) mult_~n)) (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) mult_~n) (+ |mult_#t~ret5| 8)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,622 INFO L290 TraceCheckUtils]: 26: Hoare triple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} assume true; {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,623 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4024#(and (<= (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|)) (+ |mult_#res| 8)) (<= (+ |mult_#res| 8) (+ (* |mult_#in~m| 4) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4009#(and (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) (* 2 mult_~n)) (+ |mult_#t~ret5| 12)) (<= (+ |mult_#t~ret5| 12) (+ (* |mult_#in~m| 4) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,624 INFO L290 TraceCheckUtils]: 28: Hoare triple {4009#(and (= |mult_#in~n| mult_~n) (<= (+ (* |mult_#in~m| 4) (* 2 mult_~n)) (+ |mult_#t~ret5| 12)) (<= (+ |mult_#t~ret5| 12) (+ (* |mult_#in~m| 4) (* 2 mult_~n))))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} is VALID [2022-02-20 18:14:30,624 INFO L290 TraceCheckUtils]: 29: Hoare triple {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} assume true; {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} is VALID [2022-02-20 18:14:30,625 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {4010#(and (<= (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~n|) (* |mult_#in~m| 4))))} {3924#true} #47#return; {3952#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_#t~ret8#1| 12)) (<= (+ |ULTIMATE.start_main_#t~ret8#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} is VALID [2022-02-20 18:14:30,625 INFO L290 TraceCheckUtils]: 31: Hoare triple {3952#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_#t~ret8#1| 12)) (<= (+ |ULTIMATE.start_main_#t~ret8#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {3953#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_~res1~0#1| 12)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} is VALID [2022-02-20 18:14:30,625 INFO L272 TraceCheckUtils]: 32: Hoare triple {3953#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_~res1~0#1| 12)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {3924#true} is VALID [2022-02-20 18:14:30,626 INFO L290 TraceCheckUtils]: 33: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,626 INFO L290 TraceCheckUtils]: 34: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,626 INFO L290 TraceCheckUtils]: 35: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,627 INFO L272 TraceCheckUtils]: 36: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,627 INFO L290 TraceCheckUtils]: 37: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,627 INFO L290 TraceCheckUtils]: 38: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,628 INFO L290 TraceCheckUtils]: 39: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,628 INFO L272 TraceCheckUtils]: 40: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,628 INFO L290 TraceCheckUtils]: 41: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,628 INFO L290 TraceCheckUtils]: 42: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,629 INFO L290 TraceCheckUtils]: 43: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,629 INFO L272 TraceCheckUtils]: 44: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,629 INFO L290 TraceCheckUtils]: 45: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:30,630 INFO L290 TraceCheckUtils]: 46: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} is VALID [2022-02-20 18:14:30,630 INFO L290 TraceCheckUtils]: 47: Hoare triple {4025#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (< 0 (+ mult_~m 1)))} assume !(0 == ~m); {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} is VALID [2022-02-20 18:14:30,630 INFO L272 TraceCheckUtils]: 48: Hoare triple {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:30,630 INFO L290 TraceCheckUtils]: 49: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,631 INFO L290 TraceCheckUtils]: 50: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:30,631 INFO L290 TraceCheckUtils]: 51: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume 0 == ~m;#res := 0; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,631 INFO L290 TraceCheckUtils]: 52: Hoare triple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} assume true; {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} is VALID [2022-02-20 18:14:30,632 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {4106#(and (<= |mult_#res| 0) (<= (* 3 |mult_#in~m|) |mult_#res|))} {4026#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m) (not (<= mult_~m 0)))} #45#return; {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} is VALID [2022-02-20 18:14:30,633 INFO L290 TraceCheckUtils]: 54: Hoare triple {4104#(and (= |mult_#in~n| mult_~n) (<= (+ 3 |mult_#t~ret5|) (* 3 |mult_#in~m|)) (<= (* 3 |mult_#in~m|) (+ 3 |mult_#t~ret5|)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,634 INFO L290 TraceCheckUtils]: 55: Hoare triple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} assume true; {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} is VALID [2022-02-20 18:14:30,634 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4105#(and (<= (+ (* 3 |mult_#in~m|) |mult_#in~n|) (+ |mult_#res| 3)) (<= (+ |mult_#res| 3) (+ (* 3 |mult_#in~m|) |mult_#in~n|)))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} is VALID [2022-02-20 18:14:30,635 INFO L290 TraceCheckUtils]: 57: Hoare triple {4097#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) mult_~n) (+ 6 |mult_#t~ret5|)) (<= (+ 6 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) mult_~n)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,636 INFO L290 TraceCheckUtils]: 58: Hoare triple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} assume true; {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} is VALID [2022-02-20 18:14:30,637 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {4098#(and (<= (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|)) (+ |mult_#res| 6)) (<= (+ |mult_#res| 6) (+ (* 3 |mult_#in~m|) (* 2 |mult_#in~n|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} is VALID [2022-02-20 18:14:30,637 INFO L290 TraceCheckUtils]: 60: Hoare triple {4083#(and (= |mult_#in~n| mult_~n) (<= (+ (* 3 |mult_#in~m|) (* 2 mult_~n)) (+ 9 |mult_#t~ret5|)) (<= (+ 9 |mult_#t~ret5|) (+ (* 3 |mult_#in~m|) (* 2 mult_~n))))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,638 INFO L290 TraceCheckUtils]: 61: Hoare triple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} assume true; {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} is VALID [2022-02-20 18:14:30,639 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {4084#(and (<= (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|)) (+ |mult_#res| 9)) (<= (+ |mult_#res| 9) (+ (* 3 |mult_#in~n|) (* 3 |mult_#in~m|))))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4062#(and (<= (+ |mult_#t~ret5| 12) (+ (* 3 mult_~n) (* 3 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 3 mult_~n) (* 3 |mult_#in~m|)) (+ |mult_#t~ret5| 12)))} is VALID [2022-02-20 18:14:30,639 INFO L290 TraceCheckUtils]: 63: Hoare triple {4062#(and (<= (+ |mult_#t~ret5| 12) (+ (* 3 mult_~n) (* 3 |mult_#in~m|))) (= |mult_#in~n| mult_~n) (<= (+ (* 3 mult_~n) (* 3 |mult_#in~m|)) (+ |mult_#t~ret5| 12)))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} is VALID [2022-02-20 18:14:30,640 INFO L290 TraceCheckUtils]: 64: Hoare triple {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} assume true; {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} is VALID [2022-02-20 18:14:30,641 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {4063#(and (<= (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4)) (+ |mult_#res| 12)) (<= (+ |mult_#res| 12) (+ (* 3 |mult_#in~m|) (* |mult_#in~n| 4))))} {3953#(and (<= (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ |ULTIMATE.start_main_~res1~0#1| 12)) (<= (+ |ULTIMATE.start_main_~res1~0#1| 12) (+ (* 3 |ULTIMATE.start_main_~m~0#1|) (* |ULTIMATE.start_main_~n~0#1| 4))))} #49#return; {3987#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} is VALID [2022-02-20 18:14:30,641 INFO L290 TraceCheckUtils]: 66: Hoare triple {3987#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_#t~ret9#1|) (<= |ULTIMATE.start_main_#t~ret9#1| |ULTIMATE.start_main_~res1~0#1|))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {3988#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} is VALID [2022-02-20 18:14:30,641 INFO L290 TraceCheckUtils]: 67: Hoare triple {3988#(and (<= |ULTIMATE.start_main_~res1~0#1| |ULTIMATE.start_main_~res2~0#1|) (< |ULTIMATE.start_main_~res2~0#1| (+ |ULTIMATE.start_main_~res1~0#1| 1)))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {3925#false} is VALID [2022-02-20 18:14:30,642 INFO L290 TraceCheckUtils]: 68: Hoare triple {3925#false} assume !false; {3925#false} is VALID [2022-02-20 18:14:30,642 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 24 proven. 117 refuted. 0 times theorem prover too weak. 81 trivial. 0 not checked. [2022-02-20 18:14:30,642 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:14:30,642 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1066737592] [2022-02-20 18:14:30,642 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1066737592] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:14:30,642 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1492329708] [2022-02-20 18:14:30,643 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-02-20 18:14:30,643 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:14:30,643 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:14:30,644 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 18:14:30,645 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-02-20 18:14:30,703 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 10 check-sat command(s) [2022-02-20 18:14:30,704 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:14:30,706 WARN L261 TraceCheckSpWp]: Trace formula consists of 216 conjuncts, 109 conjunts are in the unsatisfiable core [2022-02-20 18:14:30,718 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:14:30,719 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:14:32,548 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(20, 2);call #Ultimate.allocInit(12, 3); {3924#true} is VALID [2022-02-20 18:14:32,549 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet6#1, main_#t~nondet7#1, main_#t~ret8#1, main_#t~ret9#1, main_~m~0#1, main_~n~0#1, main_~res1~0#1, main_~res2~0#1;assume -2147483648 <= main_#t~nondet6#1 && main_#t~nondet6#1 <= 2147483647;main_~m~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1; {3924#true} is VALID [2022-02-20 18:14:32,549 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume !(main_~m~0#1 < 0 || main_~m~0#1 > 46340);assume -2147483648 <= main_#t~nondet7#1 && main_#t~nondet7#1 <= 2147483647;main_~n~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1; {3924#true} is VALID [2022-02-20 18:14:32,549 INFO L290 TraceCheckUtils]: 3: Hoare triple {3924#true} assume !(main_~n~0#1 < 0 || main_~n~0#1 > 46340); {3924#true} is VALID [2022-02-20 18:14:32,549 INFO L272 TraceCheckUtils]: 4: Hoare triple {3924#true} call main_#t~ret8#1 := mult(main_~m~0#1, main_~n~0#1); {3924#true} is VALID [2022-02-20 18:14:32,549 INFO L290 TraceCheckUtils]: 5: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,550 INFO L290 TraceCheckUtils]: 6: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,550 INFO L290 TraceCheckUtils]: 7: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,550 INFO L272 TraceCheckUtils]: 8: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,551 INFO L290 TraceCheckUtils]: 9: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,551 INFO L290 TraceCheckUtils]: 10: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,552 INFO L290 TraceCheckUtils]: 11: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,552 INFO L272 TraceCheckUtils]: 12: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,552 INFO L290 TraceCheckUtils]: 13: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,552 INFO L290 TraceCheckUtils]: 14: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,553 INFO L290 TraceCheckUtils]: 15: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,553 INFO L272 TraceCheckUtils]: 16: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,553 INFO L290 TraceCheckUtils]: 17: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:32,554 INFO L290 TraceCheckUtils]: 18: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4164#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:32,554 INFO L290 TraceCheckUtils]: 19: Hoare triple {4164#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:32,555 INFO L290 TraceCheckUtils]: 20: Hoare triple {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:32,556 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4175#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:32,556 INFO L290 TraceCheckUtils]: 22: Hoare triple {4175#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:32,557 INFO L290 TraceCheckUtils]: 23: Hoare triple {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:32,558 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4186#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,558 INFO L290 TraceCheckUtils]: 25: Hoare triple {4186#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,559 INFO L290 TraceCheckUtils]: 26: Hoare triple {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} assume true; {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,560 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4197#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} is VALID [2022-02-20 18:14:32,561 INFO L290 TraceCheckUtils]: 28: Hoare triple {4197#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:32,561 INFO L290 TraceCheckUtils]: 29: Hoare triple {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} assume true; {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:32,562 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} {3924#true} #47#return; {4208#(and (= (* 3 |ULTIMATE.start_main_~m~0#1|) |ULTIMATE.start_main_#t~ret8#1|) (not (< |ULTIMATE.start_main_~n~0#1| 3)) (<= |ULTIMATE.start_main_~n~0#1| 3))} is VALID [2022-02-20 18:14:32,562 INFO L290 TraceCheckUtils]: 31: Hoare triple {4208#(and (= (* 3 |ULTIMATE.start_main_~m~0#1|) |ULTIMATE.start_main_#t~ret8#1|) (not (< |ULTIMATE.start_main_~n~0#1| 3)) (<= |ULTIMATE.start_main_~n~0#1| 3))} assume -2147483648 <= main_#t~ret8#1 && main_#t~ret8#1 <= 2147483647;main_~res1~0#1 := main_#t~ret8#1;havoc main_#t~ret8#1; {4212#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} is VALID [2022-02-20 18:14:32,562 INFO L272 TraceCheckUtils]: 32: Hoare triple {4212#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} call main_#t~ret9#1 := mult(main_~n~0#1, main_~m~0#1); {3924#true} is VALID [2022-02-20 18:14:32,563 INFO L290 TraceCheckUtils]: 33: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,563 INFO L290 TraceCheckUtils]: 34: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,564 INFO L290 TraceCheckUtils]: 35: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,564 INFO L272 TraceCheckUtils]: 36: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,564 INFO L290 TraceCheckUtils]: 37: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,565 INFO L290 TraceCheckUtils]: 38: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,565 INFO L290 TraceCheckUtils]: 39: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,565 INFO L272 TraceCheckUtils]: 40: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,565 INFO L290 TraceCheckUtils]: 41: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,566 INFO L290 TraceCheckUtils]: 42: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,566 INFO L290 TraceCheckUtils]: 43: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,566 INFO L272 TraceCheckUtils]: 44: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,567 INFO L290 TraceCheckUtils]: 45: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,567 INFO L290 TraceCheckUtils]: 46: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(~m < 0); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,567 INFO L290 TraceCheckUtils]: 47: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} assume !(0 == ~m); {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} is VALID [2022-02-20 18:14:32,567 INFO L272 TraceCheckUtils]: 48: Hoare triple {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} call #t~ret5 := mult(~n, ~m - 1); {3924#true} is VALID [2022-02-20 18:14:32,568 INFO L290 TraceCheckUtils]: 49: Hoare triple {3924#true} ~n := #in~n;~m := #in~m; {4034#(= |mult_#in~m| mult_~m)} is VALID [2022-02-20 18:14:32,568 INFO L290 TraceCheckUtils]: 50: Hoare triple {4034#(= |mult_#in~m| mult_~m)} assume !(~m < 0); {4164#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} is VALID [2022-02-20 18:14:32,569 INFO L290 TraceCheckUtils]: 51: Hoare triple {4164#(and (= |mult_#in~m| mult_~m) (not (< mult_~m 0)))} assume 0 == ~m;#res := 0; {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:32,569 INFO L290 TraceCheckUtils]: 52: Hoare triple {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} assume true; {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} is VALID [2022-02-20 18:14:32,570 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {4168#(and (not (< |mult_#in~m| 0)) (= |mult_#res| 0) (<= |mult_#in~m| 0))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4175#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} is VALID [2022-02-20 18:14:32,570 INFO L290 TraceCheckUtils]: 54: Hoare triple {4175#(and (not (< |mult_#in~m| 1)) (= |mult_#in~n| mult_~n) (<= |mult_#in~m| 1) (= |mult_#t~ret5| 0))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:32,571 INFO L290 TraceCheckUtils]: 55: Hoare triple {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} assume true; {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} is VALID [2022-02-20 18:14:32,572 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4179#(and (not (< |mult_#in~m| 1)) (<= |mult_#in~m| 1) (= |mult_#res| |mult_#in~n|))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4186#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,572 INFO L290 TraceCheckUtils]: 57: Hoare triple {4186#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 2)) (= |mult_#t~ret5| mult_~n) (<= |mult_#in~m| 2))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,573 INFO L290 TraceCheckUtils]: 58: Hoare triple {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} assume true; {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} is VALID [2022-02-20 18:14:32,574 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {4190#(and (not (< |mult_#in~m| 2)) (= |mult_#res| (* 2 |mult_#in~n|)) (<= |mult_#in~m| 2))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4197#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} is VALID [2022-02-20 18:14:32,574 INFO L290 TraceCheckUtils]: 60: Hoare triple {4197#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 3)) (<= |mult_#in~m| 3) (= (* 2 mult_~n) |mult_#t~ret5|))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:32,575 INFO L290 TraceCheckUtils]: 61: Hoare triple {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} assume true; {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} is VALID [2022-02-20 18:14:32,576 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {4201#(and (not (< |mult_#in~m| 3)) (= (* 3 |mult_#in~n|) |mult_#res|) (<= |mult_#in~m| 3))} {3989#(and (= |mult_#in~n| mult_~n) (= |mult_#in~m| mult_~m))} #45#return; {4306#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 4)) (= (* 3 mult_~n) |mult_#t~ret5|) (<= |mult_#in~m| 4))} is VALID [2022-02-20 18:14:32,576 INFO L290 TraceCheckUtils]: 63: Hoare triple {4306#(and (= |mult_#in~n| mult_~n) (not (< |mult_#in~m| 4)) (= (* 3 mult_~n) |mult_#t~ret5|) (<= |mult_#in~m| 4))} assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;#res := ~n + #t~ret5;havoc #t~ret5; {4310#(and (not (< |mult_#in~m| 4)) (<= |mult_#in~m| 4) (= (* 3 |mult_#in~n|) (+ (* (- 1) |mult_#in~n|) |mult_#res|)))} is VALID [2022-02-20 18:14:32,577 INFO L290 TraceCheckUtils]: 64: Hoare triple {4310#(and (not (< |mult_#in~m| 4)) (<= |mult_#in~m| 4) (= (* 3 |mult_#in~n|) (+ (* (- 1) |mult_#in~n|) |mult_#res|)))} assume true; {4310#(and (not (< |mult_#in~m| 4)) (<= |mult_#in~m| 4) (= (* 3 |mult_#in~n|) (+ (* (- 1) |mult_#in~n|) |mult_#res|)))} is VALID [2022-02-20 18:14:32,578 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {4310#(and (not (< |mult_#in~m| 4)) (<= |mult_#in~m| 4) (= (* 3 |mult_#in~n|) (+ (* (- 1) |mult_#in~n|) |mult_#res|)))} {4212#(and (not (< |ULTIMATE.start_main_~n~0#1| 3)) (= |ULTIMATE.start_main_~res1~0#1| (* 3 |ULTIMATE.start_main_~m~0#1|)) (<= |ULTIMATE.start_main_~n~0#1| 3))} #49#return; {4317#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (not (< (div |ULTIMATE.start_main_#t~ret9#1| 4) 3)) (<= (div |ULTIMATE.start_main_#t~ret9#1| 4) 3) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4)) (= (mod |ULTIMATE.start_main_#t~ret9#1| 4) 0) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4))} is VALID [2022-02-20 18:14:32,579 INFO L290 TraceCheckUtils]: 66: Hoare triple {4317#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (not (< (div |ULTIMATE.start_main_#t~ret9#1| 4) 3)) (<= (div |ULTIMATE.start_main_#t~ret9#1| 4) 3) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4)) (= (mod |ULTIMATE.start_main_#t~ret9#1| 4) 0) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4))} assume -2147483648 <= main_#t~ret9#1 && main_#t~ret9#1 <= 2147483647;main_~res2~0#1 := main_#t~ret9#1;havoc main_#t~ret9#1; {4321#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (not (< (div |ULTIMATE.start_main_~res2~0#1| 4) 3)) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4)) (<= (div |ULTIMATE.start_main_~res2~0#1| 4) 3) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4) (= (mod |ULTIMATE.start_main_~res2~0#1| 4) 0))} is VALID [2022-02-20 18:14:32,580 INFO L290 TraceCheckUtils]: 67: Hoare triple {4321#(and (= (mod (* |ULTIMATE.start_main_~res1~0#1| 2) 3) 0) (not (< (div |ULTIMATE.start_main_~res2~0#1| 4) 3)) (not (< (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4)) (<= (div |ULTIMATE.start_main_~res2~0#1| 4) 3) (<= (div (* (- 1) |ULTIMATE.start_main_~res1~0#1|) (- 3)) 4) (= (mod |ULTIMATE.start_main_~res2~0#1| 4) 0))} assume (main_~res1~0#1 != main_~res2~0#1 && main_~m~0#1 > 0) && main_~n~0#1 > 0; {3925#false} is VALID [2022-02-20 18:14:32,580 INFO L290 TraceCheckUtils]: 68: Hoare triple {3925#false} assume !false; {3925#false} is VALID [2022-02-20 18:14:32,580 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 4 proven. 106 refuted. 0 times theorem prover too weak. 112 trivial. 0 not checked. [2022-02-20 18:14:32,580 INFO L328 TraceCheckSpWp]: Computing backward predicates...