./Ultimate.py --spec ../sv-benchmarks/c/properties/termination.prp --file ../sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for termination Using default analysis Version 798a7b37 Calling Ultimate with: /root/.sdkman/candidates/java/21.0.5-tem/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.6.800.v20240513-1750.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i ../sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(F end) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash dea78793c7130d873f751539350d9a84f129d659be765f9ed3f85c683976c43a --- Real Ultimate output --- This is Ultimate 0.3.0-?-798a7b3-m [2025-03-04 16:19:25,632 INFO L188 SettingsManager]: Resetting all preferences to default values... [2025-03-04 16:19:25,685 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2025-03-04 16:19:25,689 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2025-03-04 16:19:25,689 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2025-03-04 16:19:25,689 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder.Remove goto edges from RCFG [2025-03-04 16:19:25,704 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2025-03-04 16:19:25,706 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2025-03-04 16:19:25,706 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2025-03-04 16:19:25,706 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2025-03-04 16:19:25,706 INFO L153 SettingsManager]: * Use memory slicer=true [2025-03-04 16:19:25,706 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2025-03-04 16:19:25,706 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Use SBE=true [2025-03-04 16:19:25,707 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Use old map elimination=false [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2025-03-04 16:19:25,707 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * sizeof long=4 [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * sizeof POINTER=4 [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2025-03-04 16:19:25,707 INFO L153 SettingsManager]: * sizeof long double=12 [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Behaviour of calls to undefined functions=OVERAPPROXIMATE_BEHAVIOUR [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Use constant arrays=true [2025-03-04 16:19:25,708 INFO L151 SettingsManager]: Preferences of IcfgBuilder differ from their defaults: [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2025-03-04 16:19:25,708 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2025-03-04 16:19:25,708 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2025-03-04 16:19:25,708 INFO L153 SettingsManager]: * TransformationType=MODULO_NEIGHBOR 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 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(F end) ) 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 -> dea78793c7130d873f751539350d9a84f129d659be765f9ed3f85c683976c43a [2025-03-04 16:19:25,949 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2025-03-04 16:19:25,957 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2025-03-04 16:19:25,959 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2025-03-04 16:19:25,960 INFO L270 PluginConnector]: Initializing CDTParser... [2025-03-04 16:19:25,960 INFO L274 PluginConnector]: CDTParser initialized [2025-03-04 16:19:25,962 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-03-04 16:19:27,172 INFO L533 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9572fb79e/4f2782c55edc463286281904528c895c/FLAG2a78e3d8b [2025-03-04 16:19:27,387 INFO L384 CDTParser]: Found 1 translation units. [2025-03-04 16:19:27,388 INFO L180 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-03-04 16:19:27,410 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9572fb79e/4f2782c55edc463286281904528c895c/FLAG2a78e3d8b [2025-03-04 16:19:27,427 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9572fb79e/4f2782c55edc463286281904528c895c [2025-03-04 16:19:27,430 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2025-03-04 16:19:27,431 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2025-03-04 16:19:27,432 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2025-03-04 16:19:27,432 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2025-03-04 16:19:27,435 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2025-03-04 16:19:27,436 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,437 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@ba5dcdc and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27, skipping insertion in model container [2025-03-04 16:19:27,437 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,449 INFO L175 MainTranslator]: Built tables and reachable declarations [2025-03-04 16:19:27,581 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-03-04 16:19:27,592 INFO L200 MainTranslator]: Completed pre-run [2025-03-04 16:19:27,616 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-03-04 16:19:27,634 INFO L204 MainTranslator]: Completed translation [2025-03-04 16:19:27,635 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27 WrapperNode [2025-03-04 16:19:27,635 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2025-03-04 16:19:27,636 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2025-03-04 16:19:27,636 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2025-03-04 16:19:27,636 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2025-03-04 16:19:27,641 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,648 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,666 INFO L138 Inliner]: procedures = 16, calls = 72, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 116 [2025-03-04 16:19:27,666 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2025-03-04 16:19:27,667 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2025-03-04 16:19:27,667 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2025-03-04 16:19:27,668 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2025-03-04 16:19:27,674 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,674 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,677 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,710 INFO L175 MemorySlicer]: Split 38 memory accesses to 7 slices as follows [2, 6, 6, 6, 6, 5, 7]. 18 percent of accesses are in the largest equivalence class. The 2 initializations are split as follows [2, 0, 0, 0, 0, 0, 0]. The 11 writes are split as follows [0, 2, 2, 2, 2, 2, 1]. [2025-03-04 16:19:27,711 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,711 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,721 INFO L184 PluginConnector]: Executing the observer ReplaceArrayAssignments from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,722 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,723 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,724 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,726 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2025-03-04 16:19:27,726 INFO L112 PluginConnector]: ------------------------IcfgBuilder---------------------------- [2025-03-04 16:19:27,726 INFO L270 PluginConnector]: Initializing IcfgBuilder... [2025-03-04 16:19:27,727 INFO L274 PluginConnector]: IcfgBuilder initialized [2025-03-04 16:19:27,727 INFO L184 PluginConnector]: Executing the observer IcfgBuilderObserver from plugin IcfgBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (1/1) ... [2025-03-04 16:19:27,731 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-03-04 16:19:27,744 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-04 16:19:27,759 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-03-04 16:19:27,766 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2025-03-04 16:19:27,785 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_12_to_13_0 [2025-03-04 16:19:27,786 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_12_to_13_0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_13_to_14_0 [2025-03-04 16:19:27,786 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_13_to_14_0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_11_to_12_0 [2025-03-04 16:19:27,786 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_11_to_12_0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#2 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#3 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#4 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#5 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#6 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_14_to_16_0 [2025-03-04 16:19:27,786 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_14_to_16_0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_10_to_11_0 [2025-03-04 16:19:27,786 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_10_to_11_0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#2 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#3 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#4 [2025-03-04 16:19:27,786 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#5 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#6 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2025-03-04 16:19:27,787 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#2 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#3 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#4 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#5 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#6 [2025-03-04 16:19:27,787 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2025-03-04 16:19:27,909 INFO L256 CfgBuilder]: Building ICFG [2025-03-04 16:19:27,911 INFO L286 CfgBuilder]: Building CFG for each procedure with an implementation [2025-03-04 16:19:28,168 INFO L1325 $ProcedureCfgBuilder]: dead code at ProgramPoint L130: call ULTIMATE.dealloc(main_~#a~0#1.base, main_~#a~0#1.offset);havoc main_~#a~0#1.base, main_~#a~0#1.offset;call ULTIMATE.dealloc(main_~#b~0#1.base, main_~#b~0#1.offset);havoc main_~#b~0#1.base, main_~#b~0#1.offset;call ULTIMATE.dealloc(main_~#c~0#1.base, main_~#c~0#1.offset);havoc main_~#c~0#1.base, main_~#c~0#1.offset;call ULTIMATE.dealloc(main_~#d~0#1.base, main_~#d~0#1.offset);havoc main_~#d~0#1.base, main_~#d~0#1.offset;call ULTIMATE.dealloc(main_~#e~0#1.base, main_~#e~0#1.offset);havoc main_~#e~0#1.base, main_~#e~0#1.offset;call ULTIMATE.dealloc(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset);havoc main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset; [2025-03-04 16:19:28,201 INFO L? ?]: Removed 15 outVars from TransFormulas that were not future-live. [2025-03-04 16:19:28,201 INFO L307 CfgBuilder]: Performing block encoding [2025-03-04 16:19:28,211 INFO L331 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2025-03-04 16:19:28,213 INFO L336 CfgBuilder]: Removed 0 assume(true) statements. [2025-03-04 16:19:28,213 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 04.03 04:19:28 BoogieIcfgContainer [2025-03-04 16:19:28,214 INFO L131 PluginConnector]: ------------------------ END IcfgBuilder---------------------------- [2025-03-04 16:19:28,214 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2025-03-04 16:19:28,214 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2025-03-04 16:19:28,219 INFO L274 PluginConnector]: BuchiAutomizer initialized [2025-03-04 16:19:28,219 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-04 16:19:28,219 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 04.03 04:19:27" (1/3) ... [2025-03-04 16:19:28,220 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@5aa672f and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 04.03 04:19:28, skipping insertion in model container [2025-03-04 16:19:28,220 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-04 16:19:28,221 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 04.03 04:19:27" (2/3) ... [2025-03-04 16:19:28,221 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@5aa672f and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 04.03 04:19:28, skipping insertion in model container [2025-03-04 16:19:28,221 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-04 16:19:28,221 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 04.03 04:19:28" (3/3) ... [2025-03-04 16:19:28,222 INFO L363 chiAutomizerObserver]: Analyzing ICFG recursified_deep-nested.c [2025-03-04 16:19:28,273 INFO L306 stractBuchiCegarLoop]: Interprodecural is true [2025-03-04 16:19:28,273 INFO L307 stractBuchiCegarLoop]: Hoare is None [2025-03-04 16:19:28,273 INFO L308 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2025-03-04 16:19:28,273 INFO L309 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2025-03-04 16:19:28,273 INFO L310 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2025-03-04 16:19:28,273 INFO L311 stractBuchiCegarLoop]: Difference is false [2025-03-04 16:19:28,273 INFO L312 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2025-03-04 16:19:28,273 INFO L316 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2025-03-04 16:19:28,278 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2025-03-04 16:19:28,293 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2025-03-04 16:19:28,293 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:28,293 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:28,298 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:28,298 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:28,298 INFO L338 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2025-03-04 16:19:28,298 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2025-03-04 16:19:28,302 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2025-03-04 16:19:28,302 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:28,302 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:28,302 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:28,302 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:28,306 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(14, 2);call #Ultimate.allocInit(12, 3);" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4);" "call func_to_recursive_line_10_to_11_0(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#a~0#1.base, main_~#a~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset);"< [2025-03-04 16:19:28,307 INFO L754 eck$LassoCheckResult]: Loop: "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#4(0, ~b.base, ~b.offset, 4);" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#73#return;" "call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37;" "call func_to_recursive_line_10_to_11_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< [2025-03-04 16:19:28,310 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:28,310 INFO L85 PathProgramCache]: Analyzing trace with hash 83402, now seen corresponding path program 1 times [2025-03-04 16:19:28,315 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:28,315 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1559055279] [2025-03-04 16:19:28,315 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:28,316 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:28,378 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:28,434 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:28,434 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:28,435 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:28,435 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-04 16:19:28,440 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:28,469 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:28,472 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:28,472 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:28,492 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-04 16:19:28,495 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:28,495 INFO L85 PathProgramCache]: Analyzing trace with hash 1971170713, now seen corresponding path program 1 times [2025-03-04 16:19:28,495 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:28,495 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1068415374] [2025-03-04 16:19:28,496 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:28,496 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:28,511 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-03-04 16:19:28,533 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-03-04 16:19:28,533 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:28,533 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:29,081 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-04 16:19:29,082 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-04 16:19:29,082 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1068415374] [2025-03-04 16:19:29,083 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1068415374] provided 1 perfect and 0 imperfect interpolant sequences [2025-03-04 16:19:29,083 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-03-04 16:19:29,084 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2025-03-04 16:19:29,084 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [739507049] [2025-03-04 16:19:29,084 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-03-04 16:19:29,087 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-04 16:19:29,088 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-04 16:19:29,106 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2025-03-04 16:19:29,107 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2025-03-04 16:19:29,109 INFO L87 Difference]: Start difference. First operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 7 states, 6 states have (on average 1.0) internal successors, (6), 5 states have internal predecessors, (6), 2 states have call successors, (2), 2 states have call predecessors, (2), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2025-03-04 16:19:29,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-04 16:19:29,484 INFO L93 Difference]: Finished difference Result 53 states and 67 transitions. [2025-03-04 16:19:29,485 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 53 states and 67 transitions. [2025-03-04 16:19:29,488 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-04 16:19:29,496 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 53 states to 45 states and 57 transitions. [2025-03-04 16:19:29,497 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 45 [2025-03-04 16:19:29,497 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2025-03-04 16:19:29,498 INFO L73 IsDeterministic]: Start isDeterministic. Operand 45 states and 57 transitions. [2025-03-04 16:19:29,523 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-04 16:19:29,523 INFO L218 hiAutomatonCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-03-04 16:19:29,531 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states and 57 transitions. [2025-03-04 16:19:29,542 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 45. [2025-03-04 16:19:29,544 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 45 states, 30 states have (on average 1.2666666666666666) internal successors, (38), 34 states have internal predecessors, (38), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (9), 8 states have call predecessors, (9), 8 states have call successors, (9) [2025-03-04 16:19:29,545 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 57 transitions. [2025-03-04 16:19:29,547 INFO L240 hiAutomatonCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-03-04 16:19:29,548 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2025-03-04 16:19:29,550 INFO L432 stractBuchiCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-03-04 16:19:29,550 INFO L338 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2025-03-04 16:19:29,550 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 45 states and 57 transitions. [2025-03-04 16:19:29,553 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-04 16:19:29,553 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:29,553 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:29,554 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:29,554 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:29,554 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(14, 2);call #Ultimate.allocInit(12, 3);" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4);" "call func_to_recursive_line_10_to_11_0(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#a~0#1.base, main_~#a~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset);"< [2025-03-04 16:19:29,554 INFO L754 eck$LassoCheckResult]: Loop: "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#4(0, ~b.base, ~b.offset, 4);" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4);" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#67#return;" "call #t~mem32 := read~int#4(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#4(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33;" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#65#return;" "assume true;" >"#73#return;" "call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37;" "call func_to_recursive_line_10_to_11_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< [2025-03-04 16:19:29,555 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:29,555 INFO L85 PathProgramCache]: Analyzing trace with hash 83402, now seen corresponding path program 2 times [2025-03-04 16:19:29,555 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:29,555 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1632822846] [2025-03-04 16:19:29,555 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-03-04 16:19:29,555 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:29,569 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:29,585 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:29,589 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-03-04 16:19:29,589 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:29,589 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-04 16:19:29,591 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:29,606 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:29,606 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:29,606 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:29,610 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-04 16:19:29,612 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:29,612 INFO L85 PathProgramCache]: Analyzing trace with hash -1370545883, now seen corresponding path program 1 times [2025-03-04 16:19:29,612 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:29,612 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [799251637] [2025-03-04 16:19:29,612 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:29,612 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:29,624 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-03-04 16:19:29,637 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-03-04 16:19:29,637 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:29,637 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:30,018 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-03-04 16:19:30,019 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-04 16:19:30,019 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [799251637] [2025-03-04 16:19:30,019 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [799251637] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-04 16:19:30,019 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1677436413] [2025-03-04 16:19:30,019 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:30,019 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-04 16:19:30,019 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-04 16:19:30,021 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) [2025-03-04 16:19:30,024 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2025-03-04 16:19:30,083 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-03-04 16:19:30,119 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-03-04 16:19:30,120 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:30,120 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:30,130 INFO L256 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 36 conjuncts are in the unsatisfiable core [2025-03-04 16:19:30,132 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-04 16:19:30,273 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:30,629 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 3 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-04 16:19:30,630 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-04 16:19:31,111 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-03-04 16:19:31,112 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1677436413] provided 0 perfect and 2 imperfect interpolant sequences [2025-03-04 16:19:31,112 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-03-04 16:19:31,112 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 11, 10] total 24 [2025-03-04 16:19:31,112 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1981911131] [2025-03-04 16:19:31,112 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-03-04 16:19:31,112 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-04 16:19:31,112 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-04 16:19:31,112 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2025-03-04 16:19:31,113 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=86, Invalid=466, Unknown=0, NotChecked=0, Total=552 [2025-03-04 16:19:31,113 INFO L87 Difference]: Start difference. First operand 45 states and 57 transitions. cyclomatic complexity: 17 Second operand has 24 states, 20 states have (on average 1.7) internal successors, (34), 20 states have internal predecessors, (34), 8 states have call successors, (10), 7 states have call predecessors, (10), 8 states have return successors, (9), 3 states have call predecessors, (9), 8 states have call successors, (9) [2025-03-04 16:19:31,832 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-04 16:19:31,832 INFO L93 Difference]: Finished difference Result 47 states and 59 transitions. [2025-03-04 16:19:31,833 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 47 states and 59 transitions. [2025-03-04 16:19:31,834 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-04 16:19:31,834 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 47 states to 47 states and 59 transitions. [2025-03-04 16:19:31,835 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 47 [2025-03-04 16:19:31,835 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 47 [2025-03-04 16:19:31,835 INFO L73 IsDeterministic]: Start isDeterministic. Operand 47 states and 59 transitions. [2025-03-04 16:19:31,837 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-04 16:19:31,837 INFO L218 hiAutomatonCegarLoop]: Abstraction has 47 states and 59 transitions. [2025-03-04 16:19:31,837 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states and 59 transitions. [2025-03-04 16:19:31,839 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 47. [2025-03-04 16:19:31,839 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 states, 31 states have (on average 1.2580645161290323) internal successors, (39), 35 states have internal predecessors, (39), 10 states have call successors, (10), 5 states have call predecessors, (10), 6 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2025-03-04 16:19:31,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 59 transitions. [2025-03-04 16:19:31,840 INFO L240 hiAutomatonCegarLoop]: Abstraction has 47 states and 59 transitions. [2025-03-04 16:19:31,840 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2025-03-04 16:19:31,841 INFO L432 stractBuchiCegarLoop]: Abstraction has 47 states and 59 transitions. [2025-03-04 16:19:31,841 INFO L338 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2025-03-04 16:19:31,841 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 47 states and 59 transitions. [2025-03-04 16:19:31,841 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-04 16:19:31,841 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:31,841 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:31,842 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:31,842 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:31,842 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(14, 2);call #Ultimate.allocInit(12, 3);" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4);" "call func_to_recursive_line_10_to_11_0(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#a~0#1.base, main_~#a~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset);"< [2025-03-04 16:19:31,842 INFO L754 eck$LassoCheckResult]: Loop: "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#4(0, ~b.base, ~b.offset, 4);" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4);" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#1(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#1(~d.base, ~d.offset, 4);call #t~mem22 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#59#return;" "call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29;" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#57#return;" "assume true;" >"#67#return;" "call #t~mem32 := read~int#4(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#4(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33;" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#65#return;" "assume true;" >"#73#return;" "call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37;" "call func_to_recursive_line_10_to_11_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< [2025-03-04 16:19:31,842 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:31,843 INFO L85 PathProgramCache]: Analyzing trace with hash 83402, now seen corresponding path program 3 times [2025-03-04 16:19:31,843 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:31,843 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [959554954] [2025-03-04 16:19:31,843 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-03-04 16:19:31,843 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:31,851 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:31,863 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:31,864 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) [2025-03-04 16:19:31,864 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:31,864 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-04 16:19:31,866 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:31,873 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:31,873 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:31,874 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:31,880 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-04 16:19:31,880 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:31,880 INFO L85 PathProgramCache]: Analyzing trace with hash 1125247938, now seen corresponding path program 1 times [2025-03-04 16:19:31,880 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:31,880 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [119063405] [2025-03-04 16:19:31,880 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:31,880 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:31,888 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-03-04 16:19:31,901 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-03-04 16:19:31,901 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:31,901 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:32,356 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-03-04 16:19:32,356 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-04 16:19:32,356 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [119063405] [2025-03-04 16:19:32,356 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [119063405] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-04 16:19:32,356 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1903844444] [2025-03-04 16:19:32,356 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:32,357 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-04 16:19:32,357 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-04 16:19:32,359 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) [2025-03-04 16:19:32,360 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2025-03-04 16:19:32,419 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-03-04 16:19:32,474 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-03-04 16:19:32,475 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:32,475 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:32,477 INFO L256 TraceCheckSpWp]: Trace formula consists of 468 conjuncts, 56 conjuncts are in the unsatisfiable core [2025-03-04 16:19:32,479 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-04 16:19:32,612 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:33,090 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 6 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-04 16:19:33,091 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-04 16:19:33,795 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-03-04 16:19:33,795 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1903844444] provided 0 perfect and 2 imperfect interpolant sequences [2025-03-04 16:19:33,795 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-03-04 16:19:33,796 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 14, 12] total 31 [2025-03-04 16:19:33,796 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [913160313] [2025-03-04 16:19:33,796 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-03-04 16:19:33,796 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-04 16:19:33,796 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-04 16:19:33,797 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2025-03-04 16:19:33,797 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=119, Invalid=811, Unknown=0, NotChecked=0, Total=930 [2025-03-04 16:19:33,797 INFO L87 Difference]: Start difference. First operand 47 states and 59 transitions. cyclomatic complexity: 17 Second operand has 31 states, 26 states have (on average 1.9230769230769231) internal successors, (50), 27 states have internal predecessors, (50), 13 states have call successors, (15), 7 states have call predecessors, (15), 10 states have return successors, (14), 6 states have call predecessors, (14), 13 states have call successors, (14) [2025-03-04 16:19:34,805 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-04 16:19:34,805 INFO L93 Difference]: Finished difference Result 64 states and 80 transitions. [2025-03-04 16:19:34,806 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 64 states and 80 transitions. [2025-03-04 16:19:34,807 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 37 [2025-03-04 16:19:34,808 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 64 states to 58 states and 71 transitions. [2025-03-04 16:19:34,808 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 58 [2025-03-04 16:19:34,808 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 58 [2025-03-04 16:19:34,808 INFO L73 IsDeterministic]: Start isDeterministic. Operand 58 states and 71 transitions. [2025-03-04 16:19:34,808 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-04 16:19:34,808 INFO L218 hiAutomatonCegarLoop]: Abstraction has 58 states and 71 transitions. [2025-03-04 16:19:34,808 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states and 71 transitions. [2025-03-04 16:19:34,811 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 58. [2025-03-04 16:19:34,811 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 58 states, 38 states have (on average 1.2105263157894737) internal successors, (46), 42 states have internal predecessors, (46), 12 states have call successors, (12), 7 states have call predecessors, (12), 8 states have return successors, (13), 9 states have call predecessors, (13), 9 states have call successors, (13) [2025-03-04 16:19:34,812 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 71 transitions. [2025-03-04 16:19:34,812 INFO L240 hiAutomatonCegarLoop]: Abstraction has 58 states and 71 transitions. [2025-03-04 16:19:34,813 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2025-03-04 16:19:34,813 INFO L432 stractBuchiCegarLoop]: Abstraction has 58 states and 71 transitions. [2025-03-04 16:19:34,813 INFO L338 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2025-03-04 16:19:34,814 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 58 states and 71 transitions. [2025-03-04 16:19:34,814 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 37 [2025-03-04 16:19:34,814 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:34,814 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:34,815 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:34,815 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:34,815 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(14, 2);call #Ultimate.allocInit(12, 3);" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4);" "call func_to_recursive_line_10_to_11_0(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#a~0#1.base, main_~#a~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset);"< [2025-03-04 16:19:34,815 INFO L754 eck$LassoCheckResult]: Loop: "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#4(0, ~b.base, ~b.offset, 4);" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4);" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#1(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#1(~d.base, ~d.offset, 4);call #t~mem22 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#3(0, ~e.base, ~e.offset, 4);" "call func_to_recursive_line_14_to_16_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#3(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4);" "assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1;" "assume true;" >"#63#return;" "call #t~mem24 := read~int#1(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#1(1 + #t~mem24, ~d.base, ~d.offset, 4);havoc #t~mem24;havoc #t~pre25;" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#1(~d.base, ~d.offset, 4);call #t~mem22 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#61#return;" "assume true;" >"#59#return;" "call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29;" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#57#return;" "assume true;" >"#67#return;" "call #t~mem32 := read~int#4(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#4(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33;" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#65#return;" "assume true;" >"#73#return;" "call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37;" "call func_to_recursive_line_10_to_11_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< [2025-03-04 16:19:34,815 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:34,815 INFO L85 PathProgramCache]: Analyzing trace with hash 83402, now seen corresponding path program 4 times [2025-03-04 16:19:34,815 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:34,815 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [777313290] [2025-03-04 16:19:34,816 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-03-04 16:19:34,816 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:34,821 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 3 statements into 2 equivalence classes. [2025-03-04 16:19:34,831 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:34,831 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-03-04 16:19:34,831 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:34,831 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-04 16:19:34,833 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:34,841 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:34,841 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:34,841 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:34,844 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-04 16:19:34,845 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:34,845 INFO L85 PathProgramCache]: Analyzing trace with hash -1361781542, now seen corresponding path program 1 times [2025-03-04 16:19:34,845 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:34,845 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [44757983] [2025-03-04 16:19:34,845 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:34,845 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:34,854 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-03-04 16:19:34,877 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-03-04 16:19:34,877 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:34,877 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:35,334 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-03-04 16:19:35,334 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-04 16:19:35,335 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [44757983] [2025-03-04 16:19:35,335 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [44757983] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-04 16:19:35,335 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [806281266] [2025-03-04 16:19:35,335 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:35,335 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-04 16:19:35,335 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-04 16:19:35,338 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) [2025-03-04 16:19:35,339 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2025-03-04 16:19:35,409 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-03-04 16:19:35,517 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-03-04 16:19:35,518 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:35,518 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:35,521 INFO L256 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 100 conjuncts are in the unsatisfiable core [2025-03-04 16:19:35,526 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-04 16:19:35,529 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:35,576 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:35,678 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 15 [2025-03-04 16:19:35,762 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:36,053 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-03-04 16:19:36,053 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-04 16:19:36,785 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 23 [2025-03-04 16:19:36,789 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-03-04 16:19:36,790 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [806281266] provided 0 perfect and 2 imperfect interpolant sequences [2025-03-04 16:19:36,790 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-03-04 16:19:36,790 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 17, 10] total 34 [2025-03-04 16:19:36,790 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [924992814] [2025-03-04 16:19:36,790 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-03-04 16:19:36,790 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-04 16:19:36,790 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-04 16:19:36,790 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2025-03-04 16:19:36,791 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=120, Invalid=1002, Unknown=0, NotChecked=0, Total=1122 [2025-03-04 16:19:36,791 INFO L87 Difference]: Start difference. First operand 58 states and 71 transitions. cyclomatic complexity: 19 Second operand has 34 states, 26 states have (on average 2.1538461538461537) internal successors, (56), 28 states have internal predecessors, (56), 14 states have call successors, (19), 9 states have call predecessors, (19), 9 states have return successors, (18), 4 states have call predecessors, (18), 14 states have call successors, (18) [2025-03-04 16:19:38,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-04 16:19:38,053 INFO L93 Difference]: Finished difference Result 75 states and 92 transitions. [2025-03-04 16:19:38,053 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 75 states and 92 transitions. [2025-03-04 16:19:38,054 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 42 [2025-03-04 16:19:38,055 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 75 states to 69 states and 83 transitions. [2025-03-04 16:19:38,055 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 69 [2025-03-04 16:19:38,056 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 69 [2025-03-04 16:19:38,056 INFO L73 IsDeterministic]: Start isDeterministic. Operand 69 states and 83 transitions. [2025-03-04 16:19:38,056 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-04 16:19:38,056 INFO L218 hiAutomatonCegarLoop]: Abstraction has 69 states and 83 transitions. [2025-03-04 16:19:38,056 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 69 states and 83 transitions. [2025-03-04 16:19:38,061 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 69 to 69. [2025-03-04 16:19:38,061 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 69 states, 45 states have (on average 1.1777777777777778) internal successors, (53), 49 states have internal predecessors, (53), 14 states have call successors, (14), 9 states have call predecessors, (14), 10 states have return successors, (16), 10 states have call predecessors, (16), 10 states have call successors, (16) [2025-03-04 16:19:38,062 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 83 transitions. [2025-03-04 16:19:38,062 INFO L240 hiAutomatonCegarLoop]: Abstraction has 69 states and 83 transitions. [2025-03-04 16:19:38,062 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2025-03-04 16:19:38,062 INFO L432 stractBuchiCegarLoop]: Abstraction has 69 states and 83 transitions. [2025-03-04 16:19:38,062 INFO L338 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2025-03-04 16:19:38,062 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 69 states and 83 transitions. [2025-03-04 16:19:38,063 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 42 [2025-03-04 16:19:38,063 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-04 16:19:38,063 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-04 16:19:38,064 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-03-04 16:19:38,064 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-04 16:19:38,064 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(14, 2);call #Ultimate.allocInit(12, 3);" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4);" "call func_to_recursive_line_10_to_11_0(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#a~0#1.base, main_~#a~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset);"< [2025-03-04 16:19:38,064 INFO L754 eck$LassoCheckResult]: Loop: "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#4(0, ~b.base, ~b.offset, 4);" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4);" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#1(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#1(~d.base, ~d.offset, 4);call #t~mem22 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#3(0, ~e.base, ~e.offset, 4);" "call func_to_recursive_line_14_to_16_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#3(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4);" "assume #t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296;havoc #t~mem5#1;havoc #t~mem4#1;call #t~mem6#1 := read~int#5(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#4(~b#1.base, ~b#1.offset, 4);#t~short10#1 := #t~mem6#1 % 4294967296 == #t~mem7#1 % 4294967296;" "assume !#t~short10#1;" "#t~short13#1 := #t~short10#1;" "assume !#t~short13#1;" "#t~short16#1 := #t~short13#1;" "assume !#t~short16#1;" "#t~short19#1 := #t~short16#1;" "assume !#t~short19#1;" "assume !#t~short19#1;havoc #t~mem6#1;havoc #t~mem7#1;havoc #t~mem8#1;havoc #t~mem9#1;havoc #t~short10#1;havoc #t~mem11#1;havoc #t~mem12#1;havoc #t~short13#1;havoc #t~mem14#1;havoc #t~mem15#1;havoc #t~short16#1;havoc #t~mem18#1;havoc #t~mem17#1;havoc #t~short19#1;" "call #t~mem20#1 := read~int#3(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#3(1 + #t~mem20#1, ~e#1.base, ~e#1.offset, 4);havoc #t~mem20#1;havoc #t~pre21#1;" "call func_to_recursive_line_14_to_16_0(~uint32_max#1.base, ~uint32_max#1.offset, ~c#1.base, ~c#1.offset, ~b#1.base, ~b#1.offset, ~a#1.base, ~a#1.offset, ~e#1.base, ~e#1.offset, ~d#1.base, ~d#1.offset);"< "~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#3(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4);" "assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1;" "assume true;" >"#69#return;" "assume true;" >"#63#return;" "call #t~mem24 := read~int#1(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#1(1 + #t~mem24, ~d.base, ~d.offset, 4);havoc #t~mem24;havoc #t~pre25;" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#1(~d.base, ~d.offset, 4);call #t~mem22 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#61#return;" "assume true;" >"#59#return;" "call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29;" "call func_to_recursive_line_12_to_13_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#57#return;" "assume true;" >"#67#return;" "call #t~mem32 := read~int#4(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#4(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33;" "call func_to_recursive_line_11_to_12_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem31 := read~int#4(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#65#return;" "assume true;" >"#73#return;" "call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37;" "call func_to_recursive_line_10_to_11_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< [2025-03-04 16:19:38,066 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:38,066 INFO L85 PathProgramCache]: Analyzing trace with hash 83402, now seen corresponding path program 5 times [2025-03-04 16:19:38,066 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:38,066 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [717775290] [2025-03-04 16:19:38,066 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-03-04 16:19:38,066 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:38,071 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:38,076 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:38,076 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-03-04 16:19:38,076 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:38,076 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-04 16:19:38,078 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-03-04 16:19:38,081 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-03-04 16:19:38,082 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:38,082 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-04 16:19:38,084 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-04 16:19:38,084 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-04 16:19:38,084 INFO L85 PathProgramCache]: Analyzing trace with hash 12078459, now seen corresponding path program 1 times [2025-03-04 16:19:38,084 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-04 16:19:38,084 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1151522993] [2025-03-04 16:19:38,084 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:38,084 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-04 16:19:38,093 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-03-04 16:19:38,137 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-03-04 16:19:38,137 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:38,137 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:40,280 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 6 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-03-04 16:19:40,280 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-04 16:19:40,280 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1151522993] [2025-03-04 16:19:40,280 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1151522993] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-04 16:19:40,281 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1040682125] [2025-03-04 16:19:40,281 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-04 16:19:40,281 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-04 16:19:40,281 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-04 16:19:40,283 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) [2025-03-04 16:19:40,284 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2025-03-04 16:19:40,362 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-03-04 16:19:40,457 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-03-04 16:19:40,457 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-04 16:19:40,457 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-04 16:19:40,467 INFO L256 TraceCheckSpWp]: Trace formula consists of 710 conjuncts, 191 conjuncts are in the unsatisfiable core [2025-03-04 16:19:40,472 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-04 16:19:40,483 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:41,035 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-03-04 16:19:56,431 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2025-03-04 16:20:26,521 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-03-04 16:20:26,521 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 51 treesize of output 71 [2025-03-04 16:20:51,709 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-04 16:20:51,709 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-04 16:21:03,302 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1040682125] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-04 16:21:03,302 INFO L185 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2025-03-04 16:21:03,302 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 26] total 46 [2025-03-04 16:21:03,302 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1501816956] [2025-03-04 16:21:03,302 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2025-03-04 16:21:03,303 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-04 16:21:03,303 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-04 16:21:03,303 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 46 interpolants. [2025-03-04 16:21:03,304 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=188, Invalid=2460, Unknown=4, NotChecked=0, Total=2652 [2025-03-04 16:21:03,304 INFO L87 Difference]: Start difference. First operand 69 states and 83 transitions. cyclomatic complexity: 21 Second operand has 46 states, 37 states have (on average 2.027027027027027) internal successors, (75), 38 states have internal predecessors, (75), 16 states have call successors, (17), 10 states have call predecessors, (17), 13 states have return successors, (16), 11 states have call predecessors, (16), 15 states have call successors, (16)