./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 4f9af400 extending candidate: java ['java'] extending candidate: /usr/bin/java ['java', '/usr/bin/java'] extending candidate: /opt/oracle-jdk-bin-*/bin/java ['java', '/usr/bin/java'] extending candidate: /opt/openjdk-*/bin/java ['java', '/usr/bin/java'] extending candidate: /usr/lib/jvm/java-*-openjdk-amd64/bin/java ['java', '/usr/bin/java', '/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java', '/usr/lib/jvm/java-17-openjdk-amd64/bin/java', '/usr/lib/jvm/java-11-openjdk-amd64/bin/java', '/usr/lib/jvm/java-1.17.0-openjdk-amd64/bin/java'] ['/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) )\n\n', '--witnessprinter.graph.data.producer', 'Automizer', '--witnessprinter.graph.data.architecture', '32bit', '--witnessprinter.graph.data.programhash', 'dea78793c7130d873f751539350d9a84f129d659be765f9ed3f85c683976c43a'] 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-?-4f9af40 [2024-11-08 00:33:57,974 INFO L188 SettingsManager]: Resetting all preferences to default values... [2024-11-08 00:33:58,045 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2024-11-08 00:33:58,050 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2024-11-08 00:33:58,051 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2024-11-08 00:33:58,071 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2024-11-08 00:33:58,073 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2024-11-08 00:33:58,073 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2024-11-08 00:33:58,074 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2024-11-08 00:33:58,074 INFO L153 SettingsManager]: * Use memory slicer=true [2024-11-08 00:33:58,075 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2024-11-08 00:33:58,076 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2024-11-08 00:33:58,076 INFO L153 SettingsManager]: * Use SBE=true [2024-11-08 00:33:58,076 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2024-11-08 00:33:58,076 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2024-11-08 00:33:58,076 INFO L153 SettingsManager]: * Use old map elimination=false [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2024-11-08 00:33:58,077 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * sizeof long=4 [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * sizeof POINTER=4 [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Allow undefined functions=false [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * sizeof long double=12 [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2024-11-08 00:33:58,077 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2024-11-08 00:33:58,078 INFO L153 SettingsManager]: * Use constant arrays=true [2024-11-08 00:33:58,078 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2024-11-08 00:33:58,078 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2024-11-08 00:33:58,078 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2024-11-08 00:33:58,078 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2024-11-08 00:33:58,078 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2024-11-08 00:33:58,078 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 [2024-11-08 00:33:58,307 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2024-11-08 00:33:58,313 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2024-11-08 00:33:58,314 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2024-11-08 00:33:58,315 INFO L270 PluginConnector]: Initializing CDTParser... [2024-11-08 00:33:58,315 INFO L274 PluginConnector]: CDTParser initialized [2024-11-08 00:33:58,316 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 [2024-11-08 00:33:59,513 INFO L533 CDTParser]: Created temporary CDT project at NULL [2024-11-08 00:33:59,711 INFO L384 CDTParser]: Found 1 translation units. [2024-11-08 00:33:59,712 INFO L180 CDTParser]: Scanning /storage/repos/ultimate-jdk21/releaseScripts/default/sv-benchmarks/c/recursified_loop-simple/recursified_deep-nested.c [2024-11-08 00:33:59,718 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/afdeb0f59/591bc4bf2ed24eb8a3a439c5b715e308/FLAG92bb58e53 [2024-11-08 00:34:00,066 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/afdeb0f59/591bc4bf2ed24eb8a3a439c5b715e308 [2024-11-08 00:34:00,068 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2024-11-08 00:34:00,070 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2024-11-08 00:34:00,071 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2024-11-08 00:34:00,072 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2024-11-08 00:34:00,074 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2024-11-08 00:34:00,075 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,076 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@2c95a763 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00, skipping insertion in model container [2024-11-08 00:34:00,076 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,086 INFO L175 MainTranslator]: Built tables and reachable declarations [2024-11-08 00:34:00,191 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-11-08 00:34:00,203 INFO L200 MainTranslator]: Completed pre-run [2024-11-08 00:34:00,220 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-11-08 00:34:00,232 INFO L204 MainTranslator]: Completed translation [2024-11-08 00:34:00,233 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00 WrapperNode [2024-11-08 00:34:00,233 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2024-11-08 00:34:00,234 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2024-11-08 00:34:00,234 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2024-11-08 00:34:00,234 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2024-11-08 00:34:00,238 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,243 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,255 INFO L138 Inliner]: procedures = 16, calls = 72, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 116 [2024-11-08 00:34:00,255 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2024-11-08 00:34:00,256 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2024-11-08 00:34:00,256 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2024-11-08 00:34:00,256 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2024-11-08 00:34:00,261 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,262 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,264 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,278 INFO L175 MemorySlicer]: Split 38 memory accesses to 7 slices as follows [2, 6, 6, 6, 6, 5, 7]. 18 percent of accesses are in the largest equivalence class. The 2 initializations are split as follows [2, 0, 0, 0, 0, 0, 0]. The 11 writes are split as follows [0, 2, 2, 2, 2, 2, 1]. [2024-11-08 00:34:00,280 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,280 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,289 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,294 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,299 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,300 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,306 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2024-11-08 00:34:00,307 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2024-11-08 00:34:00,307 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2024-11-08 00:34:00,307 INFO L274 PluginConnector]: RCFGBuilder initialized [2024-11-08 00:34:00,311 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (1/1) ... [2024-11-08 00:34:00,318 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-08 00:34:00,328 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2024-11-08 00:34:00,339 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) [2024-11-08 00:34:00,342 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 [2024-11-08 00:34:00,360 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_12_to_13_0 [2024-11-08 00:34:00,360 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_12_to_13_0 [2024-11-08 00:34:00,360 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_13_to_14_0 [2024-11-08 00:34:00,361 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_13_to_14_0 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_11_to_12_0 [2024-11-08 00:34:00,361 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_11_to_12_0 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#2 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#3 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#4 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#5 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#6 [2024-11-08 00:34:00,361 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_14_to_16_0 [2024-11-08 00:34:00,362 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_14_to_16_0 [2024-11-08 00:34:00,362 INFO L130 BoogieDeclarations]: Found specification of procedure func_to_recursive_line_10_to_11_0 [2024-11-08 00:34:00,362 INFO L138 BoogieDeclarations]: Found implementation of procedure func_to_recursive_line_10_to_11_0 [2024-11-08 00:34:00,362 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2024-11-08 00:34:00,362 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#2 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#3 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#4 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#5 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#6 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2024-11-08 00:34:00,363 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2024-11-08 00:34:00,363 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#2 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#3 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#4 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#5 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#6 [2024-11-08 00:34:00,364 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2024-11-08 00:34:00,456 INFO L238 CfgBuilder]: Building ICFG [2024-11-08 00:34:00,458 INFO L264 CfgBuilder]: Building CFG for each procedure with an implementation [2024-11-08 00:34:00,705 INFO L? ?]: Removed 15 outVars from TransFormulas that were not future-live. [2024-11-08 00:34:00,705 INFO L287 CfgBuilder]: Performing block encoding [2024-11-08 00:34:00,712 INFO L311 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2024-11-08 00:34:00,713 INFO L316 CfgBuilder]: Removed 0 assume(true) statements. [2024-11-08 00:34:00,714 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.11 12:34:00 BoogieIcfgContainer [2024-11-08 00:34:00,714 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2024-11-08 00:34:00,714 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2024-11-08 00:34:00,714 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2024-11-08 00:34:00,717 INFO L274 PluginConnector]: BuchiAutomizer initialized [2024-11-08 00:34:00,718 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-08 00:34:00,719 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 08.11 12:34:00" (1/3) ... [2024-11-08 00:34:00,719 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@1d61cd6d and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 08.11 12:34:00, skipping insertion in model container [2024-11-08 00:34:00,719 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-08 00:34:00,719 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.11 12:34:00" (2/3) ... [2024-11-08 00:34:00,719 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@1d61cd6d and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 08.11 12:34:00, skipping insertion in model container [2024-11-08 00:34:00,720 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-08 00:34:00,720 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.11 12:34:00" (3/3) ... [2024-11-08 00:34:00,720 INFO L332 chiAutomizerObserver]: Analyzing ICFG recursified_deep-nested.c [2024-11-08 00:34:00,753 INFO L300 stractBuchiCegarLoop]: Interprodecural is true [2024-11-08 00:34:00,753 INFO L301 stractBuchiCegarLoop]: Hoare is None [2024-11-08 00:34:00,753 INFO L302 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2024-11-08 00:34:00,753 INFO L303 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2024-11-08 00:34:00,753 INFO L304 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2024-11-08 00:34:00,753 INFO L305 stractBuchiCegarLoop]: Difference is false [2024-11-08 00:34:00,753 INFO L306 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2024-11-08 00:34:00,753 INFO L310 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2024-11-08 00:34:00,756 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2024-11-08 00:34:00,768 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2024-11-08 00:34:00,768 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:00,768 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:00,776 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:00,776 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2024-11-08 00:34:00,776 INFO L332 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2024-11-08 00:34:00,776 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2024-11-08 00:34:00,778 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 33 [2024-11-08 00:34:00,780 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:00,780 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:00,781 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:00,781 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2024-11-08 00:34:00,788 INFO L745 eck$LassoCheckResult]: Stem: 20#$Ultimate##0true 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); 33#L-1true assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 19#L139true 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);< 35#$Ultimate##0true [2024-11-08 00:34:00,789 INFO L747 eck$LassoCheckResult]: Loop: 35#$Ultimate##0true ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 17#L110true assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 42#L116true 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);< 30#$Ultimate##0true ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 24#L90true assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 22#L90-1true assume true; 25#func_to_recursive_line_11_to_12_0EXITtrue >#112#return; 51#L116-1true call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 18#L121true 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);< 35#$Ultimate##0true [2024-11-08 00:34:00,797 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:00,797 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 1 times [2024-11-08 00:34:00,803 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:00,804 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [323933681] [2024-11-08 00:34:00,804 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:00,805 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:00,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:00,921 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:00,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:00,971 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:00,972 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:00,973 INFO L85 PathProgramCache]: Analyzing trace with hash 376946881, now seen corresponding path program 1 times [2024-11-08 00:34:00,973 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:00,973 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [963050651] [2024-11-08 00:34:00,973 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:00,973 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:01,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:01,343 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:01,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:01,519 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-08 00:34:01,520 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:34:01,520 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [963050651] [2024-11-08 00:34:01,520 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [963050651] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-08 00:34:01,520 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-11-08 00:34:01,520 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2024-11-08 00:34:01,520 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1503948005] [2024-11-08 00:34:01,521 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-08 00:34:01,523 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:34:01,523 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:34:01,555 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2024-11-08 00:34:01,556 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2024-11-08 00:34:01,557 INFO L87 Difference]: Start difference. First operand has 50 states, 34 states have (on average 1.2941176470588236) internal successors, (44), 39 states have internal predecessors, (44), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 7 states, 6 states have (on average 1.0) internal successors, (6), 5 states have internal predecessors, (6), 2 states have call successors, (2), 2 states have call predecessors, (2), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2024-11-08 00:34:01,851 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-08 00:34:01,852 INFO L93 Difference]: Finished difference Result 59 states and 76 transitions. [2024-11-08 00:34:01,853 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 59 states and 76 transitions. [2024-11-08 00:34:01,855 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:01,860 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 59 states to 51 states and 66 transitions. [2024-11-08 00:34:01,860 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 51 [2024-11-08 00:34:01,860 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 51 [2024-11-08 00:34:01,861 INFO L73 IsDeterministic]: Start isDeterministic. Operand 51 states and 66 transitions. [2024-11-08 00:34:01,862 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-08 00:34:01,862 INFO L218 hiAutomatonCegarLoop]: Abstraction has 51 states and 66 transitions. [2024-11-08 00:34:01,870 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states and 66 transitions. [2024-11-08 00:34:01,878 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 45. [2024-11-08 00:34:01,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 45 states, 30 states have (on average 1.2666666666666666) internal successors, (38), 34 states have internal predecessors, (38), 10 states have call successors, (10), 5 states have call predecessors, (10), 5 states have return successors, (9), 8 states have call predecessors, (9), 8 states have call successors, (9) [2024-11-08 00:34:01,879 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 57 transitions. [2024-11-08 00:34:01,880 INFO L240 hiAutomatonCegarLoop]: Abstraction has 45 states and 57 transitions. [2024-11-08 00:34:01,881 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2024-11-08 00:34:01,883 INFO L425 stractBuchiCegarLoop]: Abstraction has 45 states and 57 transitions. [2024-11-08 00:34:01,883 INFO L332 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2024-11-08 00:34:01,883 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 45 states and 57 transitions. [2024-11-08 00:34:01,884 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:01,884 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:01,884 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:01,884 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:01,884 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2024-11-08 00:34:01,884 INFO L745 eck$LassoCheckResult]: Stem: 171#$Ultimate##0 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); 148#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 149#L139 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);< 153#$Ultimate##0 [2024-11-08 00:34:01,885 INFO L747 eck$LassoCheckResult]: Loop: 153#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 155#L110 assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 140#L116 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);< 138#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 141#L90 assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4); 160#L96 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);< 164#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 165#L70 assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26; 162#L70-1 assume true; 158#func_to_recursive_line_12_to_13_0EXIT >#106#return; 161#L96-1 call #t~mem32 := read~int#1(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#1(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33; 139#L101 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);< 138#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 141#L90 assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 172#L90-1 assume true; 173#func_to_recursive_line_11_to_12_0EXIT >#108#return; 174#L90-1 assume true; 176#func_to_recursive_line_11_to_12_0EXIT >#112#return; 175#L116-1 call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 154#L121 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);< 153#$Ultimate##0 [2024-11-08 00:34:01,885 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:01,885 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 2 times [2024-11-08 00:34:01,885 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:01,885 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1112090334] [2024-11-08 00:34:01,885 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:01,886 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:01,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:01,901 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:01,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:01,917 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:01,921 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:01,921 INFO L85 PathProgramCache]: Analyzing trace with hash 1072601781, now seen corresponding path program 1 times [2024-11-08 00:34:01,921 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:01,921 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1970855936] [2024-11-08 00:34:01,921 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:01,922 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:01,944 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:02,206 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:02,217 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:02,382 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:02,387 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:02,509 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2024-11-08 00:34:02,511 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:02,520 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2024-11-08 00:34:02,520 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:34:02,520 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1970855936] [2024-11-08 00:34:02,520 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1970855936] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-08 00:34:02,520 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [924400507] [2024-11-08 00:34:02,520 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:02,520 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-08 00:34:02,521 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2024-11-08 00:34:02,524 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) [2024-11-08 00:34:02,526 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 [2024-11-08 00:34:02,662 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:02,668 INFO L255 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 52 conjuncts are in the unsatisfiable core [2024-11-08 00:34:02,672 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-08 00:34:02,717 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 [2024-11-08 00:34:02,828 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 [2024-11-08 00:34:02,866 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 [2024-11-08 00:34:03,000 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-08 00:34:03,001 INFO L307 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2024-11-08 00:34:03,001 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [924400507] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-08 00:34:03,001 INFO L185 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2024-11-08 00:34:03,001 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [8] total 15 [2024-11-08 00:34:03,001 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [610621713] [2024-11-08 00:34:03,001 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-08 00:34:03,001 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:34:03,001 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:34:03,002 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2024-11-08 00:34:03,002 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=175, Unknown=0, NotChecked=0, Total=210 [2024-11-08 00:34:03,002 INFO L87 Difference]: Start difference. First operand 45 states and 57 transitions. cyclomatic complexity: 17 Second operand has 9 states, 7 states have (on average 1.7142857142857142) internal successors, (12), 7 states have internal predecessors, (12), 3 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (3), 1 states have call predecessors, (3), 3 states have call successors, (3) [2024-11-08 00:34:15,371 WARN L539 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 12.01s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [0] [2024-11-08 00:34:27,458 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] [2024-11-08 00:34:39,494 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] [2024-11-08 00:34:39,649 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-08 00:34:39,649 INFO L93 Difference]: Finished difference Result 72 states and 92 transitions. [2024-11-08 00:34:39,649 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 72 states and 92 transitions. [2024-11-08 00:34:39,651 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 49 [2024-11-08 00:34:39,657 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 72 states to 70 states and 90 transitions. [2024-11-08 00:34:39,657 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 70 [2024-11-08 00:34:39,658 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 70 [2024-11-08 00:34:39,658 INFO L73 IsDeterministic]: Start isDeterministic. Operand 70 states and 90 transitions. [2024-11-08 00:34:39,658 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-08 00:34:39,658 INFO L218 hiAutomatonCegarLoop]: Abstraction has 70 states and 90 transitions. [2024-11-08 00:34:39,659 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states and 90 transitions. [2024-11-08 00:34:39,660 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 47. [2024-11-08 00:34:39,661 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 35 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (9), 8 states have call predecessors, (9), 8 states have call successors, (9) [2024-11-08 00:34:39,667 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 59 transitions. [2024-11-08 00:34:39,667 INFO L240 hiAutomatonCegarLoop]: Abstraction has 47 states and 59 transitions. [2024-11-08 00:34:39,667 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2024-11-08 00:34:39,668 INFO L425 stractBuchiCegarLoop]: Abstraction has 47 states and 59 transitions. [2024-11-08 00:34:39,668 INFO L332 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2024-11-08 00:34:39,669 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 47 states and 59 transitions. [2024-11-08 00:34:39,672 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:39,673 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:39,673 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:39,673 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:39,673 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] [2024-11-08 00:34:39,673 INFO L745 eck$LassoCheckResult]: Stem: 397#$Ultimate##0 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); 373#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 374#L139 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);< 378#$Ultimate##0 [2024-11-08 00:34:39,674 INFO L747 eck$LassoCheckResult]: Loop: 378#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 380#L110 assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 365#L116 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);< 363#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 366#L90 assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4); 386#L96 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);< 389#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 390#L70 assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4); 368#L76 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);< 376#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 395#L50 assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22; 370#L50-1 assume true; 367#func_to_recursive_line_13_to_14_0EXIT >#98#return; 371#L76-1 call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29; 385#L81 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);< 396#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 402#L70 assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26; 387#L70-1 assume true; 384#func_to_recursive_line_12_to_13_0EXIT >#100#return; 387#L70-1 assume true; 384#func_to_recursive_line_12_to_13_0EXIT >#106#return; 388#L96-1 call #t~mem32 := read~int#1(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#1(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33; 364#L101 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);< 363#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 366#L90 assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 398#L90-1 assume true; 399#func_to_recursive_line_11_to_12_0EXIT >#108#return; 400#L90-1 assume true; 403#func_to_recursive_line_11_to_12_0EXIT >#112#return; 401#L116-1 call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 379#L121 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);< 378#$Ultimate##0 [2024-11-08 00:34:39,674 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:39,674 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 3 times [2024-11-08 00:34:39,674 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:39,674 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [100611643] [2024-11-08 00:34:39,674 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:39,674 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:39,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:39,716 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:39,733 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:39,741 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:39,745 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:39,745 INFO L85 PathProgramCache]: Analyzing trace with hash 2046612426, now seen corresponding path program 1 times [2024-11-08 00:34:39,745 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:39,745 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1299365189] [2024-11-08 00:34:39,745 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:39,746 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:39,815 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,142 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:40,158 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,321 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:40,329 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,435 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:40,439 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,535 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2024-11-08 00:34:40,538 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,540 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 19 [2024-11-08 00:34:40,543 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,545 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 1 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2024-11-08 00:34:40,545 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:34:40,545 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1299365189] [2024-11-08 00:34:40,545 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1299365189] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-08 00:34:40,545 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [472151695] [2024-11-08 00:34:40,546 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:40,546 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-08 00:34:40,546 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2024-11-08 00:34:40,548 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) [2024-11-08 00:34:40,549 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 [2024-11-08 00:34:40,671 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:40,673 INFO L255 TraceCheckSpWp]: Trace formula consists of 468 conjuncts, 74 conjuncts are in the unsatisfiable core [2024-11-08 00:34:40,676 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-08 00:34:40,695 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-08 00:34:40,763 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 [2024-11-08 00:34:40,811 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 [2024-11-08 00:34:40,927 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-08 00:34:40,927 INFO L307 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2024-11-08 00:34:40,927 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [472151695] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-08 00:34:40,927 INFO L185 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2024-11-08 00:34:40,927 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [9] total 17 [2024-11-08 00:34:40,928 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [715691088] [2024-11-08 00:34:40,928 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-08 00:34:40,928 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:34:40,928 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:34:40,928 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2024-11-08 00:34:40,929 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=229, Unknown=0, NotChecked=0, Total=272 [2024-11-08 00:34:40,929 INFO L87 Difference]: Start difference. First operand 47 states and 59 transitions. cyclomatic complexity: 17 Second operand has 10 states, 8 states have (on average 2.25) internal successors, (18), 8 states have internal predecessors, (18), 4 states have call successors, (6), 4 states have call predecessors, (6), 2 states have return successors, (5), 1 states have call predecessors, (5), 4 states have call successors, (5) [2024-11-08 00:34:53,279 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] [2024-11-08 00:34:53,362 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-08 00:34:53,363 INFO L93 Difference]: Finished difference Result 69 states and 87 transitions. [2024-11-08 00:34:53,363 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 69 states and 87 transitions. [2024-11-08 00:34:53,365 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 44 [2024-11-08 00:34:53,367 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 69 states to 67 states and 85 transitions. [2024-11-08 00:34:53,368 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 67 [2024-11-08 00:34:53,368 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 67 [2024-11-08 00:34:53,368 INFO L73 IsDeterministic]: Start isDeterministic. Operand 67 states and 85 transitions. [2024-11-08 00:34:53,368 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-08 00:34:53,368 INFO L218 hiAutomatonCegarLoop]: Abstraction has 67 states and 85 transitions. [2024-11-08 00:34:53,368 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states and 85 transitions. [2024-11-08 00:34:53,371 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 51. [2024-11-08 00:34:53,371 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 51 states, 35 states have (on average 1.2285714285714286) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2024-11-08 00:34:53,372 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 63 transitions. [2024-11-08 00:34:53,372 INFO L240 hiAutomatonCegarLoop]: Abstraction has 51 states and 63 transitions. [2024-11-08 00:34:53,373 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2024-11-08 00:34:53,374 INFO L425 stractBuchiCegarLoop]: Abstraction has 51 states and 63 transitions. [2024-11-08 00:34:53,374 INFO L332 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2024-11-08 00:34:53,374 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 51 states and 63 transitions. [2024-11-08 00:34:53,375 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:53,375 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:53,375 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:53,376 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:53,376 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] [2024-11-08 00:34:53,376 INFO L745 eck$LassoCheckResult]: Stem: 690#$Ultimate##0 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); 664#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 665#L139 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);< 669#$Ultimate##0 [2024-11-08 00:34:53,377 INFO L747 eck$LassoCheckResult]: Loop: 669#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 671#L110 assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 656#L116 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);< 654#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 657#L90 assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4); 680#L96 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);< 681#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 682#L70 assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4); 659#L76 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);< 685#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 688#L50 assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#4(0, ~e.base, ~e.offset, 4); 649#L56 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);< 672#$Ultimate##0 ~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4); 673#L25 assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1; 684#L25-1 assume true; 686#func_to_recursive_line_14_to_16_0EXIT >#102#return; 687#L56-1 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; 660#L61 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);< 667#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 698#L50 assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22; 662#L50-1 assume true; 658#func_to_recursive_line_13_to_14_0EXIT >#104#return; 662#L50-1 assume true; 658#func_to_recursive_line_13_to_14_0EXIT >#98#return; 661#L76-1 call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29; 675#L81 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);< 689#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 696#L70 assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26; 679#L70-1 assume true; 674#func_to_recursive_line_12_to_13_0EXIT >#100#return; 676#L70-1 assume true; 695#func_to_recursive_line_12_to_13_0EXIT >#106#return; 678#L96-1 call #t~mem32 := read~int#1(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#1(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33; 655#L101 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);< 654#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 657#L90 assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 691#L90-1 assume true; 692#func_to_recursive_line_11_to_12_0EXIT >#108#return; 693#L90-1 assume true; 697#func_to_recursive_line_11_to_12_0EXIT >#112#return; 694#L116-1 call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 670#L121 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);< 669#$Ultimate##0 [2024-11-08 00:34:53,377 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:53,377 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 4 times [2024-11-08 00:34:53,377 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:53,377 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [443945405] [2024-11-08 00:34:53,377 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:53,377 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:53,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:53,406 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:53,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:53,419 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:53,419 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:53,419 INFO L85 PathProgramCache]: Analyzing trace with hash -1754161005, now seen corresponding path program 1 times [2024-11-08 00:34:53,419 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:53,419 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1615293519] [2024-11-08 00:34:53,420 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:53,420 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:53,444 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:53,728 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:53,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,195 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:54,221 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,505 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:54,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,641 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:54,645 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,722 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2024-11-08 00:34:54,724 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,729 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 19 [2024-11-08 00:34:54,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,735 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 30 [2024-11-08 00:34:54,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,741 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2024-11-08 00:34:54,741 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:34:54,741 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1615293519] [2024-11-08 00:34:54,741 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1615293519] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-08 00:34:54,741 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [396786622] [2024-11-08 00:34:54,742 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:54,742 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-08 00:34:54,742 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2024-11-08 00:34:54,745 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) [2024-11-08 00:34:54,749 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 [2024-11-08 00:34:54,895 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:54,898 INFO L255 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 64 conjuncts are in the unsatisfiable core [2024-11-08 00:34:54,902 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-08 00:34:54,910 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 [2024-11-08 00:34:55,010 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 [2024-11-08 00:34:55,080 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 [2024-11-08 00:34:55,410 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-08 00:34:55,410 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-08 00:34:56,141 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 6 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-08 00:34:56,141 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [396786622] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-08 00:34:56,141 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-08 00:34:56,141 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 14, 10] total 30 [2024-11-08 00:34:56,141 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1068325808] [2024-11-08 00:34:56,141 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-08 00:34:56,141 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:34:56,142 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:34:56,142 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2024-11-08 00:34:56,142 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=113, Invalid=757, Unknown=0, NotChecked=0, Total=870 [2024-11-08 00:34:56,142 INFO L87 Difference]: Start difference. First operand 51 states and 63 transitions. cyclomatic complexity: 17 Second operand has 30 states, 24 states have (on average 2.25) internal successors, (54), 22 states have internal predecessors, (54), 10 states have call successors, (21), 11 states have call predecessors, (21), 8 states have return successors, (16), 3 states have call predecessors, (16), 10 states have call successors, (16) [2024-11-08 00:34:57,168 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-08 00:34:57,168 INFO L93 Difference]: Finished difference Result 55 states and 67 transitions. [2024-11-08 00:34:57,168 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 55 states and 67 transitions. [2024-11-08 00:34:57,169 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:57,170 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 55 states to 55 states and 67 transitions. [2024-11-08 00:34:57,170 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 55 [2024-11-08 00:34:57,170 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 55 [2024-11-08 00:34:57,170 INFO L73 IsDeterministic]: Start isDeterministic. Operand 55 states and 67 transitions. [2024-11-08 00:34:57,170 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-08 00:34:57,170 INFO L218 hiAutomatonCegarLoop]: Abstraction has 55 states and 67 transitions. [2024-11-08 00:34:57,170 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states and 67 transitions. [2024-11-08 00:34:57,172 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 55. [2024-11-08 00:34:57,172 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 55 states, 37 states have (on average 1.2162162162162162) internal successors, (45), 39 states have internal predecessors, (45), 10 states have call successors, (10), 7 states have call predecessors, (10), 8 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2024-11-08 00:34:57,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 67 transitions. [2024-11-08 00:34:57,173 INFO L240 hiAutomatonCegarLoop]: Abstraction has 55 states and 67 transitions. [2024-11-08 00:34:57,173 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2024-11-08 00:34:57,173 INFO L425 stractBuchiCegarLoop]: Abstraction has 55 states and 67 transitions. [2024-11-08 00:34:57,173 INFO L332 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2024-11-08 00:34:57,173 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 55 states and 67 transitions. [2024-11-08 00:34:57,174 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 32 [2024-11-08 00:34:57,174 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:57,174 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:57,175 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:57,175 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] [2024-11-08 00:34:57,175 INFO L745 eck$LassoCheckResult]: Stem: 1199#$Ultimate##0 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); 1169#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 1170#L139 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);< 1175#$Ultimate##0 [2024-11-08 00:34:57,175 INFO L747 eck$LassoCheckResult]: Loop: 1175#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1177#L110 assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 1162#L116 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);< 1161#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1164#L90 assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4); 1185#L96 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);< 1186#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1188#L70 assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4); 1172#L76 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);< 1192#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 1196#L50 assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#4(0, ~e.base, ~e.offset, 4); 1156#L56 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);< 1178#$Ultimate##0 ~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4); 1179#L25 assume #t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296;havoc #t~mem5#1;havoc #t~mem4#1;call #t~mem6#1 := read~int#5(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#1(~b#1.base, ~b#1.offset, 4);#t~short10#1 := #t~mem6#1 % 4294967296 == #t~mem7#1 % 4294967296; 1190#L29 assume !#t~short10#1; 1155#L29-2 #t~short13#1 := #t~short10#1; 1158#L29-3 assume #t~short13#1;call #t~mem11#1 := read~int#2(~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; 1180#L29-5 #t~short16#1 := #t~short13#1; 1159#L29-6 assume !#t~short16#1; 1160#L29-8 #t~short19#1 := #t~short16#1; 1171#L29-9 assume !#t~short19#1; 1174#L29-11 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; 1168#L29-13 call #t~mem20#1 := read~int#4(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#4(1 + #t~mem20#1, ~e#1.base, ~e#1.offset, 4);havoc #t~mem20#1;havoc #t~pre21#1; 1157#L41 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);< 1178#$Ultimate##0 ~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4); 1179#L25 assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1; 1191#L25-1 assume true; 1193#func_to_recursive_line_14_to_16_0EXIT >#110#return; 1194#L25-1 assume true; 1207#func_to_recursive_line_14_to_16_0EXIT >#102#return; 1197#L56-1 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; 1166#L61 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);< 1173#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 1209#L50 assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22; 1195#L50-1 assume true; 1165#func_to_recursive_line_13_to_14_0EXIT >#104#return; 1167#L50-1 assume true; 1208#func_to_recursive_line_13_to_14_0EXIT >#98#return; 1189#L76-1 call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29; 1182#L81 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);< 1198#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1206#L70 assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26; 1187#L70-1 assume true; 1181#func_to_recursive_line_12_to_13_0EXIT >#100#return; 1183#L70-1 assume true; 1205#func_to_recursive_line_12_to_13_0EXIT >#106#return; 1184#L96-1 call #t~mem32 := read~int#1(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#1(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33; 1163#L101 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);< 1161#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1164#L90 assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 1200#L90-1 assume true; 1201#func_to_recursive_line_11_to_12_0EXIT >#108#return; 1202#L90-1 assume true; 1204#func_to_recursive_line_11_to_12_0EXIT >#112#return; 1203#L116-1 call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 1176#L121 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);< 1175#$Ultimate##0 [2024-11-08 00:34:57,178 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:57,178 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 5 times [2024-11-08 00:34:57,178 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:57,178 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [111413985] [2024-11-08 00:34:57,178 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:57,178 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:57,192 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:57,192 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:57,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:57,200 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:57,201 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:57,201 INFO L85 PathProgramCache]: Analyzing trace with hash 198549804, now seen corresponding path program 1 times [2024-11-08 00:34:57,201 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:57,201 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1484020269] [2024-11-08 00:34:57,201 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:57,202 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:57,221 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,262 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:57,273 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,325 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:57,336 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,363 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:57,371 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,390 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:57,396 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,417 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2024-11-08 00:34:57,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,419 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2024-11-08 00:34:57,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,422 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 33 [2024-11-08 00:34:57,424 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,426 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2024-11-08 00:34:57,427 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,430 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2024-11-08 00:34:57,431 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:34:57,431 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1484020269] [2024-11-08 00:34:57,431 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1484020269] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-08 00:34:57,431 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-11-08 00:34:57,431 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2024-11-08 00:34:57,431 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1015831040] [2024-11-08 00:34:57,431 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-08 00:34:57,432 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:34:57,432 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:34:57,432 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2024-11-08 00:34:57,432 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=37, Unknown=0, NotChecked=0, Total=56 [2024-11-08 00:34:57,432 INFO L87 Difference]: Start difference. First operand 55 states and 67 transitions. cyclomatic complexity: 17 Second operand has 8 states, 8 states have (on average 4.375) internal successors, (35), 4 states have internal predecessors, (35), 2 states have call successors, (9), 5 states have call predecessors, (9), 2 states have return successors, (8), 1 states have call predecessors, (8), 2 states have call successors, (8) [2024-11-08 00:34:57,543 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-08 00:34:57,543 INFO L93 Difference]: Finished difference Result 58 states and 70 transitions. [2024-11-08 00:34:57,543 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 58 states and 70 transitions. [2024-11-08 00:34:57,544 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 35 [2024-11-08 00:34:57,546 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 58 states to 58 states and 70 transitions. [2024-11-08 00:34:57,547 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 58 [2024-11-08 00:34:57,548 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 58 [2024-11-08 00:34:57,548 INFO L73 IsDeterministic]: Start isDeterministic. Operand 58 states and 70 transitions. [2024-11-08 00:34:57,548 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-08 00:34:57,548 INFO L218 hiAutomatonCegarLoop]: Abstraction has 58 states and 70 transitions. [2024-11-08 00:34:57,548 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states and 70 transitions. [2024-11-08 00:34:57,551 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 57. [2024-11-08 00:34:57,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 57 states, 39 states have (on average 1.205128205128205) internal successors, (47), 41 states have internal predecessors, (47), 10 states have call successors, (10), 7 states have call predecessors, (10), 8 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2024-11-08 00:34:57,552 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 69 transitions. [2024-11-08 00:34:57,554 INFO L240 hiAutomatonCegarLoop]: Abstraction has 57 states and 69 transitions. [2024-11-08 00:34:57,554 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2024-11-08 00:34:57,554 INFO L425 stractBuchiCegarLoop]: Abstraction has 57 states and 69 transitions. [2024-11-08 00:34:57,554 INFO L332 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2024-11-08 00:34:57,554 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 57 states and 69 transitions. [2024-11-08 00:34:57,555 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 34 [2024-11-08 00:34:57,556 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-08 00:34:57,556 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-08 00:34:57,556 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-08 00:34:57,557 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] [2024-11-08 00:34:57,557 INFO L745 eck$LassoCheckResult]: Stem: 1483#$Ultimate##0 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); 1452#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_~#a~0#1.base, main_~#a~0#1.offset, main_~#b~0#1.base, main_~#b~0#1.offset, main_~#c~0#1.base, main_~#c~0#1.offset, main_~#d~0#1.base, main_~#d~0#1.offset, main_~#e~0#1.base, main_~#e~0#1.offset, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset;call main_~#a~0#1.base, main_~#a~0#1.offset := #Ultimate.allocOnStack(4);call main_~#b~0#1.base, main_~#b~0#1.offset := #Ultimate.allocOnStack(4);call main_~#c~0#1.base, main_~#c~0#1.offset := #Ultimate.allocOnStack(4);call main_~#d~0#1.base, main_~#d~0#1.offset := #Ultimate.allocOnStack(4);call main_~#e~0#1.base, main_~#e~0#1.offset := #Ultimate.allocOnStack(4);call main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset := #Ultimate.allocOnStack(4);call write~int#6(4294967295, main_~#uint32_max~0#1.base, main_~#uint32_max~0#1.offset, 4);call write~int#5(0, main_~#a~0#1.base, main_~#a~0#1.offset, 4); 1453#L139 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);< 1458#$Ultimate##0 [2024-11-08 00:34:57,558 INFO L747 eck$LassoCheckResult]: Loop: 1458#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem35 := read~int#5(~a.base, ~a.offset, 4);call #t~mem34 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1460#L110 assume #t~mem35 % 4294967296 < (#t~mem34 - 1) % 4294967296;havoc #t~mem35;havoc #t~mem34;call write~int#1(0, ~b.base, ~b.offset, 4); 1447#L116 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);< 1446#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1449#L90 assume #t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296;havoc #t~mem31;havoc #t~mem30;call write~int#2(0, ~c.base, ~c.offset, 4); 1468#L96 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);< 1469#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1470#L70 assume #t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296;havoc #t~mem27;havoc #t~mem26;call write~int#3(0, ~d.base, ~d.offset, 4); 1454#L76 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);< 1474#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 1478#L50 assume #t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296;havoc #t~mem23;havoc #t~mem22;call write~int#4(0, ~e.base, ~e.offset, 4); 1439#L56 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);< 1457#$Ultimate##0 ~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4); 1461#L25 assume #t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296;havoc #t~mem5#1;havoc #t~mem4#1;call #t~mem6#1 := read~int#5(~a#1.base, ~a#1.offset, 4);call #t~mem7#1 := read~int#1(~b#1.base, ~b#1.offset, 4);#t~short10#1 := #t~mem6#1 % 4294967296 == #t~mem7#1 % 4294967296; 1472#L29 assume #t~short10#1;call #t~mem8#1 := read~int#1(~b#1.base, ~b#1.offset, 4);call #t~mem9#1 := read~int#2(~c#1.base, ~c#1.offset, 4);#t~short10#1 := #t~mem8#1 % 4294967296 == #t~mem9#1 % 4294967296; 1437#L29-2 #t~short13#1 := #t~short10#1; 1440#L29-3 assume #t~short13#1;call #t~mem11#1 := read~int#2(~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; 1465#L29-5 #t~short16#1 := #t~short13#1; 1441#L29-6 assume !#t~short16#1; 1442#L29-8 #t~short19#1 := #t~short16#1; 1451#L29-9 assume !#t~short19#1; 1456#L29-11 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; 1450#L29-13 call #t~mem20#1 := read~int#4(~e#1.base, ~e#1.offset, 4);#t~pre21#1 := 1 + #t~mem20#1;call write~int#4(1 + #t~mem20#1, ~e#1.base, ~e#1.offset, 4);havoc #t~mem20#1;havoc #t~pre21#1; 1438#L41 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);< 1457#$Ultimate##0 ~uint32_max#1.base, ~uint32_max#1.offset := #in~uint32_max#1.base, #in~uint32_max#1.offset;~c#1.base, ~c#1.offset := #in~c#1.base, #in~c#1.offset;~b#1.base, ~b#1.offset := #in~b#1.base, #in~b#1.offset;~a#1.base, ~a#1.offset := #in~a#1.base, #in~a#1.offset;~e#1.base, ~e#1.offset := #in~e#1.base, #in~e#1.offset;~d#1.base, ~d#1.offset := #in~d#1.base, #in~d#1.offset;call #t~mem5#1 := read~int#4(~e#1.base, ~e#1.offset, 4);call #t~mem4#1 := read~int#6(~uint32_max#1.base, ~uint32_max#1.offset, 4); 1461#L25 assume !(#t~mem5#1 % 4294967296 < (#t~mem4#1 - 1) % 4294967296);havoc #t~mem5#1;havoc #t~mem4#1; 1473#L25-1 assume true; 1475#func_to_recursive_line_14_to_16_0EXIT >#110#return; 1476#L25-1 assume true; 1492#func_to_recursive_line_14_to_16_0EXIT >#102#return; 1479#L56-1 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; 1444#L61 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);< 1455#$Ultimate##0 ~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#6(~uint32_max.base, ~uint32_max.offset, 4); 1493#L50 assume !(#t~mem23 % 4294967296 < (#t~mem22 - 1) % 4294967296);havoc #t~mem23;havoc #t~mem22; 1477#L50-1 assume true; 1443#func_to_recursive_line_13_to_14_0EXIT >#104#return; 1445#L50-1 assume true; 1491#func_to_recursive_line_13_to_14_0EXIT >#98#return; 1471#L76-1 call #t~mem28 := read~int#2(~c.base, ~c.offset, 4);#t~pre29 := 1 + #t~mem28;call write~int#2(1 + #t~mem28, ~c.base, ~c.offset, 4);havoc #t~mem28;havoc #t~pre29; 1463#L81 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);< 1481#$Ultimate##0 ~uint32_max.base, ~uint32_max.offset := #in~uint32_max.base, #in~uint32_max.offset;~c.base, ~c.offset := #in~c.base, #in~c.offset;~b.base, ~b.offset := #in~b.base, #in~b.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~e.base, ~e.offset := #in~e.base, #in~e.offset;~d.base, ~d.offset := #in~d.base, #in~d.offset;call #t~mem27 := read~int#2(~c.base, ~c.offset, 4);call #t~mem26 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1490#L70 assume !(#t~mem27 % 4294967296 < (#t~mem26 - 1) % 4294967296);havoc #t~mem27;havoc #t~mem26; 1467#L70-1 assume true; 1462#func_to_recursive_line_12_to_13_0EXIT >#100#return; 1464#L70-1 assume true; 1489#func_to_recursive_line_12_to_13_0EXIT >#106#return; 1466#L96-1 call #t~mem32 := read~int#1(~b.base, ~b.offset, 4);#t~pre33 := 1 + #t~mem32;call write~int#1(1 + #t~mem32, ~b.base, ~b.offset, 4);havoc #t~mem32;havoc #t~pre33; 1448#L101 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);< 1446#$Ultimate##0 ~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#1(~b.base, ~b.offset, 4);call #t~mem30 := read~int#6(~uint32_max.base, ~uint32_max.offset, 4); 1449#L90 assume !(#t~mem31 % 4294967296 < (#t~mem30 - 1) % 4294967296);havoc #t~mem31;havoc #t~mem30; 1484#L90-1 assume true; 1485#func_to_recursive_line_11_to_12_0EXIT >#108#return; 1486#L90-1 assume true; 1488#func_to_recursive_line_11_to_12_0EXIT >#112#return; 1487#L116-1 call #t~mem36 := read~int#5(~a.base, ~a.offset, 4);#t~pre37 := 1 + #t~mem36;call write~int#5(1 + #t~mem36, ~a.base, ~a.offset, 4);havoc #t~mem36;havoc #t~pre37; 1459#L121 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);< 1458#$Ultimate##0 [2024-11-08 00:34:57,558 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:57,558 INFO L85 PathProgramCache]: Analyzing trace with hash 118256, now seen corresponding path program 6 times [2024-11-08 00:34:57,558 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:57,558 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2021545030] [2024-11-08 00:34:57,558 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:57,558 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:57,567 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:57,569 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-08 00:34:57,575 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-08 00:34:57,577 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-08 00:34:57,578 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-08 00:34:57,578 INFO L85 PathProgramCache]: Analyzing trace with hash -49596690, now seen corresponding path program 1 times [2024-11-08 00:34:57,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-08 00:34:57,578 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [990651174] [2024-11-08 00:34:57,578 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:34:57,578 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-08 00:34:57,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:57,981 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:58,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:58,362 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:58,383 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:58,671 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:58,687 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:34:59,082 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2024-11-08 00:34:59,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,198 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2024-11-08 00:35:00,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,385 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2024-11-08 00:35:00,388 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,391 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 33 [2024-11-08 00:35:00,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,395 INFO L368 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2024-11-08 00:35:00,398 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,400 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 6 proven. 5 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2024-11-08 00:35:00,401 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-08 00:35:00,401 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [990651174] [2024-11-08 00:35:00,401 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [990651174] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-08 00:35:00,401 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [267628285] [2024-11-08 00:35:00,401 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-08 00:35:00,401 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-08 00:35:00,401 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2024-11-08 00:35:00,403 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) [2024-11-08 00:35:00,408 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 [2024-11-08 00:35:00,557 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-08 00:35:00,562 INFO L255 TraceCheckSpWp]: Trace formula consists of 736 conjuncts, 118 conjuncts are in the unsatisfiable core [2024-11-08 00:35:00,565 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-08 00:35:00,568 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 [2024-11-08 00:35:00,651 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 [2024-11-08 00:35:00,771 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 [2024-11-08 00:35:02,310 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 12 [2024-11-08 00:35:03,303 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 9 proven. 5 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-08 00:35:03,303 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-08 00:35:04,658 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 12 [2024-11-08 00:35:05,152 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 5 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2024-11-08 00:35:05,152 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [267628285] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-08 00:35:05,152 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-08 00:35:05,152 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 22, 14] total 56 [2024-11-08 00:35:05,153 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1835438022] [2024-11-08 00:35:05,153 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-08 00:35:05,153 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-08 00:35:05,153 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-08 00:35:05,153 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 56 interpolants. [2024-11-08 00:35:05,156 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=208, Invalid=2872, Unknown=0, NotChecked=0, Total=3080 [2024-11-08 00:35:05,156 INFO L87 Difference]: Start difference. First operand 57 states and 69 transitions. cyclomatic complexity: 17 Second operand has 56 states, 47 states have (on average 2.0425531914893615) internal successors, (96), 46 states have internal predecessors, (96), 21 states have call successors, (25), 13 states have call predecessors, (25), 14 states have return successors, (22), 13 states have call predecessors, (22), 21 states have call successors, (22) [2024-11-08 00:35:17,223 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] [2024-11-08 00:35:29,230 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] [2024-11-08 00:35:41,286 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]