./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 8fc3dc66 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-?-8fc3dc6-m [2025-03-17 20:37:02,560 INFO L188 SettingsManager]: Resetting all preferences to default values... [2025-03-17 20:37:02,613 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2025-03-17 20:37:02,619 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2025-03-17 20:37:02,620 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2025-03-17 20:37:02,620 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder.Remove goto edges from RCFG [2025-03-17 20:37:02,641 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2025-03-17 20:37:02,642 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2025-03-17 20:37:02,642 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2025-03-17 20:37:02,642 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2025-03-17 20:37:02,642 INFO L153 SettingsManager]: * Use memory slicer=true [2025-03-17 20:37:02,643 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Use SBE=true [2025-03-17 20:37:02,643 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Use old map elimination=false [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2025-03-17 20:37:02,643 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * sizeof long=4 [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * sizeof POINTER=4 [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2025-03-17 20:37:02,643 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * sizeof long double=12 [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Behaviour of calls to undefined functions=OVERAPPROXIMATE_BEHAVIOUR [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Use constant arrays=true [2025-03-17 20:37:02,644 INFO L151 SettingsManager]: Preferences of IcfgBuilder differ from their defaults: [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2025-03-17 20:37:02,644 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2025-03-17 20:37:02,644 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2025-03-17 20:37:02,644 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2025-03-17 20:37:02,646 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-17 20:37:02,864 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2025-03-17 20:37:02,869 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2025-03-17 20:37:02,871 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2025-03-17 20:37:02,872 INFO L270 PluginConnector]: Initializing CDTParser... [2025-03-17 20:37:02,872 INFO L274 PluginConnector]: CDTParser initialized [2025-03-17 20:37:02,872 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-17 20:37:04,054 INFO L533 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/53e2152aa/ab14245ff0b14944b8d2ee11a9bcdb1c/FLAG6d35e3805 [2025-03-17 20:37:04,276 INFO L384 CDTParser]: Found 1 translation units. [2025-03-17 20:37:04,285 INFO L180 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-03-17 20:37:04,300 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/53e2152aa/ab14245ff0b14944b8d2ee11a9bcdb1c/FLAG6d35e3805 [2025-03-17 20:37:04,609 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/53e2152aa/ab14245ff0b14944b8d2ee11a9bcdb1c [2025-03-17 20:37:04,611 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2025-03-17 20:37:04,612 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2025-03-17 20:37:04,613 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2025-03-17 20:37:04,613 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2025-03-17 20:37:04,617 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2025-03-17 20:37:04,617 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,618 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4ea2bf9a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04, skipping insertion in model container [2025-03-17 20:37:04,618 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,634 INFO L175 MainTranslator]: Built tables and reachable declarations [2025-03-17 20:37:04,762 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-03-17 20:37:04,773 INFO L200 MainTranslator]: Completed pre-run [2025-03-17 20:37:04,796 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-03-17 20:37:04,808 INFO L204 MainTranslator]: Completed translation [2025-03-17 20:37:04,809 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04 WrapperNode [2025-03-17 20:37:04,809 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2025-03-17 20:37:04,810 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2025-03-17 20:37:04,810 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2025-03-17 20:37:04,810 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2025-03-17 20:37:04,815 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,824 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,844 INFO L138 Inliner]: procedures = 16, calls = 72, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 116 [2025-03-17 20:37:04,846 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2025-03-17 20:37:04,847 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2025-03-17 20:37:04,847 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2025-03-17 20:37:04,847 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2025-03-17 20:37:04,853 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,854 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,856 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,879 INFO L175 MemorySlicer]: Split 38 memory accesses to 7 slices as follows [2, 7, 6, 6, 6, 5, 6]. 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, 1, 2, 2, 2, 2, 2]. [2025-03-17 20:37:04,879 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,879 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,891 INFO L184 PluginConnector]: Executing the observer ReplaceArrayAssignments from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,892 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,893 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,894 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,900 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2025-03-17 20:37:04,901 INFO L112 PluginConnector]: ------------------------IcfgBuilder---------------------------- [2025-03-17 20:37:04,901 INFO L270 PluginConnector]: Initializing IcfgBuilder... [2025-03-17 20:37:04,901 INFO L274 PluginConnector]: IcfgBuilder initialized [2025-03-17 20:37:04,902 INFO L184 PluginConnector]: Executing the observer IcfgBuilderObserver from plugin IcfgBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (1/1) ... [2025-03-17 20:37:04,906 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-03-17 20:37:04,919 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-17 20:37:04,933 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-17 20:37:04,938 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-17 20:37:04,960 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_12_to_13_0 [2025-03-17 20:37:04,961 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_12_to_13_0 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_13_to_14_0 [2025-03-17 20:37:04,962 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_13_to_14_0 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_11_to_12_0 [2025-03-17 20:37:04,962 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_11_to_12_0 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#2 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#3 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#4 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#5 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#6 [2025-03-17 20:37:04,962 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_14_to_16_0 [2025-03-17 20:37:04,963 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_14_to_16_0 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_10_to_11_0 [2025-03-17 20:37:04,963 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_10_to_11_0 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#2 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#3 [2025-03-17 20:37:04,963 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#4 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#5 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#6 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2025-03-17 20:37:04,964 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#2 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#3 [2025-03-17 20:37:04,964 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#4 [2025-03-17 20:37:04,965 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#5 [2025-03-17 20:37:04,965 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#6 [2025-03-17 20:37:04,965 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2025-03-17 20:37:05,072 INFO L256 CfgBuilder]: Building ICFG [2025-03-17 20:37:05,074 INFO L286 CfgBuilder]: Building CFG for each procedure with an implementation [2025-03-17 20:37:05,358 INFO L1322 $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-17 20:37:05,386 INFO L? ?]: Removed 15 outVars from TransFormulas that were not future-live. [2025-03-17 20:37:05,386 INFO L307 CfgBuilder]: Performing block encoding [2025-03-17 20:37:05,397 INFO L331 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2025-03-17 20:37:05,398 INFO L336 CfgBuilder]: Removed 0 assume(true) statements. [2025-03-17 20:37:05,398 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 17.03 08:37:05 BoogieIcfgContainer [2025-03-17 20:37:05,398 INFO L131 PluginConnector]: ------------------------ END IcfgBuilder---------------------------- [2025-03-17 20:37:05,399 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2025-03-17 20:37:05,399 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2025-03-17 20:37:05,403 INFO L274 PluginConnector]: BuchiAutomizer initialized [2025-03-17 20:37:05,404 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-17 20:37:05,404 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 17.03 08:37:04" (1/3) ... [2025-03-17 20:37:05,405 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@632ead69 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 17.03 08:37:05, skipping insertion in model container [2025-03-17 20:37:05,405 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-17 20:37:05,406 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.03 08:37:04" (2/3) ... [2025-03-17 20:37:05,406 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@632ead69 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 17.03 08:37:05, skipping insertion in model container [2025-03-17 20:37:05,406 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-03-17 20:37:05,406 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 17.03 08:37:05" (3/3) ... [2025-03-17 20:37:05,407 INFO L363 chiAutomizerObserver]: Analyzing ICFG recursified_deep-nested.c [2025-03-17 20:37:05,446 INFO L306 stractBuchiCegarLoop]: Interprodecural is true [2025-03-17 20:37:05,446 INFO L307 stractBuchiCegarLoop]: Hoare is None [2025-03-17 20:37:05,446 INFO L308 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2025-03-17 20:37:05,446 INFO L309 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2025-03-17 20:37:05,446 INFO L310 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2025-03-17 20:37:05,447 INFO L311 stractBuchiCegarLoop]: Difference is false [2025-03-17 20:37:05,447 INFO L312 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2025-03-17 20:37:05,447 INFO L316 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2025-03-17 20:37:05,452 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 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-17 20:37:05,472 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:05,473 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-17 20:37:05,473 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-17 20:37:05,478 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-03-17 20:37:05,478 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-17 20:37:05,479 INFO L338 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2025-03-17 20:37:05,479 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 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-17 20:37:05,484 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:05,485 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-17 20:37:05,485 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-17 20:37:05,485 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-03-17 20:37:05,485 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-03-17 20:37:05,490 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#1(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-17 20:37:05,490 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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#71#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-17 20:37:05,496 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:05,496 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 1 times [2025-03-17 20:37:05,502 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:05,502 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2100112226] [2025-03-17 20:37:05,503 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:05,503 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:05,567 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:05,629 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:05,630 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:05,630 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:05,630 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-17 20:37:05,635 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:05,657 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:05,657 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:05,657 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:05,678 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-17 20:37:05,680 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:05,680 INFO L85 PathProgramCache]: Analyzing trace with hash 260805524, now seen corresponding path program 1 times [2025-03-17 20:37:05,680 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:05,680 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [208338453] [2025-03-17 20:37:05,680 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:05,680 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:05,694 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-03-17 20:37:05,712 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-03-17 20:37:05,712 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:05,712 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:37:06,218 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-17 20:37:06,219 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-17 20:37:06,219 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [208338453] [2025-03-17 20:37:06,220 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [208338453] provided 1 perfect and 0 imperfect interpolant sequences [2025-03-17 20:37:06,220 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-03-17 20:37:06,220 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2025-03-17 20:37:06,220 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [254677464] [2025-03-17 20:37:06,221 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-03-17 20:37:06,223 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-17 20:37:06,223 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-17 20:37:06,240 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2025-03-17 20:37:06,240 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2025-03-17 20:37:06,242 INFO L87 Difference]: Start difference. First operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 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-17 20:37:06,587 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-17 20:37:06,588 INFO L93 Difference]: Finished difference Result 52 states and 66 transitions. [2025-03-17 20:37:06,589 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 52 states and 66 transitions. [2025-03-17 20:37:06,593 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:06,600 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 52 states to 44 states and 56 transitions. [2025-03-17 20:37:06,600 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 44 [2025-03-17 20:37:06,601 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 44 [2025-03-17 20:37:06,601 INFO L73 IsDeterministic]: Start isDeterministic. Operand 44 states and 56 transitions. [2025-03-17 20:37:06,603 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-17 20:37:06,603 INFO L218 hiAutomatonCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-03-17 20:37:06,612 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states and 56 transitions. [2025-03-17 20:37:06,620 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 44. [2025-03-17 20:37:06,621 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 29 states have (on average 1.2758620689655173) internal successors, (37), 33 states have internal predecessors, (37), 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-17 20:37:06,622 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 56 transitions. [2025-03-17 20:37:06,623 INFO L240 hiAutomatonCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-03-17 20:37:06,624 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2025-03-17 20:37:06,626 INFO L432 stractBuchiCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-03-17 20:37:06,627 INFO L338 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2025-03-17 20:37:06,627 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 44 states and 56 transitions. [2025-03-17 20:37:06,627 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:06,629 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-17 20:37:06,629 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-17 20:37:06,629 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-03-17 20:37:06,630 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-17 20:37:06,630 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#1(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-17 20:37:06,630 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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#6(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#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-17 20:37:06,630 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:06,631 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 2 times [2025-03-17 20:37:06,631 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:06,631 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [220251796] [2025-03-17 20:37:06,631 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-03-17 20:37:06,632 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:06,642 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:06,661 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:06,663 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-03-17 20:37:06,663 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:06,663 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-17 20:37:06,666 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:06,677 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:06,677 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:06,677 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:06,682 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-17 20:37:06,683 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:06,683 INFO L85 PathProgramCache]: Analyzing trace with hash 1773786652, now seen corresponding path program 1 times [2025-03-17 20:37:06,683 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:06,683 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [132907021] [2025-03-17 20:37:06,683 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:06,683 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:06,697 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-03-17 20:37:06,718 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-03-17 20:37:06,718 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:06,718 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:37:07,071 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-17 20:37:07,071 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-17 20:37:07,071 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [132907021] [2025-03-17 20:37:07,071 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [132907021] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-17 20:37:07,071 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1492610782] [2025-03-17 20:37:07,071 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:07,071 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-17 20:37:07,072 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-17 20:37:07,076 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-17 20:37:07,077 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-17 20:37:07,151 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-03-17 20:37:07,201 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-03-17 20:37:07,201 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:07,201 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:37:07,208 INFO L256 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 51 conjuncts are in the unsatisfiable core [2025-03-17 20:37:07,214 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-17 20:37:07,300 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-17 20:37:07,424 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-17 20:37:07,866 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-17 20:37:07,866 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-17 20:37:08,592 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-17 20:37:08,592 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1492610782] provided 0 perfect and 2 imperfect interpolant sequences [2025-03-17 20:37:08,592 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-03-17 20:37:08,593 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 11, 11] total 26 [2025-03-17 20:37:08,593 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1483070514] [2025-03-17 20:37:08,593 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-03-17 20:37:08,593 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-17 20:37:08,593 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-17 20:37:08,594 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2025-03-17 20:37:08,594 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=86, Invalid=564, Unknown=0, NotChecked=0, Total=650 [2025-03-17 20:37:08,594 INFO L87 Difference]: Start difference. First operand 44 states and 56 transitions. cyclomatic complexity: 17 Second operand has 26 states, 21 states have (on average 1.619047619047619) internal successors, (34), 21 states have internal predecessors, (34), 9 states have call successors, (10), 8 states have call predecessors, (10), 8 states have return successors, (9), 3 states have call predecessors, (9), 9 states have call successors, (9) [2025-03-17 20:37:09,598 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-17 20:37:09,598 INFO L93 Difference]: Finished difference Result 52 states and 65 transitions. [2025-03-17 20:37:09,598 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 52 states and 65 transitions. [2025-03-17 20:37:09,599 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:09,600 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 52 states to 50 states and 63 transitions. [2025-03-17 20:37:09,600 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 50 [2025-03-17 20:37:09,601 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 50 [2025-03-17 20:37:09,601 INFO L73 IsDeterministic]: Start isDeterministic. Operand 50 states and 63 transitions. [2025-03-17 20:37:09,601 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-17 20:37:09,601 INFO L218 hiAutomatonCegarLoop]: Abstraction has 50 states and 63 transitions. [2025-03-17 20:37:09,601 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states and 63 transitions. [2025-03-17 20:37:09,603 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 48. [2025-03-17 20:37:09,603 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 32 states have (on average 1.25) internal successors, (40), 35 states have internal predecessors, (40), 10 states have call successors, (10), 6 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-17 20:37:09,604 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 60 transitions. [2025-03-17 20:37:09,604 INFO L240 hiAutomatonCegarLoop]: Abstraction has 48 states and 60 transitions. [2025-03-17 20:37:09,604 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2025-03-17 20:37:09,605 INFO L432 stractBuchiCegarLoop]: Abstraction has 48 states and 60 transitions. [2025-03-17 20:37:09,605 INFO L338 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2025-03-17 20:37:09,605 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 48 states and 60 transitions. [2025-03-17 20:37:09,605 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:37:09,605 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-17 20:37:09,605 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-17 20:37:09,606 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-03-17 20:37:09,606 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-17 20:37:09,606 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#1(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-17 20:37:09,606 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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(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#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#57#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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#6(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#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-17 20:37:09,607 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:09,607 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 3 times [2025-03-17 20:37:09,607 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:09,607 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [521515916] [2025-03-17 20:37:09,607 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-03-17 20:37:09,607 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:09,614 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:09,621 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:09,621 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) [2025-03-17 20:37:09,621 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:09,621 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-17 20:37:09,623 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:37:09,629 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:37:09,629 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:09,629 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:37:09,631 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-17 20:37:09,632 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:37:09,632 INFO L85 PathProgramCache]: Analyzing trace with hash -693514383, now seen corresponding path program 1 times [2025-03-17 20:37:09,632 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:37:09,632 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [227116718] [2025-03-17 20:37:09,632 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:09,632 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:37:09,640 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-03-17 20:37:09,653 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-03-17 20:37:09,653 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:09,656 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:37:10,044 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-17 20:37:10,044 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-17 20:37:10,044 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [227116718] [2025-03-17 20:37:10,044 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [227116718] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-17 20:37:10,044 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [243043786] [2025-03-17 20:37:10,045 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:37:10,045 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-17 20:37:10,045 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-17 20:37:10,047 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-17 20:37:10,048 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-17 20:37:10,102 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-03-17 20:37:10,153 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-03-17 20:37:10,153 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:37:10,153 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:37:10,156 INFO L256 TraceCheckSpWp]: Trace formula consists of 468 conjuncts, 84 conjuncts are in the unsatisfiable core [2025-03-17 20:37:10,159 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-17 20:37:10,173 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-17 20:37:10,389 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-17 20:37:59,246 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-03-17 20:37:59,247 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-03-17 20:38:00,526 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-03-17 20:38:00,526 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [243043786] provided 0 perfect and 2 imperfect interpolant sequences [2025-03-17 20:38:00,526 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-03-17 20:38:00,526 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 20, 14] total 40 [2025-03-17 20:38:00,526 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [911249141] [2025-03-17 20:38:00,526 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-03-17 20:38:00,527 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-03-17 20:38:00,527 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-03-17 20:38:00,527 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2025-03-17 20:38:00,528 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=167, Invalid=1389, Unknown=4, NotChecked=0, Total=1560 [2025-03-17 20:38:00,528 INFO L87 Difference]: Start difference. First operand 48 states and 60 transitions. cyclomatic complexity: 17 Second operand has 40 states, 31 states have (on average 1.6129032258064515) internal successors, (50), 33 states have internal predecessors, (50), 14 states have call successors, (15), 10 states have call predecessors, (15), 11 states have return successors, (14), 7 states have call predecessors, (14), 14 states have call successors, (14) [2025-03-17 20:38:12,545 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0] [2025-03-17 20:38:26,207 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0] [2025-03-17 20:38:26,583 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-03-17 20:38:26,583 INFO L93 Difference]: Finished difference Result 62 states and 76 transitions. [2025-03-17 20:38:26,583 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 62 states and 76 transitions. [2025-03-17 20:38:26,585 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:38:26,586 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 62 states to 52 states and 65 transitions. [2025-03-17 20:38:26,586 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 52 [2025-03-17 20:38:26,586 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 52 [2025-03-17 20:38:26,586 INFO L73 IsDeterministic]: Start isDeterministic. Operand 52 states and 65 transitions. [2025-03-17 20:38:26,586 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-03-17 20:38:26,586 INFO L218 hiAutomatonCegarLoop]: Abstraction has 52 states and 65 transitions. [2025-03-17 20:38:26,587 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states and 65 transitions. [2025-03-17 20:38:26,589 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 50. [2025-03-17 20:38:26,589 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 33 states have (on average 1.2424242424242424) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 7 states have return successors, (11), 8 states have call predecessors, (11), 8 states have call successors, (11) [2025-03-17 20:38:26,589 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 62 transitions. [2025-03-17 20:38:26,589 INFO L240 hiAutomatonCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-03-17 20:38:26,590 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2025-03-17 20:38:26,590 INFO L432 stractBuchiCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-03-17 20:38:26,591 INFO L338 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2025-03-17 20:38:26,591 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 50 states and 62 transitions. [2025-03-17 20:38:26,591 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-03-17 20:38:26,591 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-03-17 20:38:26,591 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-03-17 20:38:26,592 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-03-17 20:38:26,592 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-17 20:38:26,592 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#1(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-17 20:38:26,592 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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(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#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#4(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#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#1(~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;" >"#61#return;" "call #t~mem24 := read~int#3(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#3(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#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#1(~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;" "assume true;" >"#57#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#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#6(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#6(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#6(~b.base, ~b.offset, 4);call #t~mem30 := read~int#1(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#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-17 20:38:26,593 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:38:26,593 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 4 times [2025-03-17 20:38:26,593 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:38:26,593 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [245318989] [2025-03-17 20:38:26,593 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-03-17 20:38:26,593 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:38:26,599 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 2 statements into 2 equivalence classes. [2025-03-17 20:38:26,607 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:38:26,607 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-03-17 20:38:26,607 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:38:26,607 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-03-17 20:38:26,608 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-03-17 20:38:26,619 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-03-17 20:38:26,619 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:38:26,619 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-03-17 20:38:26,622 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-03-17 20:38:26,623 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-03-17 20:38:26,623 INFO L85 PathProgramCache]: Analyzing trace with hash -2045536634, now seen corresponding path program 1 times [2025-03-17 20:38:26,623 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-03-17 20:38:26,623 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1476480569] [2025-03-17 20:38:26,623 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:38:26,623 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-03-17 20:38:26,632 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-03-17 20:38:26,648 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-03-17 20:38:26,648 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:38:26,648 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:38:27,110 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-17 20:38:27,111 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-03-17 20:38:27,111 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1476480569] [2025-03-17 20:38:27,111 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1476480569] provided 0 perfect and 1 imperfect interpolant sequences [2025-03-17 20:38:27,111 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2075889767] [2025-03-17 20:38:27,111 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-03-17 20:38:27,111 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-03-17 20:38:27,111 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2025-03-17 20:38:27,113 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-17 20:38:27,115 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-17 20:38:27,180 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-03-17 20:38:27,238 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-03-17 20:38:27,238 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-03-17 20:38:27,239 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-03-17 20:38:27,241 INFO L256 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 82 conjuncts are in the unsatisfiable core [2025-03-17 20:38:27,246 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-03-17 20:38:27,249 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