./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 551b0097 Calling Ultimate with: /root/.sdkman/candidates/java/21.0.5-tem/bin/java -Dosgi.configuration.area=/storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.6.800.v20240513-1750.jar -data @noDefault -ultimatedata /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i ../sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c -s /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate-jdk21/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-?-551b009-m [2025-01-10 07:50:51,838 INFO L188 SettingsManager]: Resetting all preferences to default values... [2025-01-10 07:50:51,898 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2025-01-10 07:50:51,901 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2025-01-10 07:50:51,901 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2025-01-10 07:50:51,919 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2025-01-10 07:50:51,920 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2025-01-10 07:50:51,920 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2025-01-10 07:50:51,920 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2025-01-10 07:50:51,920 INFO L153 SettingsManager]: * Use memory slicer=true [2025-01-10 07:50:51,921 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Use SBE=true [2025-01-10 07:50:51,921 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Use old map elimination=false [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2025-01-10 07:50:51,921 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2025-01-10 07:50:51,922 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * sizeof long=4 [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * sizeof POINTER=4 [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * sizeof long double=12 [2025-01-10 07:50:51,922 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2025-01-10 07:50:51,923 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2025-01-10 07:50:51,923 INFO L153 SettingsManager]: * Behaviour of calls to undefined functions=OVERAPPROXIMATE_BEHAVIOUR [2025-01-10 07:50:51,923 INFO L153 SettingsManager]: * Use constant arrays=true [2025-01-10 07:50:51,923 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2025-01-10 07:50:51,923 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2025-01-10 07:50:51,923 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2025-01-10 07:50:51,923 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2025-01-10 07:50:51,923 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2025-01-10 07:50:51,923 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-jdk21/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-01-10 07:50:52,172 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2025-01-10 07:50:52,179 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2025-01-10 07:50:52,182 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2025-01-10 07:50:52,183 INFO L270 PluginConnector]: Initializing CDTParser... [2025-01-10 07:50:52,183 INFO L274 PluginConnector]: CDTParser initialized [2025-01-10 07:50:52,184 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-01-10 07:50:53,453 INFO L533 CDTParser]: Created temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/84b4ffdf3/4a3bee8925ab452899a02c13098b4241/FLAGc1df34537 [2025-01-10 07:50:53,665 INFO L384 CDTParser]: Found 1 translation units. [2025-01-10 07:50:53,665 INFO L180 CDTParser]: Scanning /storage/repos/ultimate-jdk21/releaseScripts/default/sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-01-10 07:50:53,671 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/84b4ffdf3/4a3bee8925ab452899a02c13098b4241/FLAGc1df34537 [2025-01-10 07:50:53,681 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/84b4ffdf3/4a3bee8925ab452899a02c13098b4241 [2025-01-10 07:50:53,684 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2025-01-10 07:50:53,685 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2025-01-10 07:50:53,686 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2025-01-10 07:50:53,686 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2025-01-10 07:50:53,689 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2025-01-10 07:50:53,690 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,690 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@39712991 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53, skipping insertion in model container [2025-01-10 07:50:53,690 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,703 INFO L175 MainTranslator]: Built tables and reachable declarations [2025-01-10 07:50:53,820 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-01-10 07:50:53,828 INFO L200 MainTranslator]: Completed pre-run [2025-01-10 07:50:53,852 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-01-10 07:50:53,870 INFO L204 MainTranslator]: Completed translation [2025-01-10 07:50:53,872 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53 WrapperNode [2025-01-10 07:50:53,872 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2025-01-10 07:50:53,873 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2025-01-10 07:50:53,874 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2025-01-10 07:50:53,874 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2025-01-10 07:50:53,879 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,885 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,904 INFO L138 Inliner]: procedures = 16, calls = 72, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 116 [2025-01-10 07:50:53,904 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2025-01-10 07:50:53,904 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2025-01-10 07:50:53,904 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2025-01-10 07:50:53,904 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2025-01-10 07:50:53,911 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,911 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,913 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,935 INFO L175 MemorySlicer]: Split 38 memory accesses to 7 slices as follows [2, 7, 6, 5, 6, 6, 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-01-10 07:50:53,935 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,936 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,944 INFO L184 PluginConnector]: Executing the observer ReplaceArrayAssignments from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,945 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,946 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,948 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,949 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,952 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2025-01-10 07:50:53,954 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2025-01-10 07:50:53,955 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2025-01-10 07:50:53,955 INFO L274 PluginConnector]: RCFGBuilder initialized [2025-01-10 07:50:53,957 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (1/1) ... [2025-01-10 07:50:53,960 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:50:53,970 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:50:53,985 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:50:53,988 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_12_to_13_0 [2025-01-10 07:50:54,010 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_12_to_13_0 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_13_to_14_0 [2025-01-10 07:50:54,010 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_13_to_14_0 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_11_to_12_0 [2025-01-10 07:50:54,010 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_11_to_12_0 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#2 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#3 [2025-01-10 07:50:54,010 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#4 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#5 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#6 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_14_to_16_0 [2025-01-10 07:50:54,011 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_14_to_16_0 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_10_to_11_0 [2025-01-10 07:50:54,011 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_10_to_11_0 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#2 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#3 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#4 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#5 [2025-01-10 07:50:54,011 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#6 [2025-01-10 07:50:54,012 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2025-01-10 07:50:54,012 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2025-01-10 07:50:54,012 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2025-01-10 07:50:54,012 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2025-01-10 07:50:54,012 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#2 [2025-01-10 07:50:54,013 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#3 [2025-01-10 07:50:54,013 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#4 [2025-01-10 07:50:54,013 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#5 [2025-01-10 07:50:54,013 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#6 [2025-01-10 07:50:54,013 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2025-01-10 07:50:54,112 INFO L234 CfgBuilder]: Building ICFG [2025-01-10 07:50:54,113 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2025-01-10 07:50:54,339 INFO L? ?]: Removed 15 outVars from TransFormulas that were not future-live. [2025-01-10 07:50:54,339 INFO L283 CfgBuilder]: Performing block encoding [2025-01-10 07:50:54,345 INFO L307 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2025-01-10 07:50:54,345 INFO L312 CfgBuilder]: Removed 0 assume(true) statements. [2025-01-10 07:50:54,346 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.01 07:50:54 BoogieIcfgContainer [2025-01-10 07:50:54,346 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2025-01-10 07:50:54,347 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2025-01-10 07:50:54,347 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2025-01-10 07:50:54,354 INFO L274 PluginConnector]: BuchiAutomizer initialized [2025-01-10 07:50:54,355 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:50:54,355 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 10.01 07:50:53" (1/3) ... [2025-01-10 07:50:54,356 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@24272bd3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.01 07:50:54, skipping insertion in model container [2025-01-10 07:50:54,356 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:50:54,356 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:50:53" (2/3) ... [2025-01-10 07:50:54,356 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@24272bd3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.01 07:50:54, skipping insertion in model container [2025-01-10 07:50:54,356 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:50:54,356 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.01 07:50:54" (3/3) ... [2025-01-10 07:50:54,357 INFO L363 chiAutomizerObserver]: Analyzing ICFG recursified_deep-nested.c [2025-01-10 07:50:54,393 INFO L306 stractBuchiCegarLoop]: Interprodecural is true [2025-01-10 07:50:54,393 INFO L307 stractBuchiCegarLoop]: Hoare is None [2025-01-10 07:50:54,393 INFO L308 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2025-01-10 07:50:54,393 INFO L309 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2025-01-10 07:50:54,393 INFO L310 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2025-01-10 07:50:54,393 INFO L311 stractBuchiCegarLoop]: Difference is false [2025-01-10 07:50:54,394 INFO L312 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2025-01-10 07:50:54,394 INFO L316 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2025-01-10 07:50:54,399 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-01-10 07:50:54,413 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2025-01-10 07:50:54,413 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:50:54,413 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:50:54,417 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:50:54,417 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:50:54,417 INFO L338 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2025-01-10 07:50:54,418 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-01-10 07:50:54,420 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2025-01-10 07:50:54,420 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:50:54,420 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:50:54,420 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:50:54,421 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:50:54,425 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#3(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-01-10 07:50:54,426 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#3(~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#2(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#2(~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;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:50:54,429 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:50:54,429 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 1 times [2025-01-10 07:50:54,435 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:50:54,435 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1415943752] [2025-01-10 07:50:54,435 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:50:54,436 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:50:54,499 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:50:54,568 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:50:54,569 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:54,569 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:50:54,569 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:50:54,576 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:50:54,613 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:50:54,615 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:54,615 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:50:54,636 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:50:54,640 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:50:54,640 INFO L85 PathProgramCache]: Analyzing trace with hash 376946881, now seen corresponding path program 1 times [2025-01-10 07:50:54,640 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:50:54,640 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1568349518] [2025-01-10 07:50:54,640 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:50:54,640 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:50:54,651 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-01-10 07:50:54,671 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-01-10 07:50:54,671 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:54,671 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:50:55,213 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:50:55,213 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:50:55,214 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1568349518] [2025-01-10 07:50:55,214 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1568349518] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:50:55,214 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-01-10 07:50:55,214 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2025-01-10 07:50:55,215 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [438685752] [2025-01-10 07:50:55,215 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:50:55,217 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:50:55,218 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:50:55,235 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2025-01-10 07:50:55,235 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2025-01-10 07:50:55,237 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-01-10 07:50:55,559 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:50:55,561 INFO L93 Difference]: Finished difference Result 53 states and 67 transitions. [2025-01-10 07:50:55,562 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 53 states and 67 transitions. [2025-01-10 07:50:55,564 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-01-10 07:50:55,581 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 53 states to 45 states and 57 transitions. [2025-01-10 07:50:55,581 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 45 [2025-01-10 07:50:55,582 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2025-01-10 07:50:55,582 INFO L73 IsDeterministic]: Start isDeterministic. Operand 45 states and 57 transitions. [2025-01-10 07:50:55,583 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:50:55,583 INFO L218 hiAutomatonCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-01-10 07:50:55,591 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states and 57 transitions. [2025-01-10 07:50:55,600 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 45. [2025-01-10 07:50:55,601 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-01-10 07:50:55,601 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 57 transitions. [2025-01-10 07:50:55,602 INFO L240 hiAutomatonCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-01-10 07:50:55,603 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2025-01-10 07:50:55,606 INFO L432 stractBuchiCegarLoop]: Abstraction has 45 states and 57 transitions. [2025-01-10 07:50:55,607 INFO L338 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2025-01-10 07:50:55,607 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 45 states and 57 transitions. [2025-01-10 07:50:55,607 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-01-10 07:50:55,607 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:50:55,608 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:50:55,608 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:50:55,608 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-01-10 07:50:55,608 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#3(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-01-10 07:50:55,608 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#3(~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#2(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#2(~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#5(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#5(~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;" >"#106#return;" "call #t~mem32 := read~int#2(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#2(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#2(~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;" >"#108#return;" "assume true;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:50:55,611 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:50:55,611 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 2 times [2025-01-10 07:50:55,611 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:50:55,611 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1686494394] [2025-01-10 07:50:55,611 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:50:55,612 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:50:55,625 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:50:55,633 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:50:55,633 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-01-10 07:50:55,633 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:50:55,633 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:50:55,635 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:50:55,642 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:50:55,642 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:55,642 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:50:55,647 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:50:55,647 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:50:55,647 INFO L85 PathProgramCache]: Analyzing trace with hash 1072601781, now seen corresponding path program 1 times [2025-01-10 07:50:55,647 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:50:55,647 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2127358590] [2025-01-10 07:50:55,647 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:50:55,647 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:50:55,659 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:50:55,679 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:50:55,679 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:55,679 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:50:56,008 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-01-10 07:50:56,009 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:50:56,009 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2127358590] [2025-01-10 07:50:56,009 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2127358590] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:50:56,009 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1786635478] [2025-01-10 07:50:56,009 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:50:56,009 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:50:56,009 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:50:56,011 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:50:56,013 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2025-01-10 07:50:56,084 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:50:56,126 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:50:56,126 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:50:56,126 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:50:56,134 INFO L256 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 38 conjuncts are in the unsatisfiable core [2025-01-10 07:50:56,137 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:50:56,213 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-01-10 07:50:56,391 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:50:56,391 INFO L308 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2025-01-10 07:50:56,391 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1786635478] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:50:56,391 INFO L185 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2025-01-10 07:50:56,391 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [7] total 12 [2025-01-10 07:50:56,391 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [256807346] [2025-01-10 07:50:56,391 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:50:56,392 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:50:56,392 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:50:56,392 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2025-01-10 07:50:56,392 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=30, Invalid=102, Unknown=0, NotChecked=0, Total=132 [2025-01-10 07:50:56,393 INFO L87 Difference]: Start difference. First operand 45 states and 57 transitions. cyclomatic complexity: 17 Second operand has 7 states, 6 states have (on average 2.0) internal successors, (12), 6 states have internal predecessors, (12), 3 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (3), 1 states have call predecessors, (3), 3 states have call successors, (3) [2025-01-10 07:51:08,643 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-01-10 07:51:20,712 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-01-10 07:51:32,749 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.01s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0] [2025-01-10 07:51:32,801 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:51:32,801 INFO L93 Difference]: Finished difference Result 72 states and 92 transitions. [2025-01-10 07:51:32,801 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 72 states and 92 transitions. [2025-01-10 07:51:32,802 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 49 [2025-01-10 07:51:32,803 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 72 states to 70 states and 90 transitions. [2025-01-10 07:51:32,804 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 70 [2025-01-10 07:51:32,804 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 70 [2025-01-10 07:51:32,804 INFO L73 IsDeterministic]: Start isDeterministic. Operand 70 states and 90 transitions. [2025-01-10 07:51:32,804 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:51:32,804 INFO L218 hiAutomatonCegarLoop]: Abstraction has 70 states and 90 transitions. [2025-01-10 07:51:32,804 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states and 90 transitions. [2025-01-10 07:51:32,810 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 47. [2025-01-10 07:51:32,810 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 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), 5 states have return successors, (9), 8 states have call predecessors, (9), 8 states have call successors, (9) [2025-01-10 07:51:32,811 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 59 transitions. [2025-01-10 07:51:32,811 INFO L240 hiAutomatonCegarLoop]: Abstraction has 47 states and 59 transitions. [2025-01-10 07:51:32,811 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2025-01-10 07:51:32,813 INFO L432 stractBuchiCegarLoop]: Abstraction has 47 states and 59 transitions. [2025-01-10 07:51:32,813 INFO L338 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2025-01-10 07:51:32,813 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 47 states and 59 transitions. [2025-01-10 07:51:32,814 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-01-10 07:51:32,814 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:51:32,814 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:51:32,815 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:51:32,816 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-01-10 07:51:32,816 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#3(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-01-10 07:51:32,816 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#3(~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#2(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#2(~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#5(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#5(~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#4(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#4(~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;" >"#98#return;" "call #t~mem28 := read~int#5(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#5(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#5(~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;" >"#100#return;" "assume true;" >"#106#return;" "call #t~mem32 := read~int#2(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#2(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#2(~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;" >"#108#return;" "assume true;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:51:32,817 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:32,817 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 3 times [2025-01-10 07:51:32,817 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:32,817 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [859429444] [2025-01-10 07:51:32,817 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:51:32,817 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:32,828 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:32,843 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:32,844 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) [2025-01-10 07:51:32,844 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:32,844 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:51:32,846 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:32,853 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:32,854 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:32,854 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:32,856 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:51:32,857 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:32,857 INFO L85 PathProgramCache]: Analyzing trace with hash 2046612426, now seen corresponding path program 1 times [2025-01-10 07:51:32,857 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:32,857 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1718413998] [2025-01-10 07:51:32,857 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:32,857 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:32,868 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-01-10 07:51:32,893 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-01-10 07:51:32,893 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:32,893 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:33,386 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:51:33,388 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:51:33,388 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1718413998] [2025-01-10 07:51:33,388 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1718413998] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:51:33,388 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [497783895] [2025-01-10 07:51:33,388 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:33,388 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:51:33,388 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:51:33,391 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:51:33,393 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2025-01-10 07:51:33,455 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-01-10 07:51:33,513 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-01-10 07:51:33,513 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:33,513 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:33,520 INFO L256 TraceCheckSpWp]: Trace formula consists of 468 conjuncts, 58 conjuncts are in the unsatisfiable core [2025-01-10 07:51:33,523 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:51:33,695 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-01-10 07:51:34,317 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 6 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:51:34,318 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:51:35,173 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:51:35,173 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [497783895] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:51:35,173 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:51:35,173 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 15, 12] total 32 [2025-01-10 07:51:35,173 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1547990942] [2025-01-10 07:51:35,173 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:51:35,174 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:51:35,174 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:51:35,174 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2025-01-10 07:51:35,175 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=128, Invalid=864, Unknown=0, NotChecked=0, Total=992 [2025-01-10 07:51:35,175 INFO L87 Difference]: Start difference. First operand 47 states and 59 transitions. cyclomatic complexity: 17 Second operand has 32 states, 27 states have (on average 1.8518518518518519) internal successors, (50), 28 states have internal predecessors, (50), 13 states have call successors, (15), 7 states have call predecessors, (15), 10 states have return successors, (14), 7 states have call predecessors, (14), 13 states have call successors, (14) [2025-01-10 07:51:36,607 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:51:36,607 INFO L93 Difference]: Finished difference Result 66 states and 82 transitions. [2025-01-10 07:51:36,607 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 66 states and 82 transitions. [2025-01-10 07:51:36,608 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 37 [2025-01-10 07:51:36,611 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 66 states to 60 states and 73 transitions. [2025-01-10 07:51:36,611 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 60 [2025-01-10 07:51:36,611 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 60 [2025-01-10 07:51:36,612 INFO L73 IsDeterministic]: Start isDeterministic. Operand 60 states and 73 transitions. [2025-01-10 07:51:36,612 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:51:36,612 INFO L218 hiAutomatonCegarLoop]: Abstraction has 60 states and 73 transitions. [2025-01-10 07:51:36,613 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states and 73 transitions. [2025-01-10 07:51:36,616 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 60. [2025-01-10 07:51:36,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 60 states, 40 states have (on average 1.2) internal successors, (48), 43 states have internal predecessors, (48), 12 states have call successors, (12), 8 states have call predecessors, (12), 8 states have return successors, (13), 9 states have call predecessors, (13), 9 states have call successors, (13) [2025-01-10 07:51:36,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 73 transitions. [2025-01-10 07:51:36,618 INFO L240 hiAutomatonCegarLoop]: Abstraction has 60 states and 73 transitions. [2025-01-10 07:51:36,619 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2025-01-10 07:51:36,619 INFO L432 stractBuchiCegarLoop]: Abstraction has 60 states and 73 transitions. [2025-01-10 07:51:36,619 INFO L338 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2025-01-10 07:51:36,619 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 60 states and 73 transitions. [2025-01-10 07:51:36,620 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 37 [2025-01-10 07:51:36,620 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:51:36,620 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:51:36,621 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:51:36,621 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-01-10 07:51:36,621 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#3(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-01-10 07:51:36,621 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#3(~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#2(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#2(~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#5(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#5(~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#4(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#4(~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#6(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#6(~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;" >"#102#return;" "call #t~mem24 := read~int#4(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#4(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#4(~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;" >"#104#return;" "assume true;" >"#98#return;" "call #t~mem28 := read~int#5(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#5(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#5(~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;" >"#100#return;" "assume true;" >"#106#return;" "call #t~mem32 := read~int#2(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#2(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#2(~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;" >"#108#return;" "assume true;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:51:36,621 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:36,621 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 4 times [2025-01-10 07:51:36,621 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:36,621 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [470126611] [2025-01-10 07:51:36,621 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:51:36,622 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:36,630 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 3 statements into 2 equivalence classes. [2025-01-10 07:51:36,635 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:36,635 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:51:36,635 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:36,635 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:51:36,636 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:36,641 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:36,641 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:36,641 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:36,643 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:51:36,644 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:36,644 INFO L85 PathProgramCache]: Analyzing trace with hash -1754161005, now seen corresponding path program 1 times [2025-01-10 07:51:36,644 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:36,644 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1927490027] [2025-01-10 07:51:36,644 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:36,644 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:36,657 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-01-10 07:51:36,679 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-01-10 07:51:36,679 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:36,679 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:37,122 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-01-10 07:51:37,122 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:51:37,122 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1927490027] [2025-01-10 07:51:37,122 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1927490027] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:51:37,122 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [845635704] [2025-01-10 07:51:37,122 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:37,123 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:51:37,123 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:51:37,142 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:51:37,144 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2025-01-10 07:51:37,209 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-01-10 07:51:37,311 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-01-10 07:51:37,311 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:37,312 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:37,316 INFO L256 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 88 conjuncts are in the unsatisfiable core [2025-01-10 07:51:37,320 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:51:37,324 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-01-10 07:51:37,453 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-01-10 07:51:37,586 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-01-10 07:51:38,044 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:51:38,044 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:51:38,946 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-01-10 07:51:38,976 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-01-10 07:51:38,976 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [845635704] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:51:38,977 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:51:38,977 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 16, 12] total 33 [2025-01-10 07:51:38,977 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1086261692] [2025-01-10 07:51:38,977 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:51:38,977 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:51:38,977 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:51:38,977 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 33 interpolants. [2025-01-10 07:51:38,978 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=934, Unknown=0, NotChecked=0, Total=1056 [2025-01-10 07:51:38,978 INFO L87 Difference]: Start difference. First operand 60 states and 73 transitions. cyclomatic complexity: 19 Second operand has 33 states, 27 states have (on average 2.1481481481481484) internal successors, (58), 28 states have internal predecessors, (58), 15 states have call successors, (17), 8 states have call predecessors, (17), 10 states have return successors, (16), 5 states have call predecessors, (16), 15 states have call successors, (16) [2025-01-10 07:51:40,638 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:51:40,638 INFO L93 Difference]: Finished difference Result 95 states and 119 transitions. [2025-01-10 07:51:40,638 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 95 states and 119 transitions. [2025-01-10 07:51:40,640 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 52 [2025-01-10 07:51:40,641 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 95 states to 91 states and 113 transitions. [2025-01-10 07:51:40,641 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 91 [2025-01-10 07:51:40,641 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 91 [2025-01-10 07:51:40,644 INFO L73 IsDeterministic]: Start isDeterministic. Operand 91 states and 113 transitions. [2025-01-10 07:51:40,645 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:51:40,645 INFO L218 hiAutomatonCegarLoop]: Abstraction has 91 states and 113 transitions. [2025-01-10 07:51:40,645 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 91 states and 113 transitions. [2025-01-10 07:51:40,649 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 91 to 80. [2025-01-10 07:51:40,650 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 80 states, 52 states have (on average 1.1730769230769231) internal successors, (61), 56 states have internal predecessors, (61), 16 states have call successors, (16), 11 states have call predecessors, (16), 12 states have return successors, (22), 12 states have call predecessors, (22), 12 states have call successors, (22) [2025-01-10 07:51:40,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 80 states and 99 transitions. [2025-01-10 07:51:40,651 INFO L240 hiAutomatonCegarLoop]: Abstraction has 80 states and 99 transitions. [2025-01-10 07:51:40,651 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2025-01-10 07:51:40,652 INFO L432 stractBuchiCegarLoop]: Abstraction has 80 states and 99 transitions. [2025-01-10 07:51:40,652 INFO L338 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2025-01-10 07:51:40,652 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 80 states and 99 transitions. [2025-01-10 07:51:40,653 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 47 [2025-01-10 07:51:40,653 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:51:40,653 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:51:40,655 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:51:40,655 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-01-10 07:51:40,655 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#3(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-01-10 07:51:40,655 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#3(~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#2(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#2(~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#5(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#5(~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#4(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#4(~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#6(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#6(~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;call #t~mem6#1 := read~int#3(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#2(~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;call #t~mem11#1 := read~int#5(~c#1.base, ~c#1.offset, 4);call #t~mem12#1 := read~int#4(~d#1.base, ~d#1.offset, 4);#t~short13#1 := #t~mem11#1 % 4294967296 == #t~mem12#1 % 4294967296;" "#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#6(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#6(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#6(~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;" >"#110#return;" "assume true;" >"#102#return;" "call #t~mem24 := read~int#4(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#4(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#4(~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;" >"#104#return;" "assume true;" >"#98#return;" "call #t~mem28 := read~int#5(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#5(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#5(~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;" >"#100#return;" "assume true;" >"#106#return;" "call #t~mem32 := read~int#2(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#2(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#2(~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;" >"#108#return;" "assume true;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:51:40,656 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:40,656 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 5 times [2025-01-10 07:51:40,656 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:40,656 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [676164234] [2025-01-10 07:51:40,656 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:51:40,656 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:40,661 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:40,668 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:40,668 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-01-10 07:51:40,668 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:40,668 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:51:40,669 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:40,673 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:40,673 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:40,673 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:40,676 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:51:40,676 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:40,676 INFO L85 PathProgramCache]: Analyzing trace with hash 198549804, now seen corresponding path program 1 times [2025-01-10 07:51:40,676 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:40,676 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1031124384] [2025-01-10 07:51:40,676 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:40,677 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:40,694 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-01-10 07:51:40,704 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-01-10 07:51:40,704 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:40,704 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:40,755 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2025-01-10 07:51:40,756 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:51:40,756 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1031124384] [2025-01-10 07:51:40,756 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1031124384] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:51:40,756 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-01-10 07:51:40,756 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2025-01-10 07:51:40,756 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [120051772] [2025-01-10 07:51:40,756 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:51:40,757 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:51:40,757 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:51:40,757 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2025-01-10 07:51:40,757 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2025-01-10 07:51:40,758 INFO L87 Difference]: Start difference. First operand 80 states and 99 transitions. cyclomatic complexity: 27 Second operand has 4 states, 4 states have (on average 8.75) internal successors, (35), 4 states have internal predecessors, (35), 2 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (8), 1 states have call predecessors, (8), 2 states have call successors, (8) [2025-01-10 07:51:40,773 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:51:40,773 INFO L93 Difference]: Finished difference Result 83 states and 102 transitions. [2025-01-10 07:51:40,773 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 83 states and 102 transitions. [2025-01-10 07:51:40,774 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 50 [2025-01-10 07:51:40,778 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 83 states to 83 states and 102 transitions. [2025-01-10 07:51:40,778 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 83 [2025-01-10 07:51:40,778 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 83 [2025-01-10 07:51:40,778 INFO L73 IsDeterministic]: Start isDeterministic. Operand 83 states and 102 transitions. [2025-01-10 07:51:40,779 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:51:40,779 INFO L218 hiAutomatonCegarLoop]: Abstraction has 83 states and 102 transitions. [2025-01-10 07:51:40,779 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states and 102 transitions. [2025-01-10 07:51:40,784 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 82. [2025-01-10 07:51:40,784 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 82 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 58 states have internal predecessors, (63), 16 states have call successors, (16), 11 states have call predecessors, (16), 12 states have return successors, (22), 12 states have call predecessors, (22), 12 states have call successors, (22) [2025-01-10 07:51:40,785 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 101 transitions. [2025-01-10 07:51:40,785 INFO L240 hiAutomatonCegarLoop]: Abstraction has 82 states and 101 transitions. [2025-01-10 07:51:40,786 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2025-01-10 07:51:40,786 INFO L432 stractBuchiCegarLoop]: Abstraction has 82 states and 101 transitions. [2025-01-10 07:51:40,786 INFO L338 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2025-01-10 07:51:40,786 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 82 states and 101 transitions. [2025-01-10 07:51:40,787 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 49 [2025-01-10 07:51:40,787 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:51:40,787 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:51:40,787 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:51:40,787 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-01-10 07:51:40,788 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#3(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-01-10 07:51:40,788 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#3(~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#2(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#2(~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#5(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#5(~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#4(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#4(~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#6(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#6(~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;call #t~mem6#1 := read~int#3(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#2(~b#1.base, ~b#1.offset, 4);#t~short10#1 := #t~mem6#1 % 4294967296 == #t~mem7#1 % 4294967296;" "assume #t~short10#1;call #t~mem8#1 := read~int#2(~b#1.base, ~b#1.offset, 4);call #t~mem9#1 := read~int#5(~c#1.base, ~c#1.offset, 4);#t~short10#1 := #t~mem8#1 % 4294967296 == #t~mem9#1 % 4294967296;" "#t~short13#1 := #t~short10#1;" "assume #t~short13#1;call #t~mem11#1 := read~int#5(~c#1.base, ~c#1.offset, 4);call #t~mem12#1 := read~int#4(~d#1.base, ~d#1.offset, 4);#t~short13#1 := #t~mem11#1 % 4294967296 == #t~mem12#1 % 4294967296;" "#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#6(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#6(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#6(~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;" >"#110#return;" "assume true;" >"#102#return;" "call #t~mem24 := read~int#4(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#4(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#4(~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;" >"#104#return;" "assume true;" >"#98#return;" "call #t~mem28 := read~int#5(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#5(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#5(~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;" >"#100#return;" "assume true;" >"#106#return;" "call #t~mem32 := read~int#2(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#2(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#2(~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;" >"#108#return;" "assume true;" >"#112#return;" "call #t~mem36 := read~int#3(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#3(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-01-10 07:51:40,789 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:40,789 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 6 times [2025-01-10 07:51:40,789 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:40,789 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1684506018] [2025-01-10 07:51:40,789 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:51:40,789 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:40,794 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:40,798 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:40,799 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 1 check-sat command(s) [2025-01-10 07:51:40,799 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:40,799 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:51:40,800 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:51:40,804 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:51:40,804 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:40,805 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:51:40,807 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:51:40,808 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:51:40,808 INFO L85 PathProgramCache]: Analyzing trace with hash -49596690, now seen corresponding path program 1 times [2025-01-10 07:51:40,808 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:51:40,808 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [831089858] [2025-01-10 07:51:40,808 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:40,808 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:51:40,819 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-01-10 07:51:40,855 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-01-10 07:51:40,855 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:40,855 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:41,618 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-01-10 07:51:41,619 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:51:41,619 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [831089858] [2025-01-10 07:51:41,619 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [831089858] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:51:41,619 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1697226770] [2025-01-10 07:51:41,619 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:51:41,620 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:51:41,620 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:51:41,622 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:51:41,623 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2025-01-10 07:51:41,698 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-01-10 07:51:41,766 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-01-10 07:51:41,766 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:51:41,767 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:51:41,770 INFO L256 TraceCheckSpWp]: Trace formula consists of 736 conjuncts, 75 conjuncts are in the unsatisfiable core [2025-01-10 07:51:41,775 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:51:41,780 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-01-10 07:51:41,797 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-01-10 07:51:42,100 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 16 treesize of output 12 [2025-01-10 07:51:42,230 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 9 proven. 5 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:51:42,230 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:51:43,195 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 16 treesize of output 12 [2025-01-10 07:51:43,587 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-01-10 07:51:43,587 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1697226770] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:51:43,587 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:51:43,587 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 17, 14] total 35 [2025-01-10 07:51:43,587 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [694379294] [2025-01-10 07:51:43,587 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:51:43,587 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:51:43,587 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:51:43,588 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2025-01-10 07:51:43,588 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=113, Invalid=1077, Unknown=0, NotChecked=0, Total=1190 [2025-01-10 07:51:43,588 INFO L87 Difference]: Start difference. First operand 82 states and 101 transitions. cyclomatic complexity: 27 Second operand has 35 states, 31 states have (on average 2.2903225806451615) internal successors, (71), 29 states have internal predecessors, (71), 16 states have call successors, (19), 7 states have call predecessors, (19), 9 states have return successors, (21), 11 states have call predecessors, (21), 16 states have call successors, (21) [2025-01-10 07:51:55,636 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.01s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0] [2025-01-10 07:52:08,092 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-01-10 07:52:21,196 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-01-10 07:52:34,066 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.01s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0]