./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 48c9605d 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-?-48c9605-m [2025-02-08 14:51:20,870 INFO L188 SettingsManager]: Resetting all preferences to default values... [2025-02-08 14:51:20,940 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2025-02-08 14:51:20,946 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2025-02-08 14:51:20,947 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2025-02-08 14:51:20,947 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder.Remove goto edges from RCFG [2025-02-08 14:51:20,976 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2025-02-08 14:51:20,977 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2025-02-08 14:51:20,978 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2025-02-08 14:51:20,978 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2025-02-08 14:51:20,979 INFO L153 SettingsManager]: * Use memory slicer=true [2025-02-08 14:51:20,979 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2025-02-08 14:51:20,979 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2025-02-08 14:51:20,979 INFO L153 SettingsManager]: * Use SBE=true [2025-02-08 14:51:20,980 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2025-02-08 14:51:20,980 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2025-02-08 14:51:20,980 INFO L153 SettingsManager]: * Use old map elimination=false [2025-02-08 14:51:20,980 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2025-02-08 14:51:20,980 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2025-02-08 14:51:20,980 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2025-02-08 14:51:20,981 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * sizeof long=4 [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * sizeof POINTER=4 [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2025-02-08 14:51:20,981 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2025-02-08 14:51:20,982 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2025-02-08 14:51:20,982 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2025-02-08 14:51:20,982 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2025-02-08 14:51:20,982 INFO L153 SettingsManager]: * sizeof long double=12 [2025-02-08 14:51:20,982 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2025-02-08 14:51:20,983 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2025-02-08 14:51:20,983 INFO L153 SettingsManager]: * Behaviour of calls to undefined functions=OVERAPPROXIMATE_BEHAVIOUR [2025-02-08 14:51:20,983 INFO L153 SettingsManager]: * Use constant arrays=true [2025-02-08 14:51:20,983 INFO L151 SettingsManager]: Preferences of IcfgBuilder differ from their defaults: [2025-02-08 14:51:20,983 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2025-02-08 14:51:20,983 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2025-02-08 14:51:20,983 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2025-02-08 14:51:20,984 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2025-02-08 14:51:20,984 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-02-08 14:51:21,242 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2025-02-08 14:51:21,252 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2025-02-08 14:51:21,253 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2025-02-08 14:51:21,254 INFO L270 PluginConnector]: Initializing CDTParser... [2025-02-08 14:51:21,255 INFO L274 PluginConnector]: CDTParser initialized [2025-02-08 14:51:21,256 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-02-08 14:51:22,534 INFO L533 CDTParser]: Created temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/85877ba40/772bd462cd5f4d5e8c8dd48ace64b5f6/FLAG27a262049 [2025-02-08 14:51:22,845 INFO L384 CDTParser]: Found 1 translation units. [2025-02-08 14:51:22,845 INFO L180 CDTParser]: Scanning /storage/repos/ultimate-jdk21/releaseScripts/default/sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2025-02-08 14:51:22,852 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/85877ba40/772bd462cd5f4d5e8c8dd48ace64b5f6/FLAG27a262049 [2025-02-08 14:51:22,870 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/85877ba40/772bd462cd5f4d5e8c8dd48ace64b5f6 [2025-02-08 14:51:22,872 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2025-02-08 14:51:22,874 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2025-02-08 14:51:22,876 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2025-02-08 14:51:22,876 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2025-02-08 14:51:22,880 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2025-02-08 14:51:22,881 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.02 02:51:22" (1/1) ... [2025-02-08 14:51:22,883 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@27a80055 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:22, skipping insertion in model container [2025-02-08 14:51:22,883 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.02 02:51:22" (1/1) ... [2025-02-08 14:51:22,903 INFO L175 MainTranslator]: Built tables and reachable declarations [2025-02-08 14:51:23,039 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-02-08 14:51:23,050 INFO L200 MainTranslator]: Completed pre-run [2025-02-08 14:51:23,072 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-02-08 14:51:23,090 INFO L204 MainTranslator]: Completed translation [2025-02-08 14:51:23,090 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23 WrapperNode [2025-02-08 14:51:23,091 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2025-02-08 14:51:23,091 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2025-02-08 14:51:23,092 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2025-02-08 14:51:23,092 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2025-02-08 14:51:23,097 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,106 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,130 INFO L138 Inliner]: procedures = 16, calls = 72, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 116 [2025-02-08 14:51:23,133 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2025-02-08 14:51:23,133 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2025-02-08 14:51:23,133 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2025-02-08 14:51:23,134 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2025-02-08 14:51:23,142 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,142 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,145 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,175 INFO L175 MemorySlicer]: Split 38 memory accesses to 7 slices as follows [2, 6, 7, 6, 6, 6, 5]. 18 percent of accesses are in the largest equivalence class. The 2 initializations are split as follows [2, 0, 0, 0, 0, 0, 0]. The 11 writes are split as follows [0, 2, 1, 2, 2, 2, 2]. [2025-02-08 14:51:23,176 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,177 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,188 INFO L184 PluginConnector]: Executing the observer ReplaceArrayAssignments from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,192 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,194 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,195 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,201 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2025-02-08 14:51:23,202 INFO L112 PluginConnector]: ------------------------IcfgBuilder---------------------------- [2025-02-08 14:51:23,205 INFO L270 PluginConnector]: Initializing IcfgBuilder... [2025-02-08 14:51:23,205 INFO L274 PluginConnector]: IcfgBuilder initialized [2025-02-08 14:51:23,206 INFO L184 PluginConnector]: Executing the observer IcfgBuilderObserver from plugin IcfgBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (1/1) ... [2025-02-08 14:51:23,214 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-02-08 14:51:23,226 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-02-08 14:51:23,241 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-02-08 14:51:23,251 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-02-08 14:51:23,272 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_12_to_13_0 [2025-02-08 14:51:23,272 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_12_to_13_0 [2025-02-08 14:51:23,272 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2025-02-08 14:51:23,272 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_13_to_14_0 [2025-02-08 14:51:23,273 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_13_to_14_0 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_11_to_12_0 [2025-02-08 14:51:23,273 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_11_to_12_0 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#2 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#3 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#4 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#5 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#6 [2025-02-08 14:51:23,273 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_14_to_16_0 [2025-02-08 14:51:23,274 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_14_to_16_0 [2025-02-08 14:51:23,274 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_10_to_11_0 [2025-02-08 14:51:23,274 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_10_to_11_0 [2025-02-08 14:51:23,274 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2025-02-08 14:51:23,274 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2025-02-08 14:51:23,274 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2025-02-08 14:51:23,274 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#2 [2025-02-08 14:51:23,275 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#3 [2025-02-08 14:51:23,275 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#4 [2025-02-08 14:51:23,275 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#5 [2025-02-08 14:51:23,275 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#6 [2025-02-08 14:51:23,275 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2025-02-08 14:51:23,275 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2025-02-08 14:51:23,276 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2025-02-08 14:51:23,276 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2025-02-08 14:51:23,276 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#2 [2025-02-08 14:51:23,276 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#3 [2025-02-08 14:51:23,276 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#4 [2025-02-08 14:51:23,277 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#5 [2025-02-08 14:51:23,277 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#6 [2025-02-08 14:51:23,277 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2025-02-08 14:51:23,414 INFO L257 CfgBuilder]: Building ICFG [2025-02-08 14:51:23,416 INFO L287 CfgBuilder]: Building CFG for each procedure with an implementation [2025-02-08 14:51:23,723 INFO L1324 $ProcedureCfgBuilder]: dead code at ProgramPoint L130: call ULTIMATE.dealloc(main_~#a~0#1.base, main_~#a~0#1.offset);havoc main_~#a~0#1.base, main_~#a~0#1.offset;call ULTIMATE.dealloc(main_~#b~0#1.base, main_~#b~0#1.offset);havoc main_~#b~0#1.base, main_~#b~0#1.offset;call ULTIMATE.dealloc(main_~#c~0#1.base, main_~#c~0#1.offset);havoc main_~#c~0#1.base, main_~#c~0#1.offset;call ULTIMATE.dealloc(main_~#d~0#1.base, main_~#d~0#1.offset);havoc main_~#d~0#1.base, main_~#d~0#1.offset;call ULTIMATE.dealloc(main_~#e~0#1.base, main_~#e~0#1.offset);havoc main_~#e~0#1.base, main_~#e~0#1.offset;call ULTIMATE.dealloc(main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset);havoc main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset; [2025-02-08 14:51:23,760 INFO L? ?]: Removed 15 outVars from TransFormulas that were not future-live. [2025-02-08 14:51:23,760 INFO L308 CfgBuilder]: Performing block encoding [2025-02-08 14:51:23,769 INFO L332 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2025-02-08 14:51:23,770 INFO L337 CfgBuilder]: Removed 0 assume(true) statements. [2025-02-08 14:51:23,770 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 08.02 02:51:23 BoogieIcfgContainer [2025-02-08 14:51:23,771 INFO L131 PluginConnector]: ------------------------ END IcfgBuilder---------------------------- [2025-02-08 14:51:23,772 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2025-02-08 14:51:23,772 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2025-02-08 14:51:23,777 INFO L274 PluginConnector]: BuchiAutomizer initialized [2025-02-08 14:51:23,777 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-02-08 14:51:23,778 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 08.02 02:51:22" (1/3) ... [2025-02-08 14:51:23,779 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@796c7ec and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 08.02 02:51:23, skipping insertion in model container [2025-02-08 14:51:23,780 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-02-08 14:51:23,780 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.02 02:51:23" (2/3) ... [2025-02-08 14:51:23,781 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@796c7ec and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 08.02 02:51:23, skipping insertion in model container [2025-02-08 14:51:23,781 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-02-08 14:51:23,781 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder CFG 08.02 02:51:23" (3/3) ... [2025-02-08 14:51:23,782 INFO L363 chiAutomizerObserver]: Analyzing ICFG recursified_deep-nested.c [2025-02-08 14:51:23,832 INFO L306 stractBuchiCegarLoop]: Interprodecural is true [2025-02-08 14:51:23,833 INFO L307 stractBuchiCegarLoop]: Hoare is None [2025-02-08 14:51:23,833 INFO L308 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2025-02-08 14:51:23,833 INFO L309 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2025-02-08 14:51:23,833 INFO L310 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2025-02-08 14:51:23,833 INFO L311 stractBuchiCegarLoop]: Difference is false [2025-02-08 14:51:23,833 INFO L312 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2025-02-08 14:51:23,833 INFO L316 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2025-02-08 14:51:23,838 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2025-02-08 14:51:23,859 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:23,859 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:51:23,859 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:51:23,866 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:51:23,866 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-02-08 14:51:23,866 INFO L338 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2025-02-08 14:51:23,866 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2025-02-08 14:51:23,871 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:23,872 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:51:23,872 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:51:23,873 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:51:23,873 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-02-08 14:51:23,878 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:51:23,878 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:51:23,883 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:23,884 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 1 times [2025-02-08 14:51:23,890 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:23,890 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1460894610] [2025-02-08 14:51:23,890 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:23,891 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:23,960 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:24,044 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:24,045 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:24,045 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:24,046 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:51:24,055 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:24,104 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:24,108 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:24,109 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:24,136 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:51:24,138 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:24,139 INFO L85 PathProgramCache]: Analyzing trace with hash 260805524, now seen corresponding path program 1 times [2025-02-08 14:51:24,139 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:24,139 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2086386058] [2025-02-08 14:51:24,139 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:24,139 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:24,159 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-02-08 14:51:24,198 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-02-08 14:51:24,201 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:24,201 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:51:24,824 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-02-08 14:51:24,824 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:51:24,824 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2086386058] [2025-02-08 14:51:24,825 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2086386058] provided 1 perfect and 0 imperfect interpolant sequences [2025-02-08 14:51:24,825 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-02-08 14:51:24,825 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2025-02-08 14:51:24,826 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [474687241] [2025-02-08 14:51:24,826 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-02-08 14:51:24,829 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-02-08 14:51:24,829 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-02-08 14:51:24,851 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2025-02-08 14:51:24,852 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2025-02-08 14:51:24,854 INFO L87 Difference]: Start difference. First operand has 48 states, 32 states have (on average 1.3125) internal successors, (42), 37 states have internal predecessors, (42), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 7 states, 6 states have (on average 1.0) internal successors, (6), 5 states have internal predecessors, (6), 2 states have call successors, (2), 2 states have call predecessors, (2), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2025-02-08 14:51:25,276 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-02-08 14:51:25,277 INFO L93 Difference]: Finished difference Result 52 states and 66 transitions. [2025-02-08 14:51:25,278 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 52 states and 66 transitions. [2025-02-08 14:51:25,284 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:25,294 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 52 states to 44 states and 56 transitions. [2025-02-08 14:51:25,294 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 44 [2025-02-08 14:51:25,295 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 44 [2025-02-08 14:51:25,295 INFO L73 IsDeterministic]: Start isDeterministic. Operand 44 states and 56 transitions. [2025-02-08 14:51:25,296 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-02-08 14:51:25,296 INFO L218 hiAutomatonCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-02-08 14:51:25,306 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states and 56 transitions. [2025-02-08 14:51:25,317 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 44. [2025-02-08 14:51:25,318 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 29 states have (on average 1.2758620689655173) internal successors, (37), 33 states have internal predecessors, (37), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (9), 8 states have call predecessors, (9), 8 states have call successors, (9) [2025-02-08 14:51:25,319 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 56 transitions. [2025-02-08 14:51:25,320 INFO L240 hiAutomatonCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-02-08 14:51:25,320 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2025-02-08 14:51:25,323 INFO L432 stractBuchiCegarLoop]: Abstraction has 44 states and 56 transitions. [2025-02-08 14:51:25,323 INFO L338 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2025-02-08 14:51:25,323 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 44 states and 56 transitions. [2025-02-08 14:51:25,324 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:25,324 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:51:25,324 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:51:25,324 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:51:25,324 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-02-08 14:51:25,325 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:51:25,325 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#5(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:51:25,325 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:25,325 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 2 times [2025-02-08 14:51:25,325 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:25,326 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [414438109] [2025-02-08 14:51:25,326 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-02-08 14:51:25,326 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:25,340 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:25,359 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:25,359 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-02-08 14:51:25,359 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:25,359 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:51:25,367 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:25,382 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:25,386 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:25,386 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:25,390 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:51:25,392 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:25,392 INFO L85 PathProgramCache]: Analyzing trace with hash 1773786652, now seen corresponding path program 1 times [2025-02-08 14:51:25,393 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:25,393 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1134466417] [2025-02-08 14:51:25,393 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:25,394 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:25,405 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-02-08 14:51:25,425 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-02-08 14:51:25,425 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:25,426 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:51:25,891 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-02-08 14:51:25,893 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:51:25,893 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1134466417] [2025-02-08 14:51:25,893 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1134466417] provided 0 perfect and 1 imperfect interpolant sequences [2025-02-08 14:51:25,894 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [509665093] [2025-02-08 14:51:25,894 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:25,894 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-02-08 14:51:25,894 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-02-08 14:51:25,899 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-02-08 14:51:25,900 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-02-08 14:51:25,982 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-02-08 14:51:26,034 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-02-08 14:51:26,034 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:26,034 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:51:26,037 INFO L256 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 48 conjuncts are in the unsatisfiable core [2025-02-08 14:51:26,041 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-02-08 14:51:26,203 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-02-08 14:51:26,716 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 3 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-02-08 14:51:26,716 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-02-08 14:51:27,436 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-02-08 14:51:27,436 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [509665093] provided 0 perfect and 2 imperfect interpolant sequences [2025-02-08 14:51:27,436 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-02-08 14:51:27,436 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 12, 10] total 25 [2025-02-08 14:51:27,436 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [918992352] [2025-02-08 14:51:27,436 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-02-08 14:51:27,437 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-02-08 14:51:27,437 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-02-08 14:51:27,438 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2025-02-08 14:51:27,438 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=505, Unknown=0, NotChecked=0, Total=600 [2025-02-08 14:51:27,438 INFO L87 Difference]: Start difference. First operand 44 states and 56 transitions. cyclomatic complexity: 17 Second operand has 25 states, 21 states have (on average 1.619047619047619) internal successors, (34), 21 states have internal predecessors, (34), 8 states have call successors, (10), 7 states have call predecessors, (10), 8 states have return successors, (9), 4 states have call predecessors, (9), 8 states have call successors, (9) [2025-02-08 14:51:28,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-02-08 14:51:28,175 INFO L93 Difference]: Finished difference Result 46 states and 58 transitions. [2025-02-08 14:51:28,175 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 46 states and 58 transitions. [2025-02-08 14:51:28,176 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:28,177 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 46 states to 46 states and 58 transitions. [2025-02-08 14:51:28,179 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 46 [2025-02-08 14:51:28,179 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 46 [2025-02-08 14:51:28,179 INFO L73 IsDeterministic]: Start isDeterministic. Operand 46 states and 58 transitions. [2025-02-08 14:51:28,179 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-02-08 14:51:28,179 INFO L218 hiAutomatonCegarLoop]: Abstraction has 46 states and 58 transitions. [2025-02-08 14:51:28,180 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states and 58 transitions. [2025-02-08 14:51:28,184 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 46. [2025-02-08 14:51:28,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 46 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), 6 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2025-02-08 14:51:28,187 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 58 transitions. [2025-02-08 14:51:28,187 INFO L240 hiAutomatonCegarLoop]: Abstraction has 46 states and 58 transitions. [2025-02-08 14:51:28,188 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2025-02-08 14:51:28,188 INFO L432 stractBuchiCegarLoop]: Abstraction has 46 states and 58 transitions. [2025-02-08 14:51:28,188 INFO L338 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2025-02-08 14:51:28,188 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 46 states and 58 transitions. [2025-02-08 14:51:28,189 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:51:28,189 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:51:28,189 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:51:28,190 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:51:28,190 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-02-08 14:51:28,190 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:51:28,190 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#57#return;" "call #t~mem28 := read~int#4(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#5(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:51:28,193 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:28,194 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 3 times [2025-02-08 14:51:28,194 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:28,194 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [693593078] [2025-02-08 14:51:28,194 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-02-08 14:51:28,194 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:28,206 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:28,223 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:28,223 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) [2025-02-08 14:51:28,223 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:28,223 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:51:28,225 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:51:28,236 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:51:28,236 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:28,236 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:51:28,241 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:51:28,241 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:51:28,241 INFO L85 PathProgramCache]: Analyzing trace with hash -693514383, now seen corresponding path program 1 times [2025-02-08 14:51:28,242 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:51:28,242 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1309327634] [2025-02-08 14:51:28,242 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:28,242 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:51:28,257 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-02-08 14:51:28,274 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-02-08 14:51:28,275 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:28,275 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:51:28,786 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-02-08 14:51:28,786 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:51:28,786 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1309327634] [2025-02-08 14:51:28,786 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1309327634] provided 0 perfect and 1 imperfect interpolant sequences [2025-02-08 14:51:28,786 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1530663542] [2025-02-08 14:51:28,786 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:51:28,786 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-02-08 14:51:28,786 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-02-08 14:51:28,790 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-02-08 14:51:28,791 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-02-08 14:51:28,864 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 31 statements into 1 equivalence classes. [2025-02-08 14:51:28,929 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 31 of 31 statements. [2025-02-08 14:51:28,929 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:51:28,929 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:51:28,938 INFO L256 TraceCheckSpWp]: Trace formula consists of 468 conjuncts, 94 conjuncts are in the unsatisfiable core [2025-02-08 14:51:28,942 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-02-08 14:51:28,963 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-02-08 14:51:29,322 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-02-08 14:52:18,715 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-02-08 14:52:18,716 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-02-08 14:52:20,273 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2025-02-08 14:52:20,274 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1530663542] provided 0 perfect and 2 imperfect interpolant sequences [2025-02-08 14:52:20,274 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-02-08 14:52:20,274 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 20, 14] total 40 [2025-02-08 14:52:20,274 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1172479056] [2025-02-08 14:52:20,274 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-02-08 14:52:20,274 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-02-08 14:52:20,274 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-02-08 14:52:20,275 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2025-02-08 14:52:20,275 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=168, Invalid=1388, Unknown=4, NotChecked=0, Total=1560 [2025-02-08 14:52:20,276 INFO L87 Difference]: Start difference. First operand 46 states and 58 transitions. cyclomatic complexity: 17 Second operand has 40 states, 31 states have (on average 1.6129032258064515) internal successors, (50), 33 states have internal predecessors, (50), 14 states have call successors, (15), 10 states have call predecessors, (15), 11 states have return successors, (14), 7 states have call predecessors, (14), 14 states have call successors, (14) [2025-02-08 14:52:32,334 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-02-08 14:52:46,649 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-02-08 14:52:47,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-02-08 14:52:47,174 INFO L93 Difference]: Finished difference Result 64 states and 78 transitions. [2025-02-08 14:52:47,174 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 64 states and 78 transitions. [2025-02-08 14:52:47,176 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:52:47,177 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 64 states to 52 states and 65 transitions. [2025-02-08 14:52:47,177 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 52 [2025-02-08 14:52:47,177 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 52 [2025-02-08 14:52:47,177 INFO L73 IsDeterministic]: Start isDeterministic. Operand 52 states and 65 transitions. [2025-02-08 14:52:47,180 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-02-08 14:52:47,181 INFO L218 hiAutomatonCegarLoop]: Abstraction has 52 states and 65 transitions. [2025-02-08 14:52:47,181 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states and 65 transitions. [2025-02-08 14:52:47,183 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 50. [2025-02-08 14:52:47,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 33 states have (on average 1.2424242424242424) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 7 states have return successors, (11), 8 states have call predecessors, (11), 8 states have call successors, (11) [2025-02-08 14:52:47,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 62 transitions. [2025-02-08 14:52:47,185 INFO L240 hiAutomatonCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-02-08 14:52:47,185 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2025-02-08 14:52:47,186 INFO L432 stractBuchiCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-02-08 14:52:47,186 INFO L338 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2025-02-08 14:52:47,186 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 50 states and 62 transitions. [2025-02-08 14:52:47,187 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2025-02-08 14:52:47,187 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:52:47,187 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:52:47,188 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:52:47,188 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-02-08 14:52:47,188 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:52:47,188 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#1(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#1(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#2(~uint32_max#1.base, ~uint32_max#1.offset, 4);" "assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1;" "assume true;" >"#61#return;" "call #t~mem24 := read~int#3(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#3(1 + #t~mem24, ~d.base, ~d.offset, 4);havoc #t~mem24;havoc #t~pre25;" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#59#return;" "assume true;" >"#57#return;" "call #t~mem28 := read~int#4(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#5(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:52:47,189 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:47,189 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 4 times [2025-02-08 14:52:47,189 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:47,189 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1515451239] [2025-02-08 14:52:47,189 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-02-08 14:52:47,190 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:47,197 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 2 statements into 2 equivalence classes. [2025-02-08 14:52:47,206 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:47,206 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-02-08 14:52:47,206 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:47,206 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:52:47,209 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:52:47,223 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:47,223 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:47,223 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:47,226 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:52:47,226 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:47,226 INFO L85 PathProgramCache]: Analyzing trace with hash -2045536634, now seen corresponding path program 1 times [2025-02-08 14:52:47,226 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:47,226 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2077041539] [2025-02-08 14:52:47,226 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:52:47,226 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:47,245 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-02-08 14:52:47,275 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-02-08 14:52:47,275 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:47,275 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:52:47,844 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-02-08 14:52:47,844 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:52:47,844 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2077041539] [2025-02-08 14:52:47,844 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2077041539] provided 0 perfect and 1 imperfect interpolant sequences [2025-02-08 14:52:47,844 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1254471581] [2025-02-08 14:52:47,844 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:52:47,844 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-02-08 14:52:47,844 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-02-08 14:52:47,846 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-02-08 14:52:47,847 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-02-08 14:52:47,930 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 42 statements into 1 equivalence classes. [2025-02-08 14:52:48,008 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 42 of 42 statements. [2025-02-08 14:52:48,008 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:48,008 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:52:48,011 INFO L256 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 78 conjuncts are in the unsatisfiable core [2025-02-08 14:52:48,014 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-02-08 14:52:48,021 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-02-08 14:52:48,119 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-02-08 14:52:48,215 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-02-08 14:52:48,665 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-02-08 14:52:48,665 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-02-08 14:52:49,515 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-02-08 14:52:49,533 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-02-08 14:52:49,533 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1254471581] provided 0 perfect and 2 imperfect interpolant sequences [2025-02-08 14:52:49,533 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-02-08 14:52:49,533 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 16, 12] total 33 [2025-02-08 14:52:49,533 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [843189754] [2025-02-08 14:52:49,533 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-02-08 14:52:49,534 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-02-08 14:52:49,534 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-02-08 14:52:49,534 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 33 interpolants. [2025-02-08 14:52:49,535 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=934, Unknown=0, NotChecked=0, Total=1056 [2025-02-08 14:52:49,535 INFO L87 Difference]: Start difference. First operand 50 states and 62 transitions. cyclomatic complexity: 17 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-02-08 14:52:51,308 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-02-08 14:52:51,309 INFO L93 Difference]: Finished difference Result 76 states and 98 transitions. [2025-02-08 14:52:51,309 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 76 states and 98 transitions. [2025-02-08 14:52:51,311 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 42 [2025-02-08 14:52:51,313 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 76 states to 72 states and 92 transitions. [2025-02-08 14:52:51,313 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 72 [2025-02-08 14:52:51,314 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 72 [2025-02-08 14:52:51,314 INFO L73 IsDeterministic]: Start isDeterministic. Operand 72 states and 92 transitions. [2025-02-08 14:52:51,314 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-02-08 14:52:51,314 INFO L218 hiAutomatonCegarLoop]: Abstraction has 72 states and 92 transitions. [2025-02-08 14:52:51,315 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states and 92 transitions. [2025-02-08 14:52:51,319 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 70. [2025-02-08 14:52:51,319 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 70 states, 45 states have (on average 1.2) internal successors, (54), 49 states have internal predecessors, (54), 14 states have call successors, (14), 9 states have call predecessors, (14), 11 states have return successors, (19), 11 states have call predecessors, (19), 11 states have call successors, (19) [2025-02-08 14:52:51,320 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 70 states and 87 transitions. [2025-02-08 14:52:51,321 INFO L240 hiAutomatonCegarLoop]: Abstraction has 70 states and 87 transitions. [2025-02-08 14:52:51,321 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2025-02-08 14:52:51,322 INFO L432 stractBuchiCegarLoop]: Abstraction has 70 states and 87 transitions. [2025-02-08 14:52:51,322 INFO L338 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2025-02-08 14:52:51,322 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 70 states and 87 transitions. [2025-02-08 14:52:51,323 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 42 [2025-02-08 14:52:51,323 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:52:51,323 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:52:51,325 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:52:51,325 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-02-08 14:52:51,326 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:52:51,326 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#1(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#1(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#2(~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#6(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#5(~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#4(~c#1.base, ~c#1.offset, 4);call #t~mem12#1 := read~int#3(~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#1(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#1(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#1(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#2(~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;" >"#67#return;" "assume true;" >"#61#return;" "call #t~mem24 := read~int#3(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#3(1 + #t~mem24, ~d.base, ~d.offset, 4);havoc #t~mem24;havoc #t~pre25;" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#59#return;" "assume true;" >"#57#return;" "call #t~mem28 := read~int#4(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#5(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:52:51,326 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:51,326 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 5 times [2025-02-08 14:52:51,326 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:51,326 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [344757915] [2025-02-08 14:52:51,327 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-02-08 14:52:51,327 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:51,335 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:52:51,347 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:51,348 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-02-08 14:52:51,348 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:51,348 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:52:51,350 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:52:51,360 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:51,361 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:51,361 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:51,365 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:52:51,365 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:51,365 INFO L85 PathProgramCache]: Analyzing trace with hash -1857060603, now seen corresponding path program 1 times [2025-02-08 14:52:51,366 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:51,366 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1012387840] [2025-02-08 14:52:51,366 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:52:51,366 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:51,399 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-02-08 14:52:51,408 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-02-08 14:52:51,408 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:51,409 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:52:51,488 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2025-02-08 14:52:51,489 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:52:51,489 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1012387840] [2025-02-08 14:52:51,489 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1012387840] provided 1 perfect and 0 imperfect interpolant sequences [2025-02-08 14:52:51,489 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-02-08 14:52:51,489 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2025-02-08 14:52:51,489 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [7802703] [2025-02-08 14:52:51,489 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-02-08 14:52:51,490 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-02-08 14:52:51,490 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-02-08 14:52:51,490 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2025-02-08 14:52:51,491 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2025-02-08 14:52:51,491 INFO L87 Difference]: Start difference. First operand 70 states and 87 transitions. cyclomatic complexity: 24 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-02-08 14:52:51,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-02-08 14:52:51,510 INFO L93 Difference]: Finished difference Result 73 states and 90 transitions. [2025-02-08 14:52:51,510 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 73 states and 90 transitions. [2025-02-08 14:52:51,513 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 45 [2025-02-08 14:52:51,515 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 73 states to 73 states and 90 transitions. [2025-02-08 14:52:51,516 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 73 [2025-02-08 14:52:51,516 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 73 [2025-02-08 14:52:51,517 INFO L73 IsDeterministic]: Start isDeterministic. Operand 73 states and 90 transitions. [2025-02-08 14:52:51,517 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-02-08 14:52:51,517 INFO L218 hiAutomatonCegarLoop]: Abstraction has 73 states and 90 transitions. [2025-02-08 14:52:51,517 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states and 90 transitions. [2025-02-08 14:52:51,523 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 72. [2025-02-08 14:52:51,526 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 72 states, 47 states have (on average 1.1914893617021276) internal successors, (56), 51 states have internal predecessors, (56), 14 states have call successors, (14), 9 states have call predecessors, (14), 11 states have return successors, (19), 11 states have call predecessors, (19), 11 states have call successors, (19) [2025-02-08 14:52:51,528 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 72 states to 72 states and 89 transitions. [2025-02-08 14:52:51,529 INFO L240 hiAutomatonCegarLoop]: Abstraction has 72 states and 89 transitions. [2025-02-08 14:52:51,529 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2025-02-08 14:52:51,530 INFO L432 stractBuchiCegarLoop]: Abstraction has 72 states and 89 transitions. [2025-02-08 14:52:51,530 INFO L338 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2025-02-08 14:52:51,530 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 72 states and 89 transitions. [2025-02-08 14:52:51,531 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 44 [2025-02-08 14:52:51,531 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-02-08 14:52:51,532 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-02-08 14:52:51,533 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2025-02-08 14:52:51,534 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-02-08 14:52:51,534 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#2(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#6(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-02-08 14:52:51,535 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#6(~a.base, ~a.offset, 4);call #t~mem34 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4);" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#1(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#1(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#2(~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#6(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#5(~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#5(~b#1.base, ~b#1.offset, 4);call #t~mem9#1 := read~int#4(~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#4(~c#1.base, ~c#1.offset, 4);call #t~mem12#1 := read~int#3(~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#1(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#1(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#1(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#2(~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;" >"#67#return;" "assume true;" >"#61#return;" "call #t~mem24 := read~int#3(~d.base, ~d.offset, 4);#t~pre25 := 1 + #t~mem24;call write~int#3(1 + #t~mem24, ~d.base, ~d.offset, 4);havoc #t~mem24;havoc #t~pre25;" "call func_to_recursive_line_13_to_14_0(~uint32_max.base, ~uint32_max.offset, ~c.base, ~c.offset, ~b.base, ~b.offset, ~a.base, ~a.offset, ~e.base, ~e.offset, ~d.base, ~d.offset);"< "~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem23 := read~int#3(~d.base, ~d.offset, 4);call #t~mem22 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22;" "assume true;" >"#59#return;" "assume true;" >"#57#return;" "call #t~mem28 := read~int#4(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#4(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#4(~c.base, ~c.offset, 4);call #t~mem26 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26;" "assume true;" >"#55#return;" "assume true;" >"#65#return;" "call #t~mem32 := read~int#5(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#5(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#5(~b.base, ~b.offset, 4);call #t~mem30 := read~int#2(~uint32_max.base, ~uint32_max.offset, 4);" "assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30;" "assume true;" >"#63#return;" "assume true;" >"#71#return;" "call #t~mem36 := read~int#6(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#6(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-02-08 14:52:51,535 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:51,535 INFO L85 PathProgramCache]: Analyzing trace with hash 2645, now seen corresponding path program 6 times [2025-02-08 14:52:51,535 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:51,536 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1496200865] [2025-02-08 14:52:51,536 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-02-08 14:52:51,536 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:51,544 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:52:51,555 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:51,555 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 1 check-sat command(s) [2025-02-08 14:52:51,555 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:51,555 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-02-08 14:52:51,558 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 2 statements into 1 equivalence classes. [2025-02-08 14:52:51,565 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 2 of 2 statements. [2025-02-08 14:52:51,566 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:51,566 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-02-08 14:52:51,572 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-02-08 14:52:51,574 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-02-08 14:52:51,575 INFO L85 PathProgramCache]: Analyzing trace with hash -1981133850, now seen corresponding path program 1 times [2025-02-08 14:52:51,575 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-02-08 14:52:51,575 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [678513053] [2025-02-08 14:52:51,575 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:52:51,575 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-02-08 14:52:51,594 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-02-08 14:52:51,628 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-02-08 14:52:51,628 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:51,628 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:52:52,727 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2025-02-08 14:52:52,727 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-02-08 14:52:52,727 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [678513053] [2025-02-08 14:52:52,727 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [678513053] provided 0 perfect and 1 imperfect interpolant sequences [2025-02-08 14:52:52,728 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [994935133] [2025-02-08 14:52:52,728 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-02-08 14:52:52,728 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-02-08 14:52:52,728 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-02-08 14:52:52,732 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-02-08 14:52:52,733 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-02-08 14:52:52,832 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 56 statements into 1 equivalence classes. [2025-02-08 14:52:52,927 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 56 of 56 statements. [2025-02-08 14:52:52,927 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-02-08 14:52:52,927 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-02-08 14:52:52,931 INFO L256 TraceCheckSpWp]: Trace formula consists of 736 conjuncts, 73 conjuncts are in the unsatisfiable core [2025-02-08 14:52:52,938 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-02-08 14:52:52,944 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-02-08 14:52:52,962 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