./Ultimate.py --spec ../sv-benchmarks/c/properties/termination.prp --file ../sv-benchmarks/c/termination-dietlibc/basename-3.i --full-output --architecture 64bit -------------------------------------------------------------------------------- Checking for termination Using default analysis Version 551b0097 Calling Ultimate with: /root/.sdkman/candidates/java/21.0.5-tem/bin/java -Dosgi.configuration.area=/storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.6.800.v20240513-1750.jar -data @noDefault -ultimatedata /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i ../sv-benchmarks/c/termination-dietlibc/basename-3.i -s /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-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 64bit --witnessprinter.graph.data.programhash 2e90cfbacdda20e6be76d151b413bd2dd94f7cfd4eb0e599012526f6643aab85 --- Real Ultimate output --- This is Ultimate 0.3.0-?-551b009-m [2025-01-10 07:04:38,672 INFO L188 SettingsManager]: Resetting all preferences to default values... [2025-01-10 07:04:38,721 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf [2025-01-10 07:04:38,724 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2025-01-10 07:04:38,724 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2025-01-10 07:04:38,742 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2025-01-10 07:04:38,743 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2025-01-10 07:04:38,744 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2025-01-10 07:04:38,744 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2025-01-10 07:04:38,744 INFO L153 SettingsManager]: * Use memory slicer=true [2025-01-10 07:04:38,745 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2025-01-10 07:04:38,745 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2025-01-10 07:04:38,745 INFO L153 SettingsManager]: * Use SBE=true [2025-01-10 07:04:38,746 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Use old map elimination=false [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2025-01-10 07:04:38,746 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2025-01-10 07:04:38,746 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Behaviour of calls to undefined functions=OVERAPPROXIMATE_BEHAVIOUR [2025-01-10 07:04:38,747 INFO L153 SettingsManager]: * Use constant arrays=true [2025-01-10 07:04:38,747 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2025-01-10 07:04:38,748 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2025-01-10 07:04:38,748 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2025-01-10 07:04:38,748 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2025-01-10 07:04:38,748 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2025-01-10 07:04:38,748 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 -> 64bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 2e90cfbacdda20e6be76d151b413bd2dd94f7cfd4eb0e599012526f6643aab85 [2025-01-10 07:04:38,949 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2025-01-10 07:04:38,958 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2025-01-10 07:04:38,960 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2025-01-10 07:04:38,961 INFO L270 PluginConnector]: Initializing CDTParser... [2025-01-10 07:04:38,961 INFO L274 PluginConnector]: CDTParser initialized [2025-01-10 07:04:38,962 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/termination-dietlibc/basename-3.i [2025-01-10 07:04:40,068 INFO L533 CDTParser]: Created temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/aa4640123/afc50303b86d4b74b56d687af52c7cb8/FLAG47ed52b0e [2025-01-10 07:04:40,356 INFO L384 CDTParser]: Found 1 translation units. [2025-01-10 07:04:40,357 INFO L180 CDTParser]: Scanning /storage/repos/ultimate-jdk21/releaseScripts/default/sv-benchmarks/c/termination-dietlibc/basename-3.i [2025-01-10 07:04:40,368 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/aa4640123/afc50303b86d4b74b56d687af52c7cb8/FLAG47ed52b0e [2025-01-10 07:04:40,381 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/data/aa4640123/afc50303b86d4b74b56d687af52c7cb8 [2025-01-10 07:04:40,382 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2025-01-10 07:04:40,384 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2025-01-10 07:04:40,386 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2025-01-10 07:04:40,386 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2025-01-10 07:04:40,389 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2025-01-10 07:04:40,391 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,391 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@7c9ead2e and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40, skipping insertion in model container [2025-01-10 07:04:40,392 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,414 INFO L175 MainTranslator]: Built tables and reachable declarations [2025-01-10 07:04:40,578 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-01-10 07:04:40,586 INFO L200 MainTranslator]: Completed pre-run [2025-01-10 07:04:40,624 INFO L210 PostProcessor]: Analyzing one entry point: main [2025-01-10 07:04:40,638 INFO L204 MainTranslator]: Completed translation [2025-01-10 07:04:40,640 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40 WrapperNode [2025-01-10 07:04:40,640 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2025-01-10 07:04:40,641 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2025-01-10 07:04:40,641 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2025-01-10 07:04:40,641 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2025-01-10 07:04:40,646 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,654 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,669 INFO L138 Inliner]: procedures = 114, calls = 12, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 65 [2025-01-10 07:04:40,670 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2025-01-10 07:04:40,671 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2025-01-10 07:04:40,671 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2025-01-10 07:04:40,671 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2025-01-10 07:04:40,676 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,676 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,678 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,691 INFO L175 MemorySlicer]: Split 5 memory accesses to 1 slices as follows [5]. 100 percent of accesses are in the largest equivalence class. The 0 initializations are split as follows [0]. The 2 writes are split as follows [2]. [2025-01-10 07:04:40,691 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,691 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,695 INFO L184 PluginConnector]: Executing the observer ReplaceArrayAssignments from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,699 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,701 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,702 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,706 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,709 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2025-01-10 07:04:40,709 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2025-01-10 07:04:40,709 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2025-01-10 07:04:40,709 INFO L274 PluginConnector]: RCFGBuilder initialized [2025-01-10 07:04:40,710 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (1/1) ... [2025-01-10 07:04:40,715 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:40,725 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:40,737 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:40,742 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2025-01-10 07:04:40,757 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2025-01-10 07:04:40,758 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2025-01-10 07:04:40,758 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2025-01-10 07:04:40,758 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2025-01-10 07:04:40,758 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2025-01-10 07:04:40,758 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2025-01-10 07:04:40,819 INFO L234 CfgBuilder]: Building ICFG [2025-01-10 07:04:40,821 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2025-01-10 07:04:40,956 INFO L? ?]: Removed 33 outVars from TransFormulas that were not future-live. [2025-01-10 07:04:40,956 INFO L283 CfgBuilder]: Performing block encoding [2025-01-10 07:04:40,963 INFO L307 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2025-01-10 07:04:40,964 INFO L312 CfgBuilder]: Removed 1 assume(true) statements. [2025-01-10 07:04:40,964 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.01 07:04:40 BoogieIcfgContainer [2025-01-10 07:04:40,964 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2025-01-10 07:04:40,965 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2025-01-10 07:04:40,965 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2025-01-10 07:04:40,968 INFO L274 PluginConnector]: BuchiAutomizer initialized [2025-01-10 07:04:40,969 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:04:40,969 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 10.01 07:04:40" (1/3) ... [2025-01-10 07:04:40,970 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@4e2bbea4 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.01 07:04:40, skipping insertion in model container [2025-01-10 07:04:40,970 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:04:40,970 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.01 07:04:40" (2/3) ... [2025-01-10 07:04:40,970 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@4e2bbea4 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.01 07:04:40, skipping insertion in model container [2025-01-10 07:04:40,970 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2025-01-10 07:04:40,970 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.01 07:04:40" (3/3) ... [2025-01-10 07:04:40,971 INFO L363 chiAutomizerObserver]: Analyzing ICFG basename-3.i [2025-01-10 07:04:41,002 INFO L306 stractBuchiCegarLoop]: Interprodecural is true [2025-01-10 07:04:41,003 INFO L307 stractBuchiCegarLoop]: Hoare is None [2025-01-10 07:04:41,003 INFO L308 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2025-01-10 07:04:41,003 INFO L309 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2025-01-10 07:04:41,003 INFO L310 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2025-01-10 07:04:41,003 INFO L311 stractBuchiCegarLoop]: Difference is false [2025-01-10 07:04:41,003 INFO L312 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2025-01-10 07:04:41,003 INFO L316 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2025-01-10 07:04:41,006 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 15 states have internal predecessors, (22), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,017 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2025-01-10 07:04:41,017 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:41,017 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:41,020 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:41,020 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1] [2025-01-10 07:04:41,020 INFO L338 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2025-01-10 07:04:41,021 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 15 states have internal predecessors, (22), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,021 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2025-01-10 07:04:41,022 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:41,022 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:41,022 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:41,022 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1] [2025-01-10 07:04:41,027 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" [2025-01-10 07:04:41,028 INFO L754 eck$LassoCheckResult]: Loop: "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "assume !true;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" [2025-01-10 07:04:41,031 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,031 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 1 times [2025-01-10 07:04:41,036 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,036 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1745729954] [2025-01-10 07:04:41,036 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,037 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,086 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,105 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,105 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,107 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,107 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:41,111 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,120 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,122 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,122 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,134 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:41,136 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,136 INFO L85 PathProgramCache]: Analyzing trace with hash 1170998909, now seen corresponding path program 1 times [2025-01-10 07:04:41,136 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,136 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [499914412] [2025-01-10 07:04:41,136 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,136 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,150 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 6 statements into 1 equivalence classes. [2025-01-10 07:04:41,157 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 6 of 6 statements. [2025-01-10 07:04:41,157 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,159 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:41,198 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:41,198 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:41,198 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [499914412] [2025-01-10 07:04:41,199 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [499914412] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:04:41,199 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-01-10 07:04:41,199 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2025-01-10 07:04:41,200 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1319444872] [2025-01-10 07:04:41,200 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:04:41,202 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:04:41,203 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:41,220 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2025-01-10 07:04:41,221 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2025-01-10 07:04:41,222 INFO L87 Difference]: Start difference. First operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 15 states have internal predecessors, (22), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand has 2 states, 2 states have (on average 3.0) internal successors, (6), 2 states have internal predecessors, (6), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:41,227 INFO L93 Difference]: Finished difference Result 16 states and 21 transitions. [2025-01-10 07:04:41,228 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 16 states and 21 transitions. [2025-01-10 07:04:41,229 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2025-01-10 07:04:41,233 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 16 states to 12 states and 14 transitions. [2025-01-10 07:04:41,233 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 12 [2025-01-10 07:04:41,234 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 12 [2025-01-10 07:04:41,234 INFO L73 IsDeterministic]: Start isDeterministic. Operand 12 states and 14 transitions. [2025-01-10 07:04:41,235 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:04:41,235 INFO L218 hiAutomatonCegarLoop]: Abstraction has 12 states and 14 transitions. [2025-01-10 07:04:41,243 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 12 states and 14 transitions. [2025-01-10 07:04:41,248 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 12 to 12. [2025-01-10 07:04:41,248 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 1.1666666666666667) internal successors, (14), 11 states have internal predecessors, (14), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,248 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 14 transitions. [2025-01-10 07:04:41,249 INFO L240 hiAutomatonCegarLoop]: Abstraction has 12 states and 14 transitions. [2025-01-10 07:04:41,250 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2025-01-10 07:04:41,251 INFO L432 stractBuchiCegarLoop]: Abstraction has 12 states and 14 transitions. [2025-01-10 07:04:41,252 INFO L338 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2025-01-10 07:04:41,252 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 12 states and 14 transitions. [2025-01-10 07:04:41,252 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2025-01-10 07:04:41,252 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:41,252 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:41,252 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:41,252 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:41,252 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" [2025-01-10 07:04:41,253 INFO L754 eck$LassoCheckResult]: Loop: "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" [2025-01-10 07:04:41,253 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,253 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 2 times [2025-01-10 07:04:41,253 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,253 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2097131130] [2025-01-10 07:04:41,253 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:41,253 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,259 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,264 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,264 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-01-10 07:04:41,264 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,264 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:41,266 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,274 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,274 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,274 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,277 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:41,277 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,277 INFO L85 PathProgramCache]: Analyzing trace with hash -487125096, now seen corresponding path program 1 times [2025-01-10 07:04:41,278 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,278 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1247825015] [2025-01-10 07:04:41,278 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,278 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,286 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-01-10 07:04:41,295 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-01-10 07:04:41,297 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,297 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:41,484 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:41,484 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:41,484 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1247825015] [2025-01-10 07:04:41,484 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1247825015] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:04:41,484 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-01-10 07:04:41,484 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2025-01-10 07:04:41,485 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1350660117] [2025-01-10 07:04:41,485 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:04:41,485 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:04:41,485 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:41,486 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2025-01-10 07:04:41,486 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2025-01-10 07:04:41,486 INFO L87 Difference]: Start difference. First operand 12 states and 14 transitions. cyclomatic complexity: 3 Second operand has 6 states, 5 states have (on average 1.8) internal successors, (9), 5 states have internal predecessors, (9), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,578 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:41,578 INFO L93 Difference]: Finished difference Result 28 states and 34 transitions. [2025-01-10 07:04:41,578 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 28 states and 34 transitions. [2025-01-10 07:04:41,579 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 20 [2025-01-10 07:04:41,580 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 28 states to 23 states and 28 transitions. [2025-01-10 07:04:41,581 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 23 [2025-01-10 07:04:41,581 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 23 [2025-01-10 07:04:41,581 INFO L73 IsDeterministic]: Start isDeterministic. Operand 23 states and 28 transitions. [2025-01-10 07:04:41,581 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:04:41,582 INFO L218 hiAutomatonCegarLoop]: Abstraction has 23 states and 28 transitions. [2025-01-10 07:04:41,582 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 23 states and 28 transitions. [2025-01-10 07:04:41,583 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 23 to 18. [2025-01-10 07:04:41,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 18 states, 18 states have (on average 1.2222222222222223) internal successors, (22), 17 states have internal predecessors, (22), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 22 transitions. [2025-01-10 07:04:41,584 INFO L240 hiAutomatonCegarLoop]: Abstraction has 18 states and 22 transitions. [2025-01-10 07:04:41,585 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2025-01-10 07:04:41,586 INFO L432 stractBuchiCegarLoop]: Abstraction has 18 states and 22 transitions. [2025-01-10 07:04:41,586 INFO L338 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2025-01-10 07:04:41,586 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 18 states and 22 transitions. [2025-01-10 07:04:41,587 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 15 [2025-01-10 07:04:41,587 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:41,588 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:41,589 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:41,589 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:41,589 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" [2025-01-10 07:04:41,589 INFO L754 eck$LassoCheckResult]: Loop: "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" [2025-01-10 07:04:41,589 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,589 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 3 times [2025-01-10 07:04:41,589 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,590 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [59050220] [2025-01-10 07:04:41,590 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:04:41,590 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,597 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,604 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,605 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 1 check-sat command(s) [2025-01-10 07:04:41,605 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,605 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:41,607 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,610 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,613 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,613 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,615 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:41,618 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,618 INFO L85 PathProgramCache]: Analyzing trace with hash 1287882266, now seen corresponding path program 1 times [2025-01-10 07:04:41,618 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,618 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1861788454] [2025-01-10 07:04:41,618 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,618 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,625 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 9 statements into 1 equivalence classes. [2025-01-10 07:04:41,636 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 9 of 9 statements. [2025-01-10 07:04:41,637 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,637 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:41,768 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:41,769 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:41,769 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1861788454] [2025-01-10 07:04:41,769 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1861788454] provided 1 perfect and 0 imperfect interpolant sequences [2025-01-10 07:04:41,769 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2025-01-10 07:04:41,770 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2025-01-10 07:04:41,770 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2009114014] [2025-01-10 07:04:41,770 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2025-01-10 07:04:41,770 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:04:41,770 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:41,770 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2025-01-10 07:04:41,771 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2025-01-10 07:04:41,771 INFO L87 Difference]: Start difference. First operand 18 states and 22 transitions. cyclomatic complexity: 5 Second operand has 6 states, 5 states have (on average 1.8) internal successors, (9), 5 states have internal predecessors, (9), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,810 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:41,810 INFO L93 Difference]: Finished difference Result 26 states and 31 transitions. [2025-01-10 07:04:41,810 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 26 states and 31 transitions. [2025-01-10 07:04:41,811 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 19 [2025-01-10 07:04:41,812 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 26 states to 22 states and 27 transitions. [2025-01-10 07:04:41,812 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 22 [2025-01-10 07:04:41,812 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 22 [2025-01-10 07:04:41,812 INFO L73 IsDeterministic]: Start isDeterministic. Operand 22 states and 27 transitions. [2025-01-10 07:04:41,812 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:04:41,812 INFO L218 hiAutomatonCegarLoop]: Abstraction has 22 states and 27 transitions. [2025-01-10 07:04:41,813 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 22 states and 27 transitions. [2025-01-10 07:04:41,813 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 22 to 18. [2025-01-10 07:04:41,814 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 18 states, 18 states have (on average 1.2222222222222223) internal successors, (22), 17 states have internal predecessors, (22), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:41,814 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 22 transitions. [2025-01-10 07:04:41,814 INFO L240 hiAutomatonCegarLoop]: Abstraction has 18 states and 22 transitions. [2025-01-10 07:04:41,814 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2025-01-10 07:04:41,815 INFO L432 stractBuchiCegarLoop]: Abstraction has 18 states and 22 transitions. [2025-01-10 07:04:41,815 INFO L338 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2025-01-10 07:04:41,815 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 18 states and 22 transitions. [2025-01-10 07:04:41,818 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 15 [2025-01-10 07:04:41,818 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:41,818 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:41,818 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:41,818 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:41,818 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" [2025-01-10 07:04:41,819 INFO L754 eck$LassoCheckResult]: Loop: "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" [2025-01-10 07:04:41,819 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,819 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 4 times [2025-01-10 07:04:41,819 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,819 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2045166696] [2025-01-10 07:04:41,819 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:04:41,819 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,823 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 3 statements into 2 equivalence classes. [2025-01-10 07:04:41,828 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,828 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:04:41,828 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,828 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:41,829 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:41,831 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:41,831 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,831 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:41,833 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:41,833 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:41,833 INFO L85 PathProgramCache]: Analyzing trace with hash 1065024256, now seen corresponding path program 1 times [2025-01-10 07:04:41,833 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:41,833 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2055781192] [2025-01-10 07:04:41,833 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,833 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:41,837 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 13 statements into 1 equivalence classes. [2025-01-10 07:04:41,840 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 13 of 13 statements. [2025-01-10 07:04:41,842 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,842 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:41,924 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:41,924 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:41,924 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2055781192] [2025-01-10 07:04:41,924 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2055781192] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:41,924 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1466567791] [2025-01-10 07:04:41,925 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:41,926 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:41,926 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:41,928 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:41,929 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2025-01-10 07:04:41,972 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 13 statements into 1 equivalence classes. [2025-01-10 07:04:41,986 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 13 of 13 statements. [2025-01-10 07:04:41,987 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:41,987 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:41,990 INFO L256 TraceCheckSpWp]: Trace formula consists of 93 conjuncts, 15 conjuncts are in the unsatisfiable core [2025-01-10 07:04:41,991 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:42,111 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 8 [2025-01-10 07:04:42,114 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:42,114 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:42,246 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 1 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:42,247 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1466567791] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:42,247 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:42,249 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9, 9] total 17 [2025-01-10 07:04:42,249 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [623940208] [2025-01-10 07:04:42,250 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:42,250 INFO L769 eck$LassoCheckResult]: loop already infeasible [2025-01-10 07:04:42,250 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:42,250 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2025-01-10 07:04:42,250 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=210, Unknown=0, NotChecked=0, Total=272 [2025-01-10 07:04:42,250 INFO L87 Difference]: Start difference. First operand 18 states and 22 transitions. cyclomatic complexity: 5 Second operand has 17 states, 17 states have (on average 1.3529411764705883) internal successors, (23), 17 states have internal predecessors, (23), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:42,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:42,371 INFO L93 Difference]: Finished difference Result 26 states and 31 transitions. [2025-01-10 07:04:42,371 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 26 states and 31 transitions. [2025-01-10 07:04:42,372 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 23 [2025-01-10 07:04:42,372 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 26 states to 26 states and 31 transitions. [2025-01-10 07:04:42,372 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 26 [2025-01-10 07:04:42,372 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 26 [2025-01-10 07:04:42,372 INFO L73 IsDeterministic]: Start isDeterministic. Operand 26 states and 31 transitions. [2025-01-10 07:04:42,372 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2025-01-10 07:04:42,372 INFO L218 hiAutomatonCegarLoop]: Abstraction has 26 states and 31 transitions. [2025-01-10 07:04:42,373 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 26 states and 31 transitions. [2025-01-10 07:04:42,373 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 26 to 20. [2025-01-10 07:04:42,373 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 20 states, 20 states have (on average 1.2) internal successors, (24), 19 states have internal predecessors, (24), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:42,374 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 24 transitions. [2025-01-10 07:04:42,374 INFO L240 hiAutomatonCegarLoop]: Abstraction has 20 states and 24 transitions. [2025-01-10 07:04:42,374 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2025-01-10 07:04:42,374 INFO L432 stractBuchiCegarLoop]: Abstraction has 20 states and 24 transitions. [2025-01-10 07:04:42,374 INFO L338 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2025-01-10 07:04:42,375 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 20 states and 24 transitions. [2025-01-10 07:04:42,375 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2025-01-10 07:04:42,375 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:42,375 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:42,375 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2025-01-10 07:04:42,375 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:42,375 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" [2025-01-10 07:04:42,375 INFO L754 eck$LassoCheckResult]: Loop: "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" [2025-01-10 07:04:42,376 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:42,376 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 5 times [2025-01-10 07:04:42,376 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:42,376 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1544206665] [2025-01-10 07:04:42,376 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:04:42,376 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:42,380 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:42,387 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:42,387 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2025-01-10 07:04:42,387 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,387 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:42,388 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:42,389 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:42,389 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:42,389 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,391 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:42,391 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:42,391 INFO L85 PathProgramCache]: Analyzing trace with hash 26700010, now seen corresponding path program 1 times [2025-01-10 07:04:42,391 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:42,391 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2081246411] [2025-01-10 07:04:42,391 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:42,391 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:42,396 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 17 statements into 1 equivalence classes. [2025-01-10 07:04:42,400 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 17 of 17 statements. [2025-01-10 07:04:42,400 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:42,400 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,400 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:42,403 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 17 statements into 1 equivalence classes. [2025-01-10 07:04:42,409 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 17 of 17 statements. [2025-01-10 07:04:42,409 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:42,409 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,412 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:42,412 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:42,412 INFO L85 PathProgramCache]: Analyzing trace with hash 1156607655, now seen corresponding path program 1 times [2025-01-10 07:04:42,412 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:42,412 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1020782292] [2025-01-10 07:04:42,412 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:42,414 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:42,423 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:04:42,434 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:42,434 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:42,434 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,435 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:42,437 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:04:42,447 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:42,449 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:42,449 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:42,454 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:42,934 INFO L204 LassoAnalysis]: Preferences: [2025-01-10 07:04:42,935 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2025-01-10 07:04:42,935 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2025-01-10 07:04:42,935 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2025-01-10 07:04:42,935 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2025-01-10 07:04:42,935 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:42,935 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2025-01-10 07:04:42,935 INFO L131 ssoRankerPreferences]: Path of dumped script: [2025-01-10 07:04:42,935 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration5_Lasso [2025-01-10 07:04:42,935 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2025-01-10 07:04:42,935 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2025-01-10 07:04:42,947 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,951 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,952 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,955 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,956 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,957 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,959 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,960 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,962 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,963 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,965 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,966 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,968 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,969 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,971 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,972 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,974 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,975 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:42,976 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,064 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,066 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,067 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,069 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,070 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,072 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,073 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,075 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,076 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,078 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,079 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,081 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:43,265 INFO L259 LassoAnalysis]: Preprocessing complete. [2025-01-10 07:04:43,268 INFO L451 LassoAnalysis]: Using template 'affine'. [2025-01-10 07:04:43,269 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,269 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,272 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,275 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,275 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Waiting until timeout for monitored process [2025-01-10 07:04:43,286 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,287 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,287 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,287 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,287 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,291 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,291 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,292 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,298 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Ended with exit code 0 [2025-01-10 07:04:43,299 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,299 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,300 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,301 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Waiting until timeout for monitored process [2025-01-10 07:04:43,302 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,312 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,312 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,312 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,312 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,312 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,313 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,313 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,314 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,319 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Ended with exit code 0 [2025-01-10 07:04:43,319 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,319 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,320 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,321 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Waiting until timeout for monitored process [2025-01-10 07:04:43,322 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,332 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,332 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,332 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,332 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,332 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,332 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,333 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,334 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,339 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:43,339 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,340 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,341 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,342 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Waiting until timeout for monitored process [2025-01-10 07:04:43,343 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,352 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,352 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,352 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,352 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,352 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,353 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,353 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,354 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,359 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Ended with exit code 0 [2025-01-10 07:04:43,359 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,359 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,361 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,362 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Waiting until timeout for monitored process [2025-01-10 07:04:43,362 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,372 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,372 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,372 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,372 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,372 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,372 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,372 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,373 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,379 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Ended with exit code 0 [2025-01-10 07:04:43,379 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,379 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,381 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,381 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Waiting until timeout for monitored process [2025-01-10 07:04:43,382 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,391 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,391 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,391 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,391 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,391 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,392 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,392 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,393 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,398 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Ended with exit code 0 [2025-01-10 07:04:43,398 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,398 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,400 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,400 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Waiting until timeout for monitored process [2025-01-10 07:04:43,401 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,410 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,411 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,411 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,411 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,411 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,411 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,411 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,412 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,417 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Ended with exit code 0 [2025-01-10 07:04:43,417 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,417 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,419 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,419 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Waiting until timeout for monitored process [2025-01-10 07:04:43,420 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,430 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,430 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,430 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,430 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,430 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,431 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,431 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,432 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,437 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Ended with exit code 0 [2025-01-10 07:04:43,437 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,437 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,438 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,439 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Waiting until timeout for monitored process [2025-01-10 07:04:43,440 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,450 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,450 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,450 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,450 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,450 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,450 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,450 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,451 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,456 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:43,456 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,456 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,458 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,459 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Waiting until timeout for monitored process [2025-01-10 07:04:43,459 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,469 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,469 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,469 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,469 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,469 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,470 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,470 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,471 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,476 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Ended with exit code 0 [2025-01-10 07:04:43,477 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,477 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,478 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,480 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Waiting until timeout for monitored process [2025-01-10 07:04:43,481 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,491 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,491 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,491 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,491 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,491 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,492 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,492 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,493 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,499 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Ended with exit code 0 [2025-01-10 07:04:43,499 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,499 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,501 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,502 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Waiting until timeout for monitored process [2025-01-10 07:04:43,503 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,513 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,513 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,513 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,513 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,513 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,514 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,514 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,515 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,521 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Ended with exit code 0 [2025-01-10 07:04:43,521 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,522 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,523 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,526 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Waiting until timeout for monitored process [2025-01-10 07:04:43,527 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,537 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,537 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,537 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,537 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,537 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,538 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,538 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,542 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,549 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Ended with exit code 0 [2025-01-10 07:04:43,549 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,549 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,551 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,553 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Waiting until timeout for monitored process [2025-01-10 07:04:43,554 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,564 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,564 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,564 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,564 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,564 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,564 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,565 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,566 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,571 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Ended with exit code 0 [2025-01-10 07:04:43,571 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,571 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,573 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,573 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Waiting until timeout for monitored process [2025-01-10 07:04:43,575 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,584 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,584 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,584 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,584 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,585 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,586 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,586 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,587 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,592 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:43,592 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,592 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,594 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,596 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Waiting until timeout for monitored process [2025-01-10 07:04:43,597 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,606 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,606 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,606 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,606 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,606 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,607 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,607 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,608 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,613 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:43,613 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,613 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,615 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,624 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Waiting until timeout for monitored process [2025-01-10 07:04:43,624 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,635 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,635 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,635 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,635 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,635 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,635 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,636 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,637 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,642 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Ended with exit code 0 [2025-01-10 07:04:43,642 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,642 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,644 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,645 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Waiting until timeout for monitored process [2025-01-10 07:04:43,647 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,657 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,657 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,657 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,657 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,657 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,657 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,657 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,658 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:43,663 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Ended with exit code 0 [2025-01-10 07:04:43,664 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,664 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,665 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,666 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Waiting until timeout for monitored process [2025-01-10 07:04:43,667 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:43,676 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:43,676 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:43,677 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:43,677 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:43,677 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:43,677 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:43,677 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:43,679 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2025-01-10 07:04:43,683 INFO L443 ModelExtractionUtils]: Simplification made 2 calls to the SMT solver. [2025-01-10 07:04:43,684 INFO L444 ModelExtractionUtils]: 1 out of 3 variables were initially zero. Simplification set additionally 0 variables to zero. [2025-01-10 07:04:43,686 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:43,686 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:43,687 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:43,689 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (22)] Waiting until timeout for monitored process [2025-01-10 07:04:43,689 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2025-01-10 07:04:43,689 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2025-01-10 07:04:43,689 INFO L474 LassoAnalysis]: Proved termination. [2025-01-10 07:04:43,689 INFO L476 LassoAnalysis]: Termination argument consisting of: Ranking function f(v_rep(select (select #memory_int#0 ULTIMATE.start_basename_~path#1.base) (+ ULTIMATE.start_basename_~path#1.offset 1))_1) = 1*v_rep(select (select #memory_int#0 ULTIMATE.start_basename_~path#1.base) (+ ULTIMATE.start_basename_~path#1.offset 1))_1 Supporting invariants [] [2025-01-10 07:04:43,695 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Ended with exit code 0 [2025-01-10 07:04:43,702 INFO L156 tatePredicateManager]: 4 out of 4 supporting invariants were superfluous and have been removed [2025-01-10 07:04:43,708 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: #memory_int#0 [2025-01-10 07:04:43,709 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array IdentifierExpression[#memory_int#0,GLOBAL] [2025-01-10 07:04:43,709 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array ArrayAccessExpression[IdentifierExpression[#memory_int#0,GLOBAL],[IdentifierExpression[~path!base,]]] [2025-01-10 07:04:43,718 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:43,723 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 3 statements into 1 equivalence classes. [2025-01-10 07:04:43,727 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 3 of 3 statements. [2025-01-10 07:04:43,727 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:43,727 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:43,727 INFO L256 TraceCheckSpWp]: Trace formula consists of 39 conjuncts, 2 conjuncts are in the unsatisfiable core [2025-01-10 07:04:43,727 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:43,737 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 17 statements into 1 equivalence classes. [2025-01-10 07:04:43,748 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 17 of 17 statements. [2025-01-10 07:04:43,748 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:43,748 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:43,749 INFO L256 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 50 conjuncts are in the unsatisfiable core [2025-01-10 07:04:43,752 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:44,080 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:04:44,082 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 10 loop predicates [2025-01-10 07:04:44,082 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 20 states and 24 transitions. cyclomatic complexity: 5 Second operand has 11 states, 11 states have (on average 1.7272727272727273) internal successors, (19), 11 states have internal predecessors, (19), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:44,350 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 20 states and 24 transitions. cyclomatic complexity: 5. Second operand has 11 states, 11 states have (on average 1.7272727272727273) internal successors, (19), 11 states have internal predecessors, (19), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Result 90 states and 108 transitions. Complement of second has 25 states. [2025-01-10 07:04:44,351 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 13 states 1 stem states 11 non-accepting loop states 1 accepting loop states [2025-01-10 07:04:44,352 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 11 states have (on average 1.7272727272727273) internal successors, (19), 11 states have internal predecessors, (19), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:44,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 37 transitions. [2025-01-10 07:04:44,354 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 3 letters. Loop has 17 letters. [2025-01-10 07:04:44,355 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:44,355 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 20 letters. Loop has 17 letters. [2025-01-10 07:04:44,355 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:44,355 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 3 letters. Loop has 34 letters. [2025-01-10 07:04:44,356 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:44,356 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 90 states and 108 transitions. [2025-01-10 07:04:44,357 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 31 [2025-01-10 07:04:44,358 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 90 states to 68 states and 81 transitions. [2025-01-10 07:04:44,358 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 50 [2025-01-10 07:04:44,358 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 51 [2025-01-10 07:04:44,358 INFO L73 IsDeterministic]: Start isDeterministic. Operand 68 states and 81 transitions. [2025-01-10 07:04:44,358 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:44,358 INFO L218 hiAutomatonCegarLoop]: Abstraction has 68 states and 81 transitions. [2025-01-10 07:04:44,358 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states and 81 transitions. [2025-01-10 07:04:44,359 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 42. [2025-01-10 07:04:44,360 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 42 states, 42 states have (on average 1.1904761904761905) internal successors, (50), 41 states have internal predecessors, (50), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:44,360 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 50 transitions. [2025-01-10 07:04:44,360 INFO L240 hiAutomatonCegarLoop]: Abstraction has 42 states and 50 transitions. [2025-01-10 07:04:44,360 INFO L432 stractBuchiCegarLoop]: Abstraction has 42 states and 50 transitions. [2025-01-10 07:04:44,360 INFO L338 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2025-01-10 07:04:44,360 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 42 states and 50 transitions. [2025-01-10 07:04:44,361 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2025-01-10 07:04:44,361 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:44,361 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:44,361 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1, 1] [2025-01-10 07:04:44,361 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1] [2025-01-10 07:04:44,361 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" [2025-01-10 07:04:44,361 INFO L754 eck$LassoCheckResult]: Loop: "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" [2025-01-10 07:04:44,362 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:44,362 INFO L85 PathProgramCache]: Analyzing trace with hash 889568330, now seen corresponding path program 1 times [2025-01-10 07:04:44,362 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:44,362 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [146847027] [2025-01-10 07:04:44,362 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:44,362 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:44,366 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 6 statements into 1 equivalence classes. [2025-01-10 07:04:44,370 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 6 of 6 statements. [2025-01-10 07:04:44,371 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,371 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,371 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:44,372 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 6 statements into 1 equivalence classes. [2025-01-10 07:04:44,379 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 6 of 6 statements. [2025-01-10 07:04:44,379 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,379 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,380 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:44,381 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:44,381 INFO L85 PathProgramCache]: Analyzing trace with hash 1543787, now seen corresponding path program 1 times [2025-01-10 07:04:44,381 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:44,381 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [263842778] [2025-01-10 07:04:44,381 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:44,381 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:44,383 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:44,384 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:44,384 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,384 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,384 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:44,384 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:44,385 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:44,385 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,385 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,386 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:44,386 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:44,386 INFO L85 PathProgramCache]: Analyzing trace with hash -2015101388, now seen corresponding path program 1 times [2025-01-10 07:04:44,387 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:44,387 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [198015352] [2025-01-10 07:04:44,387 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:44,387 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:44,392 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 10 statements into 1 equivalence classes. [2025-01-10 07:04:44,396 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 10 of 10 statements. [2025-01-10 07:04:44,397 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,397 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,397 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:44,398 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 10 statements into 1 equivalence classes. [2025-01-10 07:04:44,402 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 10 of 10 statements. [2025-01-10 07:04:44,402 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:44,402 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:44,404 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:44,736 INFO L204 LassoAnalysis]: Preferences: [2025-01-10 07:04:44,736 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2025-01-10 07:04:44,736 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2025-01-10 07:04:44,736 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2025-01-10 07:04:44,736 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2025-01-10 07:04:44,736 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:44,737 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2025-01-10 07:04:44,737 INFO L131 ssoRankerPreferences]: Path of dumped script: [2025-01-10 07:04:44,737 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration6_Lasso [2025-01-10 07:04:44,737 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2025-01-10 07:04:44,737 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2025-01-10 07:04:44,738 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,740 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,741 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,743 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,745 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,813 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (22)] Ended with exit code 0 [2025-01-10 07:04:44,868 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,870 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,871 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,873 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,874 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,875 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,881 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,883 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,884 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,886 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,887 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,889 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,890 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,892 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,893 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,898 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,900 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,901 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:44,902 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:45,077 INFO L259 LassoAnalysis]: Preprocessing complete. [2025-01-10 07:04:45,077 INFO L451 LassoAnalysis]: Using template 'affine'. [2025-01-10 07:04:45,077 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,077 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,080 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,081 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (23)] Waiting until timeout for monitored process [2025-01-10 07:04:45,082 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,092 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,092 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:45,092 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,092 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,092 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,092 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:45,092 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:45,093 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,098 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (23)] Ended with exit code 0 [2025-01-10 07:04:45,098 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,098 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,100 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,101 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Waiting until timeout for monitored process [2025-01-10 07:04:45,101 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,111 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,111 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:45,111 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,111 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,111 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,111 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:45,111 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:45,112 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,117 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Ended with exit code 0 [2025-01-10 07:04:45,117 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,117 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,119 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,120 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Waiting until timeout for monitored process [2025-01-10 07:04:45,120 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,130 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,130 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:45,130 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,130 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,130 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,130 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:45,130 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:45,131 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,136 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Ended with exit code 0 [2025-01-10 07:04:45,136 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,136 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,138 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,138 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Waiting until timeout for monitored process [2025-01-10 07:04:45,139 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,149 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,149 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,149 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,149 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,151 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:45,151 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:45,153 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,159 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Ended with exit code 0 [2025-01-10 07:04:45,159 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,159 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,161 INFO L229 MonitoredProcess]: Starting monitored process 27 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,162 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Waiting until timeout for monitored process [2025-01-10 07:04:45,163 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,172 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,173 INFO L203 nArgumentSynthesizer]: 2 stem disjuncts [2025-01-10 07:04:45,173 INFO L204 nArgumentSynthesizer]: 4 loop disjuncts [2025-01-10 07:04:45,173 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,185 INFO L401 nArgumentSynthesizer]: We have 56 Motzkin's Theorem applications. [2025-01-10 07:04:45,185 INFO L402 nArgumentSynthesizer]: A total of 8 supporting invariants were added. [2025-01-10 07:04:45,210 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,218 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Ended with exit code 0 [2025-01-10 07:04:45,218 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,218 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,220 INFO L229 MonitoredProcess]: Starting monitored process 28 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,221 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Waiting until timeout for monitored process [2025-01-10 07:04:45,222 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,232 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,232 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,232 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,232 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,235 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:45,235 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:45,241 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:45,247 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Ended with exit code 0 [2025-01-10 07:04:45,247 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,248 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,249 INFO L229 MonitoredProcess]: Starting monitored process 29 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,250 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Waiting until timeout for monitored process [2025-01-10 07:04:45,252 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:45,261 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:45,262 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:45,262 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:45,262 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:45,268 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:45,268 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:45,275 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2025-01-10 07:04:45,296 INFO L443 ModelExtractionUtils]: Simplification made 13 calls to the SMT solver. [2025-01-10 07:04:45,296 INFO L444 ModelExtractionUtils]: 4 out of 16 variables were initially zero. Simplification set additionally 7 variables to zero. [2025-01-10 07:04:45,297 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:45,297 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:45,298 INFO L229 MonitoredProcess]: Starting monitored process 30 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:45,300 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Waiting until timeout for monitored process [2025-01-10 07:04:45,301 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2025-01-10 07:04:45,313 INFO L438 nArgumentSynthesizer]: Removed 1 redundant supporting invariants from a total of 2. [2025-01-10 07:04:45,313 INFO L474 LassoAnalysis]: Proved termination. [2025-01-10 07:04:45,313 INFO L476 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_strrchr_~t#1.offset) = -2*ULTIMATE.start_strrchr_~t#1.offset + 36893488147419103227 Supporting invariants [-1*v_rep(select #length ULTIMATE.start_strrchr_~t#1.base)_1 + 18446744073709551615 >= 0] [2025-01-10 07:04:45,320 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:45,328 INFO L156 tatePredicateManager]: 3 out of 4 supporting invariants were superfluous and have been removed [2025-01-10 07:04:45,331 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: ~t!offset [2025-01-10 07:04:45,348 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:45,354 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 6 statements into 1 equivalence classes. [2025-01-10 07:04:45,360 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 6 of 6 statements. [2025-01-10 07:04:45,360 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,360 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:45,361 INFO L256 TraceCheckSpWp]: Trace formula consists of 64 conjuncts, 14 conjuncts are in the unsatisfiable core [2025-01-10 07:04:45,362 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:45,369 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 1, 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 8 treesize of output 1 [2025-01-10 07:04:45,399 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:45,401 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:45,401 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,402 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:45,402 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjuncts are in the unsatisfiable core [2025-01-10 07:04:45,402 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:45,440 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:45,441 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.3 stem predicates 3 loop predicates [2025-01-10 07:04:45,441 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 42 states and 50 transitions. cyclomatic complexity: 10 Second operand has 7 states, 7 states have (on average 1.4285714285714286) internal successors, (10), 7 states have internal predecessors, (10), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:45,493 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 42 states and 50 transitions. cyclomatic complexity: 10. Second operand has 7 states, 7 states have (on average 1.4285714285714286) internal successors, (10), 7 states have internal predecessors, (10), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Result 100 states and 122 transitions. Complement of second has 9 states. [2025-01-10 07:04:45,495 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 3 stem states 2 non-accepting loop states 1 accepting loop states [2025-01-10 07:04:45,496 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 1.4285714285714286) internal successors, (10), 7 states have internal predecessors, (10), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:45,496 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 16 transitions. [2025-01-10 07:04:45,496 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 6 letters. Loop has 4 letters. [2025-01-10 07:04:45,496 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:45,496 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 10 letters. Loop has 4 letters. [2025-01-10 07:04:45,496 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:45,496 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 6 letters. Loop has 8 letters. [2025-01-10 07:04:45,496 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:45,497 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 100 states and 122 transitions. [2025-01-10 07:04:45,499 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 21 [2025-01-10 07:04:45,500 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 100 states to 90 states and 108 transitions. [2025-01-10 07:04:45,500 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 43 [2025-01-10 07:04:45,500 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2025-01-10 07:04:45,500 INFO L73 IsDeterministic]: Start isDeterministic. Operand 90 states and 108 transitions. [2025-01-10 07:04:45,500 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:45,500 INFO L218 hiAutomatonCegarLoop]: Abstraction has 90 states and 108 transitions. [2025-01-10 07:04:45,500 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 90 states and 108 transitions. [2025-01-10 07:04:45,503 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 90 to 85. [2025-01-10 07:04:45,503 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 85 states, 85 states have (on average 1.2117647058823529) internal successors, (103), 84 states have internal predecessors, (103), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:45,503 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 103 transitions. [2025-01-10 07:04:45,503 INFO L240 hiAutomatonCegarLoop]: Abstraction has 85 states and 103 transitions. [2025-01-10 07:04:45,503 INFO L432 stractBuchiCegarLoop]: Abstraction has 85 states and 103 transitions. [2025-01-10 07:04:45,503 INFO L338 stractBuchiCegarLoop]: ======== Iteration 7 ============ [2025-01-10 07:04:45,503 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 85 states and 103 transitions. [2025-01-10 07:04:45,504 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 21 [2025-01-10 07:04:45,504 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:45,504 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:45,504 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1] [2025-01-10 07:04:45,504 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1] [2025-01-10 07:04:45,504 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" [2025-01-10 07:04:45,504 INFO L754 eck$LassoCheckResult]: Loop: "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" [2025-01-10 07:04:45,505 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:45,505 INFO L85 PathProgramCache]: Analyzing trace with hash -1275711976, now seen corresponding path program 1 times [2025-01-10 07:04:45,505 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:45,505 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [824639702] [2025-01-10 07:04:45,505 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:45,505 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:45,510 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 14 statements into 1 equivalence classes. [2025-01-10 07:04:45,518 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 14 of 14 statements. [2025-01-10 07:04:45,518 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,518 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,518 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:45,522 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 14 statements into 1 equivalence classes. [2025-01-10 07:04:45,528 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 14 of 14 statements. [2025-01-10 07:04:45,528 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,528 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,532 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:45,533 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:45,533 INFO L85 PathProgramCache]: Analyzing trace with hash 1543785, now seen corresponding path program 1 times [2025-01-10 07:04:45,533 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:45,533 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1021780311] [2025-01-10 07:04:45,533 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:45,533 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:45,535 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:45,536 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:45,536 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,536 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,536 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:45,536 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:45,537 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:45,537 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,537 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,538 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:45,538 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:45,538 INFO L85 PathProgramCache]: Analyzing trace with hash 1384831232, now seen corresponding path program 2 times [2025-01-10 07:04:45,538 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:45,538 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [702948109] [2025-01-10 07:04:45,538 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:45,538 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:45,543 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 18 statements into 2 equivalence classes. [2025-01-10 07:04:45,553 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 18 of 18 statements. [2025-01-10 07:04:45,553 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:04:45,553 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,553 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:45,556 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 18 statements into 1 equivalence classes. [2025-01-10 07:04:45,563 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 18 of 18 statements. [2025-01-10 07:04:45,564 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:45,564 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:45,568 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:45,918 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,049 INFO L204 LassoAnalysis]: Preferences: [2025-01-10 07:04:46,050 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2025-01-10 07:04:46,050 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2025-01-10 07:04:46,050 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2025-01-10 07:04:46,050 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2025-01-10 07:04:46,050 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,050 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2025-01-10 07:04:46,050 INFO L131 ssoRankerPreferences]: Path of dumped script: [2025-01-10 07:04:46,050 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration7_Lasso [2025-01-10 07:04:46,050 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2025-01-10 07:04:46,050 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2025-01-10 07:04:46,051 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,054 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,056 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,057 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,058 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,059 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,060 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,061 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,062 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,207 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,209 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,210 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,211 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,212 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,214 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,215 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,216 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,217 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,219 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,220 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,222 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,223 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,224 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2025-01-10 07:04:46,401 INFO L259 LassoAnalysis]: Preprocessing complete. [2025-01-10 07:04:46,402 INFO L451 LassoAnalysis]: Using template 'affine'. [2025-01-10 07:04:46,402 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,402 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,403 INFO L229 MonitoredProcess]: Starting monitored process 31 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,405 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Waiting until timeout for monitored process [2025-01-10 07:04:46,406 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,415 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,415 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,415 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,415 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,415 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,415 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,416 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,416 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,421 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Ended with exit code 0 [2025-01-10 07:04:46,422 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,422 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,424 INFO L229 MonitoredProcess]: Starting monitored process 32 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,425 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Waiting until timeout for monitored process [2025-01-10 07:04:46,427 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,436 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,436 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,436 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,436 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,436 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,436 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,437 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,438 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,442 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Ended with exit code 0 [2025-01-10 07:04:46,443 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,443 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,444 INFO L229 MonitoredProcess]: Starting monitored process 33 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,445 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Waiting until timeout for monitored process [2025-01-10 07:04:46,447 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,457 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,457 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,457 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,457 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,457 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,457 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,458 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,458 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,464 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,464 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,464 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,466 INFO L229 MonitoredProcess]: Starting monitored process 34 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,467 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Waiting until timeout for monitored process [2025-01-10 07:04:46,468 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,478 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,478 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,478 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,478 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,478 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,479 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,479 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,480 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,485 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,485 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,485 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,488 INFO L229 MonitoredProcess]: Starting monitored process 35 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,489 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (35)] Waiting until timeout for monitored process [2025-01-10 07:04:46,490 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,500 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,500 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,500 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,500 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,500 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,501 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,501 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,502 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,507 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (35)] Ended with exit code 0 [2025-01-10 07:04:46,507 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,507 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,509 INFO L229 MonitoredProcess]: Starting monitored process 36 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,510 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (36)] Waiting until timeout for monitored process [2025-01-10 07:04:46,512 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,521 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,522 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,522 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,522 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,522 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,522 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,522 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,523 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,527 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (36)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,528 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,528 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,529 INFO L229 MonitoredProcess]: Starting monitored process 37 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,530 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (37)] Waiting until timeout for monitored process [2025-01-10 07:04:46,531 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,541 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,541 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,541 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,541 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,541 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,541 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,541 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,542 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,547 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (37)] Ended with exit code 0 [2025-01-10 07:04:46,547 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,547 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,549 INFO L229 MonitoredProcess]: Starting monitored process 38 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,549 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (38)] Waiting until timeout for monitored process [2025-01-10 07:04:46,550 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,559 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,559 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2025-01-10 07:04:46,559 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,559 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,560 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,560 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2025-01-10 07:04:46,560 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2025-01-10 07:04:46,561 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,565 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (38)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,566 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,566 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,567 INFO L229 MonitoredProcess]: Starting monitored process 39 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,568 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (39)] Waiting until timeout for monitored process [2025-01-10 07:04:46,569 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,578 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,578 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,578 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,578 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,579 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,579 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,581 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,586 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (39)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,587 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,587 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,588 INFO L229 MonitoredProcess]: Starting monitored process 40 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,589 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Waiting until timeout for monitored process [2025-01-10 07:04:46,590 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,599 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,600 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,600 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,600 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,601 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,601 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,603 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,610 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Ended with exit code 0 [2025-01-10 07:04:46,610 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,610 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,611 INFO L229 MonitoredProcess]: Starting monitored process 41 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,612 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Waiting until timeout for monitored process [2025-01-10 07:04:46,614 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,623 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,623 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,623 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,623 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,624 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,624 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,627 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,632 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Ended with exit code 0 [2025-01-10 07:04:46,632 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,632 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,634 INFO L229 MonitoredProcess]: Starting monitored process 42 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,635 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Waiting until timeout for monitored process [2025-01-10 07:04:46,636 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,646 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,646 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,646 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,646 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,648 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,648 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,652 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,657 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,657 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,657 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,659 INFO L229 MonitoredProcess]: Starting monitored process 43 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,659 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Waiting until timeout for monitored process [2025-01-10 07:04:46,660 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,669 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,670 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,670 INFO L204 nArgumentSynthesizer]: 2 loop disjuncts [2025-01-10 07:04:46,670 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,673 INFO L401 nArgumentSynthesizer]: We have 16 Motzkin's Theorem applications. [2025-01-10 07:04:46,673 INFO L402 nArgumentSynthesizer]: A total of 4 supporting invariants were added. [2025-01-10 07:04:46,681 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,691 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,691 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,691 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,693 INFO L229 MonitoredProcess]: Starting monitored process 44 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,694 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Waiting until timeout for monitored process [2025-01-10 07:04:46,695 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,704 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,704 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,704 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,704 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,707 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,707 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,710 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2025-01-10 07:04:46,716 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Forceful destruction successful, exit code 0 [2025-01-10 07:04:46,717 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,717 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,718 INFO L229 MonitoredProcess]: Starting monitored process 45 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,719 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Waiting until timeout for monitored process [2025-01-10 07:04:46,720 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2025-01-10 07:04:46,729 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2025-01-10 07:04:46,730 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2025-01-10 07:04:46,730 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2025-01-10 07:04:46,730 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2025-01-10 07:04:46,734 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2025-01-10 07:04:46,734 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2025-01-10 07:04:46,741 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2025-01-10 07:04:46,748 INFO L443 ModelExtractionUtils]: Simplification made 6 calls to the SMT solver. [2025-01-10 07:04:46,749 INFO L444 ModelExtractionUtils]: 6 out of 16 variables were initially zero. Simplification set additionally 7 variables to zero. [2025-01-10 07:04:46,749 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2025-01-10 07:04:46,749 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:46,750 INFO L229 MonitoredProcess]: Starting monitored process 46 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2025-01-10 07:04:46,751 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (46)] Waiting until timeout for monitored process [2025-01-10 07:04:46,751 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2025-01-10 07:04:46,761 INFO L438 nArgumentSynthesizer]: Removed 2 redundant supporting invariants from a total of 2. [2025-01-10 07:04:46,762 INFO L474 LassoAnalysis]: Proved termination. [2025-01-10 07:04:46,762 INFO L476 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_strrchr_~t#1.offset, v_rep(select #length ULTIMATE.start_main_#t~malloc8#1.base)_3) = -1*ULTIMATE.start_strrchr_~t#1.offset + 1*v_rep(select #length ULTIMATE.start_main_#t~malloc8#1.base)_3 Supporting invariants [] [2025-01-10 07:04:46,767 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Ended with exit code 0 [2025-01-10 07:04:46,773 INFO L156 tatePredicateManager]: 4 out of 5 supporting invariants were superfluous and have been removed [2025-01-10 07:04:46,774 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: #length [2025-01-10 07:04:46,774 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array IdentifierExpression[#length,GLOBAL] [2025-01-10 07:04:46,774 WARN L970 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: ~t!offset [2025-01-10 07:04:46,785 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:46,793 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 14 statements into 1 equivalence classes. [2025-01-10 07:04:46,804 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 14 of 14 statements. [2025-01-10 07:04:46,804 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:46,804 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:46,804 INFO L256 TraceCheckSpWp]: Trace formula consists of 115 conjuncts, 16 conjuncts are in the unsatisfiable core [2025-01-10 07:04:46,806 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:46,838 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 4 statements into 1 equivalence classes. [2025-01-10 07:04:46,841 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 4 of 4 statements. [2025-01-10 07:04:46,841 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:46,841 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:46,841 INFO L256 TraceCheckSpWp]: Trace formula consists of 27 conjuncts, 8 conjuncts are in the unsatisfiable core [2025-01-10 07:04:46,842 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:46,880 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:46,880 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.3 stem predicates 3 loop predicates [2025-01-10 07:04:46,880 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 85 states and 103 transitions. cyclomatic complexity: 24 Second operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 6 states have internal predecessors, (13), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:46,927 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 85 states and 103 transitions. cyclomatic complexity: 24. Second operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 6 states have internal predecessors, (13), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Result 130 states and 164 transitions. Complement of second has 7 states. [2025-01-10 07:04:46,927 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 5 states 3 stem states 1 non-accepting loop states 1 accepting loop states [2025-01-10 07:04:46,927 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 6 states have internal predecessors, (13), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:46,927 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 16 transitions. [2025-01-10 07:04:46,928 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 14 letters. Loop has 4 letters. [2025-01-10 07:04:46,928 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:46,928 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 18 letters. Loop has 4 letters. [2025-01-10 07:04:46,928 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:46,928 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 14 letters. Loop has 8 letters. [2025-01-10 07:04:46,928 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2025-01-10 07:04:46,928 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 130 states and 164 transitions. [2025-01-10 07:04:46,929 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2025-01-10 07:04:46,929 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 130 states to 104 states and 125 transitions. [2025-01-10 07:04:46,930 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 33 [2025-01-10 07:04:46,930 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 36 [2025-01-10 07:04:46,930 INFO L73 IsDeterministic]: Start isDeterministic. Operand 104 states and 125 transitions. [2025-01-10 07:04:46,930 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:46,930 INFO L218 hiAutomatonCegarLoop]: Abstraction has 104 states and 125 transitions. [2025-01-10 07:04:46,930 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states and 125 transitions. [2025-01-10 07:04:46,932 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 73. [2025-01-10 07:04:46,932 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 73 states, 73 states have (on average 1.1917808219178083) internal successors, (87), 72 states have internal predecessors, (87), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:46,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 87 transitions. [2025-01-10 07:04:46,932 INFO L240 hiAutomatonCegarLoop]: Abstraction has 73 states and 87 transitions. [2025-01-10 07:04:46,932 INFO L432 stractBuchiCegarLoop]: Abstraction has 73 states and 87 transitions. [2025-01-10 07:04:46,932 INFO L338 stractBuchiCegarLoop]: ======== Iteration 8 ============ [2025-01-10 07:04:46,933 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 73 states and 87 transitions. [2025-01-10 07:04:46,933 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2025-01-10 07:04:46,933 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:46,933 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:46,933 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:46,934 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:46,934 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:46,934 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:46,934 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:46,934 INFO L85 PathProgramCache]: Analyzing trace with hash -1192462433, now seen corresponding path program 1 times [2025-01-10 07:04:46,934 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:46,934 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [773260510] [2025-01-10 07:04:46,934 INFO L97 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2025-01-10 07:04:46,934 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:46,938 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 16 statements into 1 equivalence classes. [2025-01-10 07:04:46,945 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 16 of 16 statements. [2025-01-10 07:04:46,948 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:46,948 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:46,949 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:46,950 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 16 statements into 1 equivalence classes. [2025-01-10 07:04:46,953 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 16 of 16 statements. [2025-01-10 07:04:46,954 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:46,954 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:46,955 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:46,956 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:46,956 INFO L85 PathProgramCache]: Analyzing trace with hash 1174064022, now seen corresponding path program 2 times [2025-01-10 07:04:46,956 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:46,956 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2022110123] [2025-01-10 07:04:46,956 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:46,956 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:46,961 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 17 statements into 2 equivalence classes. [2025-01-10 07:04:46,967 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 17 of 17 statements. [2025-01-10 07:04:46,967 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:04:46,967 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:46,967 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:46,968 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 17 statements into 1 equivalence classes. [2025-01-10 07:04:46,974 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 17 of 17 statements. [2025-01-10 07:04:46,974 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:46,974 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:46,976 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:46,977 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:46,977 INFO L85 PathProgramCache]: Analyzing trace with hash 615826360, now seen corresponding path program 2 times [2025-01-10 07:04:46,977 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:46,977 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1937312337] [2025-01-10 07:04:46,977 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:46,977 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:46,984 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 33 statements into 2 equivalence classes. [2025-01-10 07:04:47,000 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:04:47,001 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:04:47,001 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:47,080 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (46)] Ended with exit code 0 [2025-01-10 07:04:47,496 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 1 proven. 60 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:04:47,496 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:47,496 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1937312337] [2025-01-10 07:04:47,496 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1937312337] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:47,496 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [616390156] [2025-01-10 07:04:47,496 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:47,496 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:47,496 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:47,498 INFO L229 MonitoredProcess]: Starting monitored process 47 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:47,500 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (47)] Waiting until timeout for monitored process [2025-01-10 07:04:47,543 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 33 statements into 2 equivalence classes. [2025-01-10 07:04:47,564 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:04:47,565 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:04:47,565 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:47,566 INFO L256 TraceCheckSpWp]: Trace formula consists of 226 conjuncts, 72 conjuncts are in the unsatisfiable core [2025-01-10 07:04:47,568 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:47,680 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:04:47,783 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 27 proven. 30 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:04:47,783 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:48,018 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2025-01-10 07:04:48,019 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 145 treesize of output 125 [2025-01-10 07:04:48,310 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 4 proven. 55 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:04:48,310 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [616390156] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:48,310 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:48,310 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 16, 18] total 40 [2025-01-10 07:04:48,310 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1201982375] [2025-01-10 07:04:48,310 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:48,585 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:48,586 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2025-01-10 07:04:48,586 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=146, Invalid=1414, Unknown=0, NotChecked=0, Total=1560 [2025-01-10 07:04:48,587 INFO L87 Difference]: Start difference. First operand 73 states and 87 transitions. cyclomatic complexity: 19 Second operand has 40 states, 40 states have (on average 1.925) internal successors, (77), 40 states have internal predecessors, (77), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:49,603 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:49,603 INFO L93 Difference]: Finished difference Result 170 states and 200 transitions. [2025-01-10 07:04:49,603 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 170 states and 200 transitions. [2025-01-10 07:04:49,604 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 86 [2025-01-10 07:04:49,605 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 170 states to 164 states and 194 transitions. [2025-01-10 07:04:49,605 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 110 [2025-01-10 07:04:49,605 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 118 [2025-01-10 07:04:49,605 INFO L73 IsDeterministic]: Start isDeterministic. Operand 164 states and 194 transitions. [2025-01-10 07:04:49,606 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:49,606 INFO L218 hiAutomatonCegarLoop]: Abstraction has 164 states and 194 transitions. [2025-01-10 07:04:49,606 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states and 194 transitions. [2025-01-10 07:04:49,612 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 98. [2025-01-10 07:04:49,612 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 98 states, 98 states have (on average 1.2346938775510203) internal successors, (121), 97 states have internal predecessors, (121), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:49,616 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 121 transitions. [2025-01-10 07:04:49,616 INFO L240 hiAutomatonCegarLoop]: Abstraction has 98 states and 121 transitions. [2025-01-10 07:04:49,617 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2025-01-10 07:04:49,617 INFO L432 stractBuchiCegarLoop]: Abstraction has 98 states and 121 transitions. [2025-01-10 07:04:49,617 INFO L338 stractBuchiCegarLoop]: ======== Iteration 9 ============ [2025-01-10 07:04:49,617 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 98 states and 121 transitions. [2025-01-10 07:04:49,618 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 56 [2025-01-10 07:04:49,618 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:49,618 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:49,618 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:49,618 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:49,618 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:49,618 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:49,620 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:49,620 INFO L85 PathProgramCache]: Analyzing trace with hash -1893527011, now seen corresponding path program 2 times [2025-01-10 07:04:49,620 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:49,620 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [428410618] [2025-01-10 07:04:49,620 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:04:49,620 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:49,626 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 16 statements into 2 equivalence classes. [2025-01-10 07:04:49,636 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 16 of 16 statements. [2025-01-10 07:04:49,636 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:04:49,636 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:49,636 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:49,637 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 16 statements into 1 equivalence classes. [2025-01-10 07:04:49,640 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 16 of 16 statements. [2025-01-10 07:04:49,641 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:49,641 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:49,642 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:49,642 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:49,643 INFO L85 PathProgramCache]: Analyzing trace with hash 1689447018, now seen corresponding path program 3 times [2025-01-10 07:04:49,643 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:49,643 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [523020539] [2025-01-10 07:04:49,643 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:04:49,643 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:49,646 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 25 statements into 5 equivalence classes. [2025-01-10 07:04:49,651 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:49,651 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) [2025-01-10 07:04:49,651 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:49,651 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:49,652 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 25 statements into 1 equivalence classes. [2025-01-10 07:04:49,668 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:49,668 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:49,668 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:49,675 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:49,675 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:49,675 INFO L85 PathProgramCache]: Analyzing trace with hash -1903349810, now seen corresponding path program 3 times [2025-01-10 07:04:49,675 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:49,675 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [794543792] [2025-01-10 07:04:49,675 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:04:49,675 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:49,684 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 41 statements into 5 equivalence classes. [2025-01-10 07:04:49,702 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:04:49,703 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) [2025-01-10 07:04:49,703 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:50,062 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 61 proven. 40 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2025-01-10 07:04:50,062 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:50,062 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [794543792] [2025-01-10 07:04:50,062 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [794543792] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:50,062 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1903853286] [2025-01-10 07:04:50,062 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:04:50,062 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:50,062 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:50,064 INFO L229 MonitoredProcess]: Starting monitored process 48 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:50,066 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (48)] Waiting until timeout for monitored process [2025-01-10 07:04:50,106 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 41 statements into 5 equivalence classes. [2025-01-10 07:04:50,147 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:04:50,147 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) [2025-01-10 07:04:50,147 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:50,149 INFO L256 TraceCheckSpWp]: Trace formula consists of 267 conjuncts, 67 conjuncts are in the unsatisfiable core [2025-01-10 07:04:50,151 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:50,246 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 11 [2025-01-10 07:04:50,326 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 49 proven. 58 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:04:50,326 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:50,435 INFO L349 Elim1Store]: treesize reduction 4, result has 69.2 percent of original size [2025-01-10 07:04:50,436 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 44 treesize of output 41 [2025-01-10 07:04:50,532 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 49 proven. 58 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:04:50,532 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1903853286] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:50,533 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:50,533 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15, 14] total 31 [2025-01-10 07:04:50,533 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [534350825] [2025-01-10 07:04:50,533 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:50,963 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:50,963 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2025-01-10 07:04:50,964 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=94, Invalid=836, Unknown=0, NotChecked=0, Total=930 [2025-01-10 07:04:50,964 INFO L87 Difference]: Start difference. First operand 98 states and 121 transitions. cyclomatic complexity: 30 Second operand has 31 states, 31 states have (on average 2.6451612903225805) internal successors, (82), 31 states have internal predecessors, (82), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:51,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:51,226 INFO L93 Difference]: Finished difference Result 96 states and 114 transitions. [2025-01-10 07:04:51,227 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 96 states and 114 transitions. [2025-01-10 07:04:51,227 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 29 [2025-01-10 07:04:51,227 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 96 states to 68 states and 82 transitions. [2025-01-10 07:04:51,227 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 40 [2025-01-10 07:04:51,228 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 40 [2025-01-10 07:04:51,228 INFO L73 IsDeterministic]: Start isDeterministic. Operand 68 states and 82 transitions. [2025-01-10 07:04:51,228 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:51,228 INFO L218 hiAutomatonCegarLoop]: Abstraction has 68 states and 82 transitions. [2025-01-10 07:04:51,228 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states and 82 transitions. [2025-01-10 07:04:51,229 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 42. [2025-01-10 07:04:51,229 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 42 states, 42 states have (on average 1.2380952380952381) internal successors, (52), 41 states have internal predecessors, (52), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:51,229 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 52 transitions. [2025-01-10 07:04:51,229 INFO L240 hiAutomatonCegarLoop]: Abstraction has 42 states and 52 transitions. [2025-01-10 07:04:51,229 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2025-01-10 07:04:51,230 INFO L432 stractBuchiCegarLoop]: Abstraction has 42 states and 52 transitions. [2025-01-10 07:04:51,230 INFO L338 stractBuchiCegarLoop]: ======== Iteration 10 ============ [2025-01-10 07:04:51,230 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 42 states and 52 transitions. [2025-01-10 07:04:51,230 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 21 [2025-01-10 07:04:51,230 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:51,230 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:51,230 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:51,230 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:51,230 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:51,230 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:51,233 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:51,233 INFO L85 PathProgramCache]: Analyzing trace with hash -1195844343, now seen corresponding path program 3 times [2025-01-10 07:04:51,233 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:51,233 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1955797237] [2025-01-10 07:04:51,233 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:04:51,233 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:51,237 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 20 statements into 4 equivalence classes. [2025-01-10 07:04:51,243 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:51,244 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2025-01-10 07:04:51,244 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:51,244 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:51,249 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:04:51,252 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:51,253 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:51,253 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:51,254 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:51,255 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:51,255 INFO L85 PathProgramCache]: Analyzing trace with hash -2076903426, now seen corresponding path program 4 times [2025-01-10 07:04:51,255 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:51,255 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1267829902] [2025-01-10 07:04:51,255 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:04:51,255 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:51,260 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 21 statements into 2 equivalence classes. [2025-01-10 07:04:51,262 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 21 of 21 statements. [2025-01-10 07:04:51,262 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:04:51,262 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:51,263 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:51,264 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 21 statements into 1 equivalence classes. [2025-01-10 07:04:51,266 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 21 of 21 statements. [2025-01-10 07:04:51,266 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:51,266 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:51,271 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:51,271 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:51,271 INFO L85 PathProgramCache]: Analyzing trace with hash -1798959114, now seen corresponding path program 4 times [2025-01-10 07:04:51,271 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:51,271 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1962686347] [2025-01-10 07:04:51,271 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:04:51,271 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:51,278 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 41 statements into 2 equivalence classes. [2025-01-10 07:04:51,286 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:04:51,286 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:04:51,286 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:51,709 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 39 proven. 72 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:04:51,709 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:51,709 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1962686347] [2025-01-10 07:04:51,709 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1962686347] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:51,709 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1957975286] [2025-01-10 07:04:51,709 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:04:51,709 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:51,709 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:51,711 INFO L229 MonitoredProcess]: Starting monitored process 49 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:51,712 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (49)] Waiting until timeout for monitored process [2025-01-10 07:04:51,756 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 41 statements into 2 equivalence classes. [2025-01-10 07:04:51,784 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:04:51,784 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:04:51,784 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:51,786 INFO L256 TraceCheckSpWp]: Trace formula consists of 267 conjuncts, 79 conjuncts are in the unsatisfiable core [2025-01-10 07:04:51,789 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:51,878 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:04:51,971 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 39 proven. 70 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:04:51,971 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:52,231 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2025-01-10 07:04:52,231 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 145 treesize of output 125 [2025-01-10 07:04:52,468 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 8 proven. 103 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:04:52,468 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1957975286] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:52,468 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:52,468 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 17, 18] total 39 [2025-01-10 07:04:52,468 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1145447812] [2025-01-10 07:04:52,468 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:52,818 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:52,819 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2025-01-10 07:04:52,819 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=129, Invalid=1353, Unknown=0, NotChecked=0, Total=1482 [2025-01-10 07:04:52,819 INFO L87 Difference]: Start difference. First operand 42 states and 52 transitions. cyclomatic complexity: 13 Second operand has 39 states, 39 states have (on average 2.2564102564102564) internal successors, (88), 39 states have internal predecessors, (88), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:54,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:54,006 INFO L93 Difference]: Finished difference Result 171 states and 203 transitions. [2025-01-10 07:04:54,006 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 171 states and 203 transitions. [2025-01-10 07:04:54,007 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 117 [2025-01-10 07:04:54,008 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 171 states to 171 states and 203 transitions. [2025-01-10 07:04:54,008 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 135 [2025-01-10 07:04:54,010 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 135 [2025-01-10 07:04:54,010 INFO L73 IsDeterministic]: Start isDeterministic. Operand 171 states and 203 transitions. [2025-01-10 07:04:54,010 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:54,010 INFO L218 hiAutomatonCegarLoop]: Abstraction has 171 states and 203 transitions. [2025-01-10 07:04:54,011 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 171 states and 203 transitions. [2025-01-10 07:04:54,012 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 171 to 100. [2025-01-10 07:04:54,013 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 100 states, 100 states have (on average 1.22) internal successors, (122), 99 states have internal predecessors, (122), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:54,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 122 transitions. [2025-01-10 07:04:54,013 INFO L240 hiAutomatonCegarLoop]: Abstraction has 100 states and 122 transitions. [2025-01-10 07:04:54,016 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2025-01-10 07:04:54,017 INFO L432 stractBuchiCegarLoop]: Abstraction has 100 states and 122 transitions. [2025-01-10 07:04:54,017 INFO L338 stractBuchiCegarLoop]: ======== Iteration 11 ============ [2025-01-10 07:04:54,017 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 100 states and 122 transitions. [2025-01-10 07:04:54,017 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 68 [2025-01-10 07:04:54,017 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:54,017 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:54,018 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:54,018 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:54,018 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:54,018 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:54,019 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:54,019 INFO L85 PathProgramCache]: Analyzing trace with hash -1195844343, now seen corresponding path program 4 times [2025-01-10 07:04:54,019 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:54,019 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [310626846] [2025-01-10 07:04:54,019 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:04:54,019 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:54,023 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 20 statements into 2 equivalence classes. [2025-01-10 07:04:54,026 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:54,026 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:04:54,026 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:54,026 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:54,028 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 20 statements into 1 equivalence classes. [2025-01-10 07:04:54,030 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 20 of 20 statements. [2025-01-10 07:04:54,031 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:54,031 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:54,032 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:54,033 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:54,033 INFO L85 PathProgramCache]: Analyzing trace with hash -1325656600, now seen corresponding path program 5 times [2025-01-10 07:04:54,033 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:54,033 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [560229195] [2025-01-10 07:04:54,033 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:04:54,033 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:54,040 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 25 statements into 5 equivalence classes. [2025-01-10 07:04:54,043 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:54,043 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2025-01-10 07:04:54,043 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:54,043 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:54,044 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 25 statements into 1 equivalence classes. [2025-01-10 07:04:54,047 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:54,047 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:54,047 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:54,048 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:54,049 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:54,049 INFO L85 PathProgramCache]: Analyzing trace with hash 1657827808, now seen corresponding path program 5 times [2025-01-10 07:04:54,049 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:54,049 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1013758393] [2025-01-10 07:04:54,049 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:04:54,049 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:54,059 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 45 statements into 5 equivalence classes. [2025-01-10 07:04:54,067 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:04:54,069 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2025-01-10 07:04:54,069 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:54,405 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 84 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:04:54,406 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:54,406 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1013758393] [2025-01-10 07:04:54,406 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1013758393] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:54,406 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1713440749] [2025-01-10 07:04:54,406 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:04:54,406 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:54,406 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:54,408 INFO L229 MonitoredProcess]: Starting monitored process 50 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:54,409 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (50)] Waiting until timeout for monitored process [2025-01-10 07:04:54,456 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 45 statements into 5 equivalence classes. [2025-01-10 07:04:54,486 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:04:54,486 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2025-01-10 07:04:54,486 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:54,488 INFO L256 TraceCheckSpWp]: Trace formula consists of 285 conjuncts, 67 conjuncts are in the unsatisfiable core [2025-01-10 07:04:54,492 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:54,562 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:04:54,610 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 82 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:04:54,610 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:54,646 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 25 [2025-01-10 07:04:54,765 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 82 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:04:54,765 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1713440749] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:54,765 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:54,765 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 14, 13] total 25 [2025-01-10 07:04:54,765 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1708498893] [2025-01-10 07:04:54,765 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:55,179 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:55,179 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2025-01-10 07:04:55,179 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=533, Unknown=0, NotChecked=0, Total=600 [2025-01-10 07:04:55,179 INFO L87 Difference]: Start difference. First operand 100 states and 122 transitions. cyclomatic complexity: 27 Second operand has 25 states, 25 states have (on average 3.16) internal successors, (79), 25 states have internal predecessors, (79), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:55,380 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:55,380 INFO L93 Difference]: Finished difference Result 86 states and 103 transitions. [2025-01-10 07:04:55,380 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 86 states and 103 transitions. [2025-01-10 07:04:55,381 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 33 [2025-01-10 07:04:55,381 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 86 states to 66 states and 80 transitions. [2025-01-10 07:04:55,381 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 43 [2025-01-10 07:04:55,381 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 43 [2025-01-10 07:04:55,381 INFO L73 IsDeterministic]: Start isDeterministic. Operand 66 states and 80 transitions. [2025-01-10 07:04:55,381 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:55,381 INFO L218 hiAutomatonCegarLoop]: Abstraction has 66 states and 80 transitions. [2025-01-10 07:04:55,382 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 66 states and 80 transitions. [2025-01-10 07:04:55,383 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 66 to 50. [2025-01-10 07:04:55,383 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 50 states have (on average 1.24) internal successors, (62), 49 states have internal predecessors, (62), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:55,385 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 62 transitions. [2025-01-10 07:04:55,385 INFO L240 hiAutomatonCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-01-10 07:04:55,385 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2025-01-10 07:04:55,385 INFO L432 stractBuchiCegarLoop]: Abstraction has 50 states and 62 transitions. [2025-01-10 07:04:55,385 INFO L338 stractBuchiCegarLoop]: ======== Iteration 12 ============ [2025-01-10 07:04:55,385 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 50 states and 62 transitions. [2025-01-10 07:04:55,386 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 25 [2025-01-10 07:04:55,386 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:55,386 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:55,386 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 4, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:55,386 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 4, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:55,386 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:55,386 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:55,387 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:55,387 INFO L85 PathProgramCache]: Analyzing trace with hash -2019525261, now seen corresponding path program 5 times [2025-01-10 07:04:55,387 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:55,387 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [187032309] [2025-01-10 07:04:55,387 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:04:55,387 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:55,390 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 24 statements into 5 equivalence classes. [2025-01-10 07:04:55,394 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:04:55,395 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2025-01-10 07:04:55,395 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:55,395 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:55,396 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 24 statements into 1 equivalence classes. [2025-01-10 07:04:55,399 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:04:55,399 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:55,399 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:55,401 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:55,402 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:55,402 INFO L85 PathProgramCache]: Analyzing trace with hash -2026721178, now seen corresponding path program 6 times [2025-01-10 07:04:55,402 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:55,402 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1690386801] [2025-01-10 07:04:55,402 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:04:55,402 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:55,409 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 25 statements into 5 equivalence classes. [2025-01-10 07:04:55,412 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:55,413 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) [2025-01-10 07:04:55,413 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:55,413 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:55,414 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 25 statements into 1 equivalence classes. [2025-01-10 07:04:55,416 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:55,416 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:55,416 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:55,418 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:55,419 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:55,419 INFO L85 PathProgramCache]: Analyzing trace with hash -1007691980, now seen corresponding path program 6 times [2025-01-10 07:04:55,419 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:55,419 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1600986101] [2025-01-10 07:04:55,419 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:04:55,419 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:55,424 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 49 statements into 6 equivalence classes. [2025-01-10 07:04:55,431 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) and asserted 33 of 49 statements. [2025-01-10 07:04:55,431 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2025-01-10 07:04:55,431 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:55,952 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 3 proven. 158 refuted. 0 times theorem prover too weak. 20 trivial. 0 not checked. [2025-01-10 07:04:55,952 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:55,952 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1600986101] [2025-01-10 07:04:55,952 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1600986101] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:55,952 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [766252197] [2025-01-10 07:04:55,952 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:04:55,952 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:55,952 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:55,954 INFO L229 MonitoredProcess]: Starting monitored process 51 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:55,956 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (51)] Waiting until timeout for monitored process [2025-01-10 07:04:56,004 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 49 statements into 6 equivalence classes. [2025-01-10 07:04:56,029 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) and asserted 33 of 49 statements. [2025-01-10 07:04:56,029 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2025-01-10 07:04:56,029 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:56,031 INFO L256 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 68 conjuncts are in the unsatisfiable core [2025-01-10 07:04:56,033 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:56,038 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 8 treesize of output 1 [2025-01-10 07:04:56,272 INFO L349 Elim1Store]: treesize reduction 40, result has 51.8 percent of original size [2025-01-10 07:04:56,272 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 31 treesize of output 50 [2025-01-10 07:04:56,444 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-01-10 07:04:56,444 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 32 treesize of output 28 [2025-01-10 07:04:56,464 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 93 proven. 60 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2025-01-10 07:04:56,465 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:56,837 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 107 proven. 46 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2025-01-10 07:04:56,838 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [766252197] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:56,838 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:56,838 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 15, 13] total 38 [2025-01-10 07:04:56,838 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1259222633] [2025-01-10 07:04:56,838 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:57,235 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:57,235 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2025-01-10 07:04:57,236 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=216, Invalid=1190, Unknown=0, NotChecked=0, Total=1406 [2025-01-10 07:04:57,236 INFO L87 Difference]: Start difference. First operand 50 states and 62 transitions. cyclomatic complexity: 15 Second operand has 38 states, 38 states have (on average 2.473684210526316) internal successors, (94), 38 states have internal predecessors, (94), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:57,934 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:04:57,934 INFO L93 Difference]: Finished difference Result 114 states and 139 transitions. [2025-01-10 07:04:57,934 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 114 states and 139 transitions. [2025-01-10 07:04:57,935 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 64 [2025-01-10 07:04:57,935 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 114 states to 114 states and 139 transitions. [2025-01-10 07:04:57,935 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 83 [2025-01-10 07:04:57,935 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 83 [2025-01-10 07:04:57,935 INFO L73 IsDeterministic]: Start isDeterministic. Operand 114 states and 139 transitions. [2025-01-10 07:04:57,936 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:04:57,936 INFO L218 hiAutomatonCegarLoop]: Abstraction has 114 states and 139 transitions. [2025-01-10 07:04:57,936 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 114 states and 139 transitions. [2025-01-10 07:04:57,937 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 114 to 90. [2025-01-10 07:04:57,942 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 90 states, 90 states have (on average 1.2333333333333334) internal successors, (111), 89 states have internal predecessors, (111), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:04:57,942 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 111 transitions. [2025-01-10 07:04:57,942 INFO L240 hiAutomatonCegarLoop]: Abstraction has 90 states and 111 transitions. [2025-01-10 07:04:57,945 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 32 states. [2025-01-10 07:04:57,946 INFO L432 stractBuchiCegarLoop]: Abstraction has 90 states and 111 transitions. [2025-01-10 07:04:57,946 INFO L338 stractBuchiCegarLoop]: ======== Iteration 13 ============ [2025-01-10 07:04:57,946 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 90 states and 111 transitions. [2025-01-10 07:04:57,946 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 50 [2025-01-10 07:04:57,946 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:04:57,946 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:04:57,947 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1] [2025-01-10 07:04:57,947 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 4, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:04:57,947 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:57,947 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:04:57,947 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:57,948 INFO L85 PathProgramCache]: Analyzing trace with hash -739661583, now seen corresponding path program 6 times [2025-01-10 07:04:57,948 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:57,948 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1204657093] [2025-01-10 07:04:57,948 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:04:57,948 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:57,952 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 24 statements into 5 equivalence classes. [2025-01-10 07:04:57,958 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:04:57,958 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) [2025-01-10 07:04:57,958 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:57,958 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:57,960 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 24 statements into 1 equivalence classes. [2025-01-10 07:04:57,963 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:04:57,963 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:57,963 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:57,965 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:57,966 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:57,966 INFO L85 PathProgramCache]: Analyzing trace with hash -2026721178, now seen corresponding path program 7 times [2025-01-10 07:04:57,966 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:57,966 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [402043770] [2025-01-10 07:04:57,966 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:04:57,967 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:57,970 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 25 statements into 1 equivalence classes. [2025-01-10 07:04:57,974 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:57,974 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:57,977 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:57,977 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:04:57,979 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 25 statements into 1 equivalence classes. [2025-01-10 07:04:57,981 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 25 of 25 statements. [2025-01-10 07:04:57,981 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:57,981 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:04:57,983 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:04:57,983 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:04:57,983 INFO L85 PathProgramCache]: Analyzing trace with hash 364115318, now seen corresponding path program 7 times [2025-01-10 07:04:57,983 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:04:57,983 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [113887067] [2025-01-10 07:04:57,983 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:04:57,983 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:04:57,990 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 49 statements into 1 equivalence classes. [2025-01-10 07:04:58,000 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 49 of 49 statements. [2025-01-10 07:04:58,004 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:58,004 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:58,502 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 51 proven. 128 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:04:58,502 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:04:58,502 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [113887067] [2025-01-10 07:04:58,502 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [113887067] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:04:58,502 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [355144496] [2025-01-10 07:04:58,503 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:04:58,503 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:04:58,503 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:04:58,505 INFO L229 MonitoredProcess]: Starting monitored process 52 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:04:58,506 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (52)] Waiting until timeout for monitored process [2025-01-10 07:04:58,558 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 49 statements into 1 equivalence classes. [2025-01-10 07:04:58,584 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 49 of 49 statements. [2025-01-10 07:04:58,585 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:04:58,585 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:04:58,587 INFO L256 TraceCheckSpWp]: Trace formula consists of 313 conjuncts, 77 conjuncts are in the unsatisfiable core [2025-01-10 07:04:58,589 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:04:58,745 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 13 treesize of output 9 [2025-01-10 07:04:58,948 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-01-10 07:04:58,949 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 27 treesize of output 11 [2025-01-10 07:04:58,965 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 51 proven. 126 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:04:58,965 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:04:59,092 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-01-10 07:04:59,092 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 119 treesize of output 95 [2025-01-10 07:04:59,465 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 51 proven. 126 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:04:59,466 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [355144496] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:04:59,466 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:04:59,466 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 18, 18] total 48 [2025-01-10 07:04:59,466 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1256476233] [2025-01-10 07:04:59,466 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:04:59,882 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:04:59,882 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 48 interpolants. [2025-01-10 07:04:59,882 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=157, Invalid=2099, Unknown=0, NotChecked=0, Total=2256 [2025-01-10 07:04:59,883 INFO L87 Difference]: Start difference. First operand 90 states and 111 transitions. cyclomatic complexity: 27 Second operand has 48 states, 48 states have (on average 2.4375) internal successors, (117), 48 states have internal predecessors, (117), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:01,522 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:01,522 INFO L93 Difference]: Finished difference Result 356 states and 424 transitions. [2025-01-10 07:05:01,522 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 356 states and 424 transitions. [2025-01-10 07:05:01,524 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 260 [2025-01-10 07:05:01,525 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 356 states to 356 states and 424 transitions. [2025-01-10 07:05:01,525 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 288 [2025-01-10 07:05:01,526 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 288 [2025-01-10 07:05:01,526 INFO L73 IsDeterministic]: Start isDeterministic. Operand 356 states and 424 transitions. [2025-01-10 07:05:01,526 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:01,526 INFO L218 hiAutomatonCegarLoop]: Abstraction has 356 states and 424 transitions. [2025-01-10 07:05:01,527 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 356 states and 424 transitions. [2025-01-10 07:05:01,531 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 356 to 234. [2025-01-10 07:05:01,534 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 234 states, 234 states have (on average 1.2222222222222223) internal successors, (286), 233 states have internal predecessors, (286), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:01,535 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 234 states to 234 states and 286 transitions. [2025-01-10 07:05:01,535 INFO L240 hiAutomatonCegarLoop]: Abstraction has 234 states and 286 transitions. [2025-01-10 07:05:01,536 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 49 states. [2025-01-10 07:05:01,536 INFO L432 stractBuchiCegarLoop]: Abstraction has 234 states and 286 transitions. [2025-01-10 07:05:01,536 INFO L338 stractBuchiCegarLoop]: ======== Iteration 14 ============ [2025-01-10 07:05:01,536 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 234 states and 286 transitions. [2025-01-10 07:05:01,537 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 172 [2025-01-10 07:05:01,537 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:01,537 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:01,537 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1] [2025-01-10 07:05:01,537 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [6, 6, 5, 4, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:01,537 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:01,537 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:01,539 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:01,539 INFO L85 PathProgramCache]: Analyzing trace with hash -739661583, now seen corresponding path program 7 times [2025-01-10 07:05:01,539 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:01,539 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [119236278] [2025-01-10 07:05:01,539 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:05:01,539 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:01,543 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 24 statements into 1 equivalence classes. [2025-01-10 07:05:01,547 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:05:01,548 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:01,549 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:01,549 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:01,551 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 24 statements into 1 equivalence classes. [2025-01-10 07:05:01,554 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 24 of 24 statements. [2025-01-10 07:05:01,554 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:01,554 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:01,558 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:01,558 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:01,558 INFO L85 PathProgramCache]: Analyzing trace with hash 337074768, now seen corresponding path program 8 times [2025-01-10 07:05:01,559 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:01,559 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2002082979] [2025-01-10 07:05:01,559 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:01,559 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:01,566 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 29 statements into 2 equivalence classes. [2025-01-10 07:05:01,569 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:01,570 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:01,570 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:01,570 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:01,571 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 29 statements into 1 equivalence classes. [2025-01-10 07:05:01,575 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:01,576 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:01,576 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:01,578 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:01,578 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:01,578 INFO L85 PathProgramCache]: Analyzing trace with hash 1196398432, now seen corresponding path program 8 times [2025-01-10 07:05:01,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:01,579 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1129920915] [2025-01-10 07:05:01,579 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:01,579 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:01,584 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 53 statements into 2 equivalence classes. [2025-01-10 07:05:01,591 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 53 of 53 statements. [2025-01-10 07:05:01,592 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:01,592 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:01,932 INFO L134 CoverageAnalysis]: Checked inductivity of 221 backedges. 73 proven. 144 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:01,932 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:01,932 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1129920915] [2025-01-10 07:05:01,932 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1129920915] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:01,933 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1157562494] [2025-01-10 07:05:01,933 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:01,933 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:01,933 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:01,935 INFO L229 MonitoredProcess]: Starting monitored process 53 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:01,936 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (53)] Waiting until timeout for monitored process [2025-01-10 07:05:01,987 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 53 statements into 2 equivalence classes. [2025-01-10 07:05:02,014 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 53 of 53 statements. [2025-01-10 07:05:02,014 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:02,014 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:02,022 INFO L256 TraceCheckSpWp]: Trace formula consists of 331 conjuncts, 75 conjuncts are in the unsatisfiable core [2025-01-10 07:05:02,024 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:02,153 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 13 treesize of output 9 [2025-01-10 07:05:02,199 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 3 [2025-01-10 07:05:02,200 INFO L134 CoverageAnalysis]: Checked inductivity of 221 backedges. 73 proven. 142 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:02,200 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:02,224 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 25 [2025-01-10 07:05:02,278 INFO L134 CoverageAnalysis]: Checked inductivity of 221 backedges. 73 proven. 142 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:02,279 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1157562494] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:02,279 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:02,279 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 15, 15] total 26 [2025-01-10 07:05:02,279 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [50085308] [2025-01-10 07:05:02,279 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:02,821 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:02,821 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2025-01-10 07:05:02,821 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=581, Unknown=0, NotChecked=0, Total=650 [2025-01-10 07:05:02,821 INFO L87 Difference]: Start difference. First operand 234 states and 286 transitions. cyclomatic complexity: 62 Second operand has 26 states, 26 states have (on average 3.1153846153846154) internal successors, (81), 26 states have internal predecessors, (81), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:03,111 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:03,111 INFO L93 Difference]: Finished difference Result 186 states and 222 transitions. [2025-01-10 07:05:03,113 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 186 states and 222 transitions. [2025-01-10 07:05:03,114 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 74 [2025-01-10 07:05:03,115 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 186 states to 138 states and 167 transitions. [2025-01-10 07:05:03,115 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 87 [2025-01-10 07:05:03,115 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 87 [2025-01-10 07:05:03,115 INFO L73 IsDeterministic]: Start isDeterministic. Operand 138 states and 167 transitions. [2025-01-10 07:05:03,115 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:03,115 INFO L218 hiAutomatonCegarLoop]: Abstraction has 138 states and 167 transitions. [2025-01-10 07:05:03,115 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states and 167 transitions. [2025-01-10 07:05:03,116 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 106. [2025-01-10 07:05:03,117 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 106 states, 106 states have (on average 1.2358490566037736) internal successors, (131), 105 states have internal predecessors, (131), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:03,117 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 131 transitions. [2025-01-10 07:05:03,117 INFO L240 hiAutomatonCegarLoop]: Abstraction has 106 states and 131 transitions. [2025-01-10 07:05:03,117 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2025-01-10 07:05:03,118 INFO L432 stractBuchiCegarLoop]: Abstraction has 106 states and 131 transitions. [2025-01-10 07:05:03,118 INFO L338 stractBuchiCegarLoop]: ======== Iteration 15 ============ [2025-01-10 07:05:03,118 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 106 states and 131 transitions. [2025-01-10 07:05:03,118 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 58 [2025-01-10 07:05:03,118 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:03,118 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:03,119 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 5, 4, 2, 1, 1, 1, 1, 1] [2025-01-10 07:05:03,119 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [6, 6, 5, 5, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:03,119 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:03,119 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:03,119 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:03,119 INFO L85 PathProgramCache]: Analyzing trace with hash -1002891941, now seen corresponding path program 8 times [2025-01-10 07:05:03,119 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:03,119 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1044132205] [2025-01-10 07:05:03,120 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:03,120 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:03,131 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 28 statements into 2 equivalence classes. [2025-01-10 07:05:03,135 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:03,136 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:03,136 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:03,136 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:03,137 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 28 statements into 1 equivalence classes. [2025-01-10 07:05:03,141 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:03,142 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:03,142 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:03,145 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:03,145 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:03,145 INFO L85 PathProgramCache]: Analyzing trace with hash -363989810, now seen corresponding path program 9 times [2025-01-10 07:05:03,145 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:03,145 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [565242104] [2025-01-10 07:05:03,145 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:03,146 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:03,149 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 29 statements into 6 equivalence classes. [2025-01-10 07:05:03,153 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:03,154 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2025-01-10 07:05:03,154 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:03,154 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:03,155 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 29 statements into 1 equivalence classes. [2025-01-10 07:05:03,157 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:03,158 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:03,158 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:03,160 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:03,161 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:03,161 INFO L85 PathProgramCache]: Analyzing trace with hash 1132287412, now seen corresponding path program 9 times [2025-01-10 07:05:03,161 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:03,161 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [489346771] [2025-01-10 07:05:03,161 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:03,161 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:03,167 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 57 statements into 7 equivalence classes. [2025-01-10 07:05:03,177 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) and asserted 37 of 57 statements. [2025-01-10 07:05:03,178 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2025-01-10 07:05:03,178 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:03,452 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 143 proven. 22 refuted. 0 times theorem prover too weak. 100 trivial. 0 not checked. [2025-01-10 07:05:03,452 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:03,452 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [489346771] [2025-01-10 07:05:03,452 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [489346771] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:03,452 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [151138039] [2025-01-10 07:05:03,452 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:03,452 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:03,452 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:03,454 INFO L229 MonitoredProcess]: Starting monitored process 54 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:03,457 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (54)] Waiting until timeout for monitored process [2025-01-10 07:05:03,514 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 57 statements into 7 equivalence classes. [2025-01-10 07:05:03,536 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) and asserted 37 of 57 statements. [2025-01-10 07:05:03,536 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2025-01-10 07:05:03,536 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:03,537 INFO L256 TraceCheckSpWp]: Trace formula consists of 249 conjuncts, 58 conjuncts are in the unsatisfiable core [2025-01-10 07:05:03,540 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:03,542 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 8 treesize of output 1 [2025-01-10 07:05:03,706 INFO L190 IndexEqualityManager]: detected not equals via solver [2025-01-10 07:05:03,707 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 12 [2025-01-10 07:05:03,726 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 8 [2025-01-10 07:05:03,737 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 172 proven. 26 refuted. 0 times theorem prover too weak. 67 trivial. 0 not checked. [2025-01-10 07:05:03,737 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:04,181 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 148 proven. 50 refuted. 0 times theorem prover too weak. 67 trivial. 0 not checked. [2025-01-10 07:05:04,181 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [151138039] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:04,181 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:04,181 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 13, 14] total 28 [2025-01-10 07:05:04,181 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1735059976] [2025-01-10 07:05:04,181 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:04,737 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:04,737 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2025-01-10 07:05:04,737 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=135, Invalid=621, Unknown=0, NotChecked=0, Total=756 [2025-01-10 07:05:04,738 INFO L87 Difference]: Start difference. First operand 106 states and 131 transitions. cyclomatic complexity: 31 Second operand has 28 states, 28 states have (on average 2.5714285714285716) internal successors, (72), 28 states have internal predecessors, (72), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:04,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:04,914 INFO L93 Difference]: Finished difference Result 222 states and 273 transitions. [2025-01-10 07:05:04,914 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 222 states and 273 transitions. [2025-01-10 07:05:04,917 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 124 [2025-01-10 07:05:04,918 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 222 states to 222 states and 273 transitions. [2025-01-10 07:05:04,918 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 144 [2025-01-10 07:05:04,919 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 144 [2025-01-10 07:05:04,919 INFO L73 IsDeterministic]: Start isDeterministic. Operand 222 states and 273 transitions. [2025-01-10 07:05:04,919 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:04,919 INFO L218 hiAutomatonCegarLoop]: Abstraction has 222 states and 273 transitions. [2025-01-10 07:05:04,919 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 222 states and 273 transitions. [2025-01-10 07:05:04,922 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 222 to 206. [2025-01-10 07:05:04,922 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 206 states, 206 states have (on average 1.2281553398058251) internal successors, (253), 205 states have internal predecessors, (253), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:04,923 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 206 states to 206 states and 253 transitions. [2025-01-10 07:05:04,923 INFO L240 hiAutomatonCegarLoop]: Abstraction has 206 states and 253 transitions. [2025-01-10 07:05:04,923 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2025-01-10 07:05:04,924 INFO L432 stractBuchiCegarLoop]: Abstraction has 206 states and 253 transitions. [2025-01-10 07:05:04,924 INFO L338 stractBuchiCegarLoop]: ======== Iteration 16 ============ [2025-01-10 07:05:04,924 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 206 states and 253 transitions. [2025-01-10 07:05:04,924 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 116 [2025-01-10 07:05:04,924 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:04,924 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:04,925 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 5, 3, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:04,925 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [6, 6, 5, 5, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:04,925 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:04,925 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:04,926 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:04,926 INFO L85 PathProgramCache]: Analyzing trace with hash 802546393, now seen corresponding path program 9 times [2025-01-10 07:05:04,926 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:04,926 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2131170692] [2025-01-10 07:05:04,926 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:04,926 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:04,931 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 28 statements into 6 equivalence classes. [2025-01-10 07:05:04,937 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:04,937 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2025-01-10 07:05:04,937 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:04,937 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:04,939 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 28 statements into 1 equivalence classes. [2025-01-10 07:05:04,942 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:04,942 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:04,942 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:04,944 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:04,945 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:04,945 INFO L85 PathProgramCache]: Analyzing trace with hash -363989810, now seen corresponding path program 10 times [2025-01-10 07:05:04,945 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:04,945 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1528948872] [2025-01-10 07:05:04,945 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:04,945 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:04,949 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 29 statements into 2 equivalence classes. [2025-01-10 07:05:04,952 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:04,952 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:04,952 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:04,953 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:04,954 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 29 statements into 1 equivalence classes. [2025-01-10 07:05:04,957 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 29 of 29 statements. [2025-01-10 07:05:04,957 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:04,957 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:04,959 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:04,960 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:04,960 INFO L85 PathProgramCache]: Analyzing trace with hash -406052618, now seen corresponding path program 10 times [2025-01-10 07:05:04,960 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:04,960 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [751300746] [2025-01-10 07:05:04,960 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:04,960 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:04,968 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 57 statements into 2 equivalence classes. [2025-01-10 07:05:04,977 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 57 of 57 statements. [2025-01-10 07:05:04,978 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:04,978 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:05,383 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 63 proven. 200 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:05,383 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:05,383 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [751300746] [2025-01-10 07:05:05,383 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [751300746] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:05,383 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1890722040] [2025-01-10 07:05:05,383 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:05,383 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:05,383 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:05,385 INFO L229 MonitoredProcess]: Starting monitored process 55 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:05,388 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (55)] Waiting until timeout for monitored process [2025-01-10 07:05:05,447 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 57 statements into 2 equivalence classes. [2025-01-10 07:05:05,484 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 57 of 57 statements. [2025-01-10 07:05:05,484 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:05,484 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:05,487 INFO L256 TraceCheckSpWp]: Trace formula consists of 359 conjuncts, 93 conjuncts are in the unsatisfiable core [2025-01-10 07:05:05,489 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:05,759 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:05:06,045 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 63 proven. 198 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:06,045 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:06,494 INFO L349 Elim1Store]: treesize reduction 8, result has 68.0 percent of original size [2025-01-10 07:05:06,495 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 145 treesize of output 133 [2025-01-10 07:05:07,019 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 14 proven. 249 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:07,019 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1890722040] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:07,019 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:07,019 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 21, 22] total 61 [2025-01-10 07:05:07,019 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1215028580] [2025-01-10 07:05:07,019 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:07,605 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:07,605 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 61 interpolants. [2025-01-10 07:05:07,606 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=218, Invalid=3442, Unknown=0, NotChecked=0, Total=3660 [2025-01-10 07:05:07,606 INFO L87 Difference]: Start difference. First operand 206 states and 253 transitions. cyclomatic complexity: 59 Second operand has 61 states, 61 states have (on average 2.5737704918032787) internal successors, (157), 61 states have internal predecessors, (157), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:09,909 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:09,910 INFO L93 Difference]: Finished difference Result 676 states and 814 transitions. [2025-01-10 07:05:09,910 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 676 states and 814 transitions. [2025-01-10 07:05:09,912 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 496 [2025-01-10 07:05:09,914 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 676 states to 676 states and 814 transitions. [2025-01-10 07:05:09,915 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 544 [2025-01-10 07:05:09,915 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 544 [2025-01-10 07:05:09,915 INFO L73 IsDeterministic]: Start isDeterministic. Operand 676 states and 814 transitions. [2025-01-10 07:05:09,916 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:09,916 INFO L218 hiAutomatonCegarLoop]: Abstraction has 676 states and 814 transitions. [2025-01-10 07:05:09,916 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 676 states and 814 transitions. [2025-01-10 07:05:09,923 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 676 to 550. [2025-01-10 07:05:09,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 550 states, 550 states have (on average 1.2236363636363636) internal successors, (673), 549 states have internal predecessors, (673), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:09,925 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 550 states to 550 states and 673 transitions. [2025-01-10 07:05:09,925 INFO L240 hiAutomatonCegarLoop]: Abstraction has 550 states and 673 transitions. [2025-01-10 07:05:09,925 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 53 states. [2025-01-10 07:05:09,926 INFO L432 stractBuchiCegarLoop]: Abstraction has 550 states and 673 transitions. [2025-01-10 07:05:09,926 INFO L338 stractBuchiCegarLoop]: ======== Iteration 17 ============ [2025-01-10 07:05:09,926 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 550 states and 673 transitions. [2025-01-10 07:05:09,927 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 416 [2025-01-10 07:05:09,927 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:09,927 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:09,928 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 5, 3, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:09,928 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 6, 5, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:09,928 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:09,928 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:09,928 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:09,928 INFO L85 PathProgramCache]: Analyzing trace with hash 802546393, now seen corresponding path program 10 times [2025-01-10 07:05:09,928 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:09,928 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [692031857] [2025-01-10 07:05:09,929 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:09,929 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:09,932 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 28 statements into 2 equivalence classes. [2025-01-10 07:05:09,936 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:09,936 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:09,936 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:09,936 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:09,938 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 28 statements into 1 equivalence classes. [2025-01-10 07:05:09,940 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 28 of 28 statements. [2025-01-10 07:05:09,940 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:09,940 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:09,943 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:09,943 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:09,943 INFO L85 PathProgramCache]: Analyzing trace with hash 900344504, now seen corresponding path program 11 times [2025-01-10 07:05:09,943 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:09,943 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [690957055] [2025-01-10 07:05:09,944 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:05:09,944 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:09,947 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 33 statements into 7 equivalence classes. [2025-01-10 07:05:09,951 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:05:09,951 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) [2025-01-10 07:05:09,951 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:09,951 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:09,952 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 33 statements into 1 equivalence classes. [2025-01-10 07:05:09,954 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:05:09,955 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:09,955 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:09,957 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:09,957 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:09,958 INFO L85 PathProgramCache]: Analyzing trace with hash -1301937440, now seen corresponding path program 11 times [2025-01-10 07:05:09,958 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:09,958 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1784211660] [2025-01-10 07:05:09,958 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:05:09,958 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:09,964 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 61 statements into 7 equivalence classes. [2025-01-10 07:05:09,972 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) and asserted 61 of 61 statements. [2025-01-10 07:05:09,972 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) [2025-01-10 07:05:09,972 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:10,364 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 89 proven. 220 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:10,365 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:10,365 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1784211660] [2025-01-10 07:05:10,365 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1784211660] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:10,365 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [435804787] [2025-01-10 07:05:10,365 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:05:10,365 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:10,365 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:10,368 INFO L229 MonitoredProcess]: Starting monitored process 56 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:10,370 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (56)] Waiting until timeout for monitored process [2025-01-10 07:05:10,432 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 61 statements into 7 equivalence classes. [2025-01-10 07:05:10,474 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) and asserted 61 of 61 statements. [2025-01-10 07:05:10,474 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) [2025-01-10 07:05:10,474 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:10,479 INFO L256 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 79 conjuncts are in the unsatisfiable core [2025-01-10 07:05:10,482 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:10,577 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:05:10,656 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 89 proven. 218 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:10,656 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:10,697 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 25 [2025-01-10 07:05:10,859 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 89 proven. 218 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:10,859 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [435804787] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:10,859 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:10,859 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 18, 17] total 33 [2025-01-10 07:05:10,859 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [649328997] [2025-01-10 07:05:10,859 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:11,603 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:11,603 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 33 interpolants. [2025-01-10 07:05:11,603 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=967, Unknown=0, NotChecked=0, Total=1056 [2025-01-10 07:05:11,604 INFO L87 Difference]: Start difference. First operand 550 states and 673 transitions. cyclomatic complexity: 143 Second operand has 33 states, 33 states have (on average 3.3636363636363638) internal successors, (111), 33 states have internal predecessors, (111), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:12,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:12,076 INFO L93 Difference]: Finished difference Result 414 states and 493 transitions. [2025-01-10 07:05:12,076 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 414 states and 493 transitions. [2025-01-10 07:05:12,077 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 164 [2025-01-10 07:05:12,078 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 414 states to 302 states and 365 transitions. [2025-01-10 07:05:12,078 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 184 [2025-01-10 07:05:12,078 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 184 [2025-01-10 07:05:12,078 INFO L73 IsDeterministic]: Start isDeterministic. Operand 302 states and 365 transitions. [2025-01-10 07:05:12,079 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:12,079 INFO L218 hiAutomatonCegarLoop]: Abstraction has 302 states and 365 transitions. [2025-01-10 07:05:12,079 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 302 states and 365 transitions. [2025-01-10 07:05:12,081 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 302 to 238. [2025-01-10 07:05:12,082 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 238 states, 238 states have (on average 1.23109243697479) internal successors, (293), 237 states have internal predecessors, (293), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:12,082 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 238 states to 238 states and 293 transitions. [2025-01-10 07:05:12,082 INFO L240 hiAutomatonCegarLoop]: Abstraction has 238 states and 293 transitions. [2025-01-10 07:05:12,082 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2025-01-10 07:05:12,083 INFO L432 stractBuchiCegarLoop]: Abstraction has 238 states and 293 transitions. [2025-01-10 07:05:12,083 INFO L338 stractBuchiCegarLoop]: ======== Iteration 18 ============ [2025-01-10 07:05:12,083 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 238 states and 293 transitions. [2025-01-10 07:05:12,083 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 132 [2025-01-10 07:05:12,084 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:12,084 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:12,084 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 6, 4, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:12,084 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 6, 6, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:12,084 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:12,084 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:12,085 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:12,085 INFO L85 PathProgramCache]: Analyzing trace with hash 2049317699, now seen corresponding path program 11 times [2025-01-10 07:05:12,085 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:12,085 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1900971394] [2025-01-10 07:05:12,085 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:05:12,085 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:12,090 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 32 statements into 7 equivalence classes. [2025-01-10 07:05:12,094 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) and asserted 32 of 32 statements. [2025-01-10 07:05:12,094 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) [2025-01-10 07:05:12,094 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:12,094 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:12,095 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 32 statements into 1 equivalence classes. [2025-01-10 07:05:12,098 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 32 of 32 statements. [2025-01-10 07:05:12,098 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:12,098 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:12,101 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:12,101 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:12,101 INFO L85 PathProgramCache]: Analyzing trace with hash 199279926, now seen corresponding path program 12 times [2025-01-10 07:05:12,101 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:12,101 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1180560511] [2025-01-10 07:05:12,101 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:05:12,102 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:12,105 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 33 statements into 7 equivalence classes. [2025-01-10 07:05:12,108 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 7 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:05:12,109 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 7 check-sat command(s) [2025-01-10 07:05:12,109 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:12,109 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:12,110 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 33 statements into 1 equivalence classes. [2025-01-10 07:05:12,112 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 33 of 33 statements. [2025-01-10 07:05:12,112 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:12,112 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:12,114 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:12,115 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:12,115 INFO L85 PathProgramCache]: Analyzing trace with hash 173709876, now seen corresponding path program 12 times [2025-01-10 07:05:12,115 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:12,115 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2054927860] [2025-01-10 07:05:12,115 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:05:12,115 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:12,125 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 65 statements into 8 equivalence classes. [2025-01-10 07:05:12,140 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 8 check-sat command(s) and asserted 65 of 65 statements. [2025-01-10 07:05:12,140 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 8 check-sat command(s) [2025-01-10 07:05:12,140 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:12,813 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 75 proven. 288 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:12,813 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:12,813 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2054927860] [2025-01-10 07:05:12,814 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2054927860] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:12,814 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1141427454] [2025-01-10 07:05:12,814 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:05:12,814 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:12,814 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:12,817 INFO L229 MonitoredProcess]: Starting monitored process 57 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:12,819 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (57)] Waiting until timeout for monitored process [2025-01-10 07:05:12,885 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 65 statements into 8 equivalence classes. [2025-01-10 07:05:12,941 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 8 check-sat command(s) and asserted 65 of 65 statements. [2025-01-10 07:05:12,941 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 8 check-sat command(s) [2025-01-10 07:05:12,941 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:12,944 INFO L256 TraceCheckSpWp]: Trace formula consists of 400 conjuncts, 117 conjuncts are in the unsatisfiable core [2025-01-10 07:05:12,946 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:13,178 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:05:13,537 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 75 proven. 286 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:13,537 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:14,083 INFO L349 Elim1Store]: treesize reduction 15, result has 51.6 percent of original size [2025-01-10 07:05:14,083 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 4 select indices, 4 select index equivalence classes, 0 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 6 case distinctions, treesize of input 261 treesize of output 218 [2025-01-10 07:05:14,606 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 21 proven. 342 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:14,607 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1141427454] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:14,607 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:14,607 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 25, 26] total 69 [2025-01-10 07:05:14,607 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1258242323] [2025-01-10 07:05:14,607 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:15,193 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:15,194 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 69 interpolants. [2025-01-10 07:05:15,194 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=298, Invalid=4394, Unknown=0, NotChecked=0, Total=4692 [2025-01-10 07:05:15,195 INFO L87 Difference]: Start difference. First operand 238 states and 293 transitions. cyclomatic complexity: 67 Second operand has 69 states, 69 states have (on average 2.579710144927536) internal successors, (178), 69 states have internal predecessors, (178), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:18,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:18,714 INFO L93 Difference]: Finished difference Result 934 states and 1117 transitions. [2025-01-10 07:05:18,714 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 934 states and 1117 transitions. [2025-01-10 07:05:18,717 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 672 [2025-01-10 07:05:18,719 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 934 states to 934 states and 1117 transitions. [2025-01-10 07:05:18,719 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 720 [2025-01-10 07:05:18,720 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 720 [2025-01-10 07:05:18,720 INFO L73 IsDeterministic]: Start isDeterministic. Operand 934 states and 1117 transitions. [2025-01-10 07:05:18,720 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:18,720 INFO L218 hiAutomatonCegarLoop]: Abstraction has 934 states and 1117 transitions. [2025-01-10 07:05:18,721 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 934 states and 1117 transitions. [2025-01-10 07:05:18,726 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 934 to 530. [2025-01-10 07:05:18,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 530 states, 530 states have (on average 1.2339622641509433) internal successors, (654), 529 states have internal predecessors, (654), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:18,728 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 530 states to 530 states and 654 transitions. [2025-01-10 07:05:18,728 INFO L240 hiAutomatonCegarLoop]: Abstraction has 530 states and 654 transitions. [2025-01-10 07:05:18,728 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 68 states. [2025-01-10 07:05:18,729 INFO L432 stractBuchiCegarLoop]: Abstraction has 530 states and 654 transitions. [2025-01-10 07:05:18,729 INFO L338 stractBuchiCegarLoop]: ======== Iteration 19 ============ [2025-01-10 07:05:18,729 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 530 states and 654 transitions. [2025-01-10 07:05:18,731 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 380 [2025-01-10 07:05:18,731 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:18,731 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:18,731 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 6, 4, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:18,731 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [8, 8, 7, 6, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:18,732 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:18,732 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:18,732 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:18,732 INFO L85 PathProgramCache]: Analyzing trace with hash 2049317699, now seen corresponding path program 12 times [2025-01-10 07:05:18,732 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:18,732 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1217530766] [2025-01-10 07:05:18,732 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:05:18,732 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:18,737 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 32 statements into 7 equivalence classes. [2025-01-10 07:05:18,742 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 7 check-sat command(s) and asserted 32 of 32 statements. [2025-01-10 07:05:18,744 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 7 check-sat command(s) [2025-01-10 07:05:18,744 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:18,744 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:18,745 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 32 statements into 1 equivalence classes. [2025-01-10 07:05:18,748 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 32 of 32 statements. [2025-01-10 07:05:18,748 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:18,748 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:18,750 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:18,751 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:18,751 INFO L85 PathProgramCache]: Analyzing trace with hash -1223784672, now seen corresponding path program 13 times [2025-01-10 07:05:18,751 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:18,751 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [211189742] [2025-01-10 07:05:18,751 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:05:18,751 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:18,755 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 37 statements into 1 equivalence classes. [2025-01-10 07:05:18,758 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 37 of 37 statements. [2025-01-10 07:05:18,758 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:18,758 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:18,758 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:18,759 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 37 statements into 1 equivalence classes. [2025-01-10 07:05:18,762 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 37 of 37 statements. [2025-01-10 07:05:18,762 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:18,762 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:18,764 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:18,764 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:18,764 INFO L85 PathProgramCache]: Analyzing trace with hash -1971737314, now seen corresponding path program 13 times [2025-01-10 07:05:18,765 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:18,765 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1690821321] [2025-01-10 07:05:18,765 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:05:18,765 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:18,771 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 69 statements into 1 equivalence classes. [2025-01-10 07:05:18,777 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 69 of 69 statements. [2025-01-10 07:05:18,777 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:18,777 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:19,156 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 105 proven. 312 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:19,156 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:19,156 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1690821321] [2025-01-10 07:05:19,156 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1690821321] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:19,156 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1812752066] [2025-01-10 07:05:19,156 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:05:19,156 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:19,156 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:19,158 INFO L229 MonitoredProcess]: Starting monitored process 58 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:19,159 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (58)] Waiting until timeout for monitored process [2025-01-10 07:05:19,223 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 69 statements into 1 equivalence classes. [2025-01-10 07:05:19,253 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 69 of 69 statements. [2025-01-10 07:05:19,254 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:19,254 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:19,256 INFO L256 TraceCheckSpWp]: Trace formula consists of 418 conjuncts, 85 conjuncts are in the unsatisfiable core [2025-01-10 07:05:19,258 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:19,429 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 13 treesize of output 9 [2025-01-10 07:05:19,487 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 105 proven. 310 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:19,487 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:19,515 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 25 [2025-01-10 07:05:19,599 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 105 proven. 310 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:05:19,599 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1812752066] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:19,599 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:19,599 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 19, 19] total 32 [2025-01-10 07:05:19,599 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [345948314] [2025-01-10 07:05:19,599 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:20,305 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:20,306 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2025-01-10 07:05:20,306 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=907, Unknown=0, NotChecked=0, Total=992 [2025-01-10 07:05:20,306 INFO L87 Difference]: Start difference. First operand 530 states and 654 transitions. cyclomatic complexity: 145 Second operand has 32 states, 32 states have (on average 3.28125) internal successors, (105), 32 states have internal predecessors, (105), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:20,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:20,951 INFO L93 Difference]: Finished difference Result 462 states and 553 transitions. [2025-01-10 07:05:20,952 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 462 states and 553 transitions. [2025-01-10 07:05:20,953 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 180 [2025-01-10 07:05:20,954 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 462 states to 334 states and 405 transitions. [2025-01-10 07:05:20,954 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 200 [2025-01-10 07:05:20,954 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 200 [2025-01-10 07:05:20,954 INFO L73 IsDeterministic]: Start isDeterministic. Operand 334 states and 405 transitions. [2025-01-10 07:05:20,954 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:20,954 INFO L218 hiAutomatonCegarLoop]: Abstraction has 334 states and 405 transitions. [2025-01-10 07:05:20,955 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 334 states and 405 transitions. [2025-01-10 07:05:20,957 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 334 to 270. [2025-01-10 07:05:20,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 270 states, 270 states have (on average 1.2333333333333334) internal successors, (333), 269 states have internal predecessors, (333), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:20,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 270 states to 270 states and 333 transitions. [2025-01-10 07:05:20,958 INFO L240 hiAutomatonCegarLoop]: Abstraction has 270 states and 333 transitions. [2025-01-10 07:05:20,958 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2025-01-10 07:05:20,958 INFO L432 stractBuchiCegarLoop]: Abstraction has 270 states and 333 transitions. [2025-01-10 07:05:20,959 INFO L338 stractBuchiCegarLoop]: ======== Iteration 20 ============ [2025-01-10 07:05:20,959 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 270 states and 333 transitions. [2025-01-10 07:05:20,959 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 148 [2025-01-10 07:05:20,961 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:20,961 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:20,961 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 7, 5, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:20,961 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [8, 8, 7, 7, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:20,961 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:20,961 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:20,962 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:20,962 INFO L85 PathProgramCache]: Analyzing trace with hash 930090669, now seen corresponding path program 13 times [2025-01-10 07:05:20,962 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:20,962 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [464228029] [2025-01-10 07:05:20,962 INFO L95 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2025-01-10 07:05:20,962 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:20,966 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 36 statements into 1 equivalence classes. [2025-01-10 07:05:20,970 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 36 of 36 statements. [2025-01-10 07:05:20,970 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:20,970 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:20,970 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:20,971 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 36 statements into 1 equivalence classes. [2025-01-10 07:05:20,974 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 36 of 36 statements. [2025-01-10 07:05:20,974 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:20,974 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:20,977 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:20,977 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:20,977 INFO L85 PathProgramCache]: Analyzing trace with hash -1924849250, now seen corresponding path program 14 times [2025-01-10 07:05:20,977 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:20,977 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2041380374] [2025-01-10 07:05:20,977 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:20,977 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:20,981 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 37 statements into 2 equivalence classes. [2025-01-10 07:05:20,984 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 37 of 37 statements. [2025-01-10 07:05:20,984 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:20,984 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:20,984 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:20,985 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 37 statements into 1 equivalence classes. [2025-01-10 07:05:20,988 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 37 of 37 statements. [2025-01-10 07:05:20,988 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:20,988 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:20,992 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:20,992 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:20,994 INFO L85 PathProgramCache]: Analyzing trace with hash 602345074, now seen corresponding path program 14 times [2025-01-10 07:05:20,994 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:20,994 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1548603400] [2025-01-10 07:05:20,994 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:20,994 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:21,000 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 73 statements into 2 equivalence classes. [2025-01-10 07:05:21,009 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 73 of 73 statements. [2025-01-10 07:05:21,009 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:21,009 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:21,480 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 1 proven. 480 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:05:21,480 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:21,480 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1548603400] [2025-01-10 07:05:21,480 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1548603400] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:21,480 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1390875677] [2025-01-10 07:05:21,480 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:21,480 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:21,480 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:21,482 INFO L229 MonitoredProcess]: Starting monitored process 59 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:21,484 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (59)] Waiting until timeout for monitored process [2025-01-10 07:05:21,557 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 73 statements into 2 equivalence classes. [2025-01-10 07:05:21,590 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 73 of 73 statements. [2025-01-10 07:05:21,590 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:21,590 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:21,593 INFO L256 TraceCheckSpWp]: Trace formula consists of 441 conjuncts, 106 conjuncts are in the unsatisfiable core [2025-01-10 07:05:21,595 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:21,723 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:05:22,003 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 87 proven. 390 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:22,003 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:22,287 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-01-10 07:05:22,287 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 115 treesize of output 91 [2025-01-10 07:05:22,840 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 86 proven. 391 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:22,840 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1390875677] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:22,840 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:22,840 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 26, 26] total 62 [2025-01-10 07:05:22,841 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1021545507] [2025-01-10 07:05:22,841 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:23,508 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:23,509 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 62 interpolants. [2025-01-10 07:05:23,509 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=204, Invalid=3578, Unknown=0, NotChecked=0, Total=3782 [2025-01-10 07:05:23,510 INFO L87 Difference]: Start difference. First operand 270 states and 333 transitions. cyclomatic complexity: 75 Second operand has 62 states, 62 states have (on average 2.774193548387097) internal successors, (172), 62 states have internal predecessors, (172), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:26,566 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:26,566 INFO L93 Difference]: Finished difference Result 892 states and 1086 transitions. [2025-01-10 07:05:26,566 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 892 states and 1086 transitions. [2025-01-10 07:05:26,569 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 672 [2025-01-10 07:05:26,571 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 892 states to 892 states and 1086 transitions. [2025-01-10 07:05:26,571 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 720 [2025-01-10 07:05:26,572 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 720 [2025-01-10 07:05:26,572 INFO L73 IsDeterministic]: Start isDeterministic. Operand 892 states and 1086 transitions. [2025-01-10 07:05:26,572 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:26,572 INFO L218 hiAutomatonCegarLoop]: Abstraction has 892 states and 1086 transitions. [2025-01-10 07:05:26,573 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 892 states and 1086 transitions. [2025-01-10 07:05:26,580 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 892 to 726. [2025-01-10 07:05:26,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 726 states, 726 states have (on average 1.2355371900826446) internal successors, (897), 725 states have internal predecessors, (897), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:26,582 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 726 states to 726 states and 897 transitions. [2025-01-10 07:05:26,582 INFO L240 hiAutomatonCegarLoop]: Abstraction has 726 states and 897 transitions. [2025-01-10 07:05:26,583 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 67 states. [2025-01-10 07:05:26,583 INFO L432 stractBuchiCegarLoop]: Abstraction has 726 states and 897 transitions. [2025-01-10 07:05:26,583 INFO L338 stractBuchiCegarLoop]: ======== Iteration 21 ============ [2025-01-10 07:05:26,583 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 726 states and 897 transitions. [2025-01-10 07:05:26,584 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 560 [2025-01-10 07:05:26,584 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:26,584 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:26,586 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 7, 5, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:26,586 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 8, 7, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:26,586 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:26,586 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:26,586 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:26,586 INFO L85 PathProgramCache]: Analyzing trace with hash 930090669, now seen corresponding path program 14 times [2025-01-10 07:05:26,586 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:26,586 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1456353374] [2025-01-10 07:05:26,586 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2025-01-10 07:05:26,587 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:26,591 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 partitioned 36 statements into 2 equivalence classes. [2025-01-10 07:05:26,594 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) and asserted 36 of 36 statements. [2025-01-10 07:05:26,595 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2025-01-10 07:05:26,595 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:26,595 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:26,596 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 36 statements into 1 equivalence classes. [2025-01-10 07:05:26,598 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 36 of 36 statements. [2025-01-10 07:05:26,598 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:26,598 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:26,600 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:26,601 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:26,601 INFO L85 PathProgramCache]: Analyzing trace with hash -56725624, now seen corresponding path program 15 times [2025-01-10 07:05:26,601 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:26,601 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [593170768] [2025-01-10 07:05:26,601 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:26,601 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:26,605 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 41 statements into 9 equivalence classes. [2025-01-10 07:05:26,609 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:05:26,609 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2025-01-10 07:05:26,610 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:26,610 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:26,611 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 41 statements into 1 equivalence classes. [2025-01-10 07:05:26,613 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:05:26,613 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:26,613 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:26,616 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:26,616 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:26,616 INFO L85 PathProgramCache]: Analyzing trace with hash 1679151708, now seen corresponding path program 15 times [2025-01-10 07:05:26,616 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:26,616 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [613584749] [2025-01-10 07:05:26,616 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:26,616 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:26,623 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 77 statements into 9 equivalence classes. [2025-01-10 07:05:26,636 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) and asserted 77 of 77 statements. [2025-01-10 07:05:26,636 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2025-01-10 07:05:26,636 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:27,106 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 121 proven. 420 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:27,107 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:27,107 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [613584749] [2025-01-10 07:05:27,107 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [613584749] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:27,107 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1751822309] [2025-01-10 07:05:27,107 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:27,107 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:27,107 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:27,111 INFO L229 MonitoredProcess]: Starting monitored process 60 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:27,112 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (60)] Waiting until timeout for monitored process [2025-01-10 07:05:27,189 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 77 statements into 9 equivalence classes. [2025-01-10 07:05:27,253 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) and asserted 77 of 77 statements. [2025-01-10 07:05:27,253 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2025-01-10 07:05:27,253 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:27,256 INFO L256 TraceCheckSpWp]: Trace formula consists of 459 conjuncts, 124 conjuncts are in the unsatisfiable core [2025-01-10 07:05:27,258 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:27,262 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 8 treesize of output 1 [2025-01-10 07:05:27,485 INFO L190 IndexEqualityManager]: detected not equals via solver [2025-01-10 07:05:27,486 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 11 [2025-01-10 07:05:27,782 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2025-01-10 07:05:27,782 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 23 treesize of output 11 [2025-01-10 07:05:27,801 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 93 proven. 450 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:27,801 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:41,384 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 97 proven. 446 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:41,385 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1751822309] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:41,385 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:41,385 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 28, 28] total 67 [2025-01-10 07:05:41,385 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [602994464] [2025-01-10 07:05:41,385 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:42,359 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:42,360 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 67 interpolants. [2025-01-10 07:05:42,361 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=231, Invalid=4190, Unknown=1, NotChecked=0, Total=4422 [2025-01-10 07:05:42,361 INFO L87 Difference]: Start difference. First operand 726 states and 897 transitions. cyclomatic complexity: 191 Second operand has 67 states, 67 states have (on average 2.7761194029850746) internal successors, (186), 67 states have internal predecessors, (186), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:51,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:05:51,203 INFO L93 Difference]: Finished difference Result 1094 states and 1257 transitions. [2025-01-10 07:05:51,203 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1094 states and 1257 transitions. [2025-01-10 07:05:51,205 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 236 [2025-01-10 07:05:51,207 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1094 states to 446 states and 541 transitions. [2025-01-10 07:05:51,207 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 256 [2025-01-10 07:05:51,207 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 256 [2025-01-10 07:05:51,207 INFO L73 IsDeterministic]: Start isDeterministic. Operand 446 states and 541 transitions. [2025-01-10 07:05:51,207 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:05:51,207 INFO L218 hiAutomatonCegarLoop]: Abstraction has 446 states and 541 transitions. [2025-01-10 07:05:51,207 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 446 states and 541 transitions. [2025-01-10 07:05:51,210 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 446 to 302. [2025-01-10 07:05:51,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 302 states, 302 states have (on average 1.2350993377483444) internal successors, (373), 301 states have internal predecessors, (373), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:05:51,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 302 states to 302 states and 373 transitions. [2025-01-10 07:05:51,212 INFO L240 hiAutomatonCegarLoop]: Abstraction has 302 states and 373 transitions. [2025-01-10 07:05:51,212 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 100 states. [2025-01-10 07:05:51,212 INFO L432 stractBuchiCegarLoop]: Abstraction has 302 states and 373 transitions. [2025-01-10 07:05:51,212 INFO L338 stractBuchiCegarLoop]: ======== Iteration 22 ============ [2025-01-10 07:05:51,212 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 302 states and 373 transitions. [2025-01-10 07:05:51,213 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 164 [2025-01-10 07:05:51,213 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:05:51,213 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:05:51,213 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 8, 6, 3, 1, 1, 1, 1, 1] [2025-01-10 07:05:51,213 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 8, 8, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:05:51,213 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:51,213 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:05:51,214 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:51,214 INFO L85 PathProgramCache]: Analyzing trace with hash -1906426601, now seen corresponding path program 15 times [2025-01-10 07:05:51,214 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:51,214 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [517501244] [2025-01-10 07:05:51,214 INFO L95 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2025-01-10 07:05:51,214 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:51,222 INFO L108 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 partitioned 40 statements into 9 equivalence classes. [2025-01-10 07:05:51,228 INFO L111 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) and asserted 40 of 40 statements. [2025-01-10 07:05:51,228 INFO L114 AnnotateAndAsserter]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2025-01-10 07:05:51,228 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:51,228 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:51,230 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 40 statements into 1 equivalence classes. [2025-01-10 07:05:51,232 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 40 of 40 statements. [2025-01-10 07:05:51,233 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:51,233 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:51,235 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:51,235 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:51,235 INFO L85 PathProgramCache]: Analyzing trace with hash -757790202, now seen corresponding path program 16 times [2025-01-10 07:05:51,235 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:51,235 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [769716546] [2025-01-10 07:05:51,236 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:51,236 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:51,241 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 41 statements into 2 equivalence classes. [2025-01-10 07:05:51,243 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:05:51,243 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:51,243 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:51,244 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:05:51,245 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 41 statements into 1 equivalence classes. [2025-01-10 07:05:51,247 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 41 of 41 statements. [2025-01-10 07:05:51,247 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:05:51,247 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:05:51,249 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:05:51,250 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:05:51,250 INFO L85 PathProgramCache]: Analyzing trace with hash 1183972784, now seen corresponding path program 16 times [2025-01-10 07:05:51,250 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:05:51,250 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1417776053] [2025-01-10 07:05:51,250 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:51,250 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:05:51,268 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 81 statements into 2 equivalence classes. [2025-01-10 07:05:51,275 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 81 of 81 statements. [2025-01-10 07:05:51,279 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:51,279 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:52,019 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 99 proven. 512 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:52,019 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:05:52,019 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1417776053] [2025-01-10 07:05:52,019 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1417776053] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:05:52,019 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [836354006] [2025-01-10 07:05:52,019 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:05:52,019 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:05:52,020 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:05:52,022 INFO L229 MonitoredProcess]: Starting monitored process 61 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:05:52,023 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (61)] Waiting until timeout for monitored process [2025-01-10 07:05:52,113 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 81 statements into 2 equivalence classes. [2025-01-10 07:05:52,154 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 81 of 81 statements. [2025-01-10 07:05:52,154 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:05:52,154 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:05:52,157 INFO L256 TraceCheckSpWp]: Trace formula consists of 482 conjuncts, 111 conjuncts are in the unsatisfiable core [2025-01-10 07:05:52,159 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:05:52,288 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 13 treesize of output 9 [2025-01-10 07:05:52,725 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 99 proven. 510 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:05:52,725 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:05:53,553 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2025-01-10 07:05:53,553 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 145 treesize of output 125 [2025-01-10 07:05:54,387 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 23 proven. 588 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2025-01-10 07:05:54,387 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [836354006] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:05:54,387 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:05:54,387 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [27, 26, 28] total 63 [2025-01-10 07:05:54,387 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1934419255] [2025-01-10 07:05:54,387 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:05:55,389 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:05:55,390 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 63 interpolants. [2025-01-10 07:05:55,390 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=194, Invalid=3712, Unknown=0, NotChecked=0, Total=3906 [2025-01-10 07:05:55,390 INFO L87 Difference]: Start difference. First operand 302 states and 373 transitions. cyclomatic complexity: 83 Second operand has 63 states, 63 states have (on average 2.9682539682539684) internal successors, (187), 63 states have internal predecessors, (187), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:06:00,978 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:06:00,978 INFO L93 Difference]: Finished difference Result 1000 states and 1222 transitions. [2025-01-10 07:06:00,978 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1000 states and 1222 transitions. [2025-01-10 07:06:00,981 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 760 [2025-01-10 07:06:00,984 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1000 states to 1000 states and 1222 transitions. [2025-01-10 07:06:00,984 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 808 [2025-01-10 07:06:00,984 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 808 [2025-01-10 07:06:00,984 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1000 states and 1222 transitions. [2025-01-10 07:06:00,985 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:06:00,985 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1000 states and 1222 transitions. [2025-01-10 07:06:00,985 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1000 states and 1222 transitions. [2025-01-10 07:06:00,993 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1000 to 814. [2025-01-10 07:06:00,994 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 814 states, 814 states have (on average 1.2395577395577395) internal successors, (1009), 813 states have internal predecessors, (1009), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:06:00,996 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 814 states to 814 states and 1009 transitions. [2025-01-10 07:06:00,996 INFO L240 hiAutomatonCegarLoop]: Abstraction has 814 states and 1009 transitions. [2025-01-10 07:06:00,996 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 73 states. [2025-01-10 07:06:00,997 INFO L432 stractBuchiCegarLoop]: Abstraction has 814 states and 1009 transitions. [2025-01-10 07:06:00,997 INFO L338 stractBuchiCegarLoop]: ======== Iteration 23 ============ [2025-01-10 07:06:00,998 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 814 states and 1009 transitions. [2025-01-10 07:06:00,999 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 632 [2025-01-10 07:06:00,999 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:06:00,999 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:06:01,000 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 8, 6, 3, 1, 1, 1, 1, 1] [2025-01-10 07:06:01,000 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 9, 8, 2, 1, 1, 1, 1, 1, 1] [2025-01-10 07:06:01,000 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:06:01,000 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:06:01,000 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:01,001 INFO L85 PathProgramCache]: Analyzing trace with hash -1906426601, now seen corresponding path program 16 times [2025-01-10 07:06:01,001 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:01,001 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [261608327] [2025-01-10 07:06:01,001 INFO L95 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2025-01-10 07:06:01,001 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:01,006 INFO L108 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST partitioned 40 statements into 2 equivalence classes. [2025-01-10 07:06:01,010 INFO L111 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) and asserted 40 of 40 statements. [2025-01-10 07:06:01,010 INFO L114 AnnotateAndAsserter]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 2 check-sat command(s) [2025-01-10 07:06:01,010 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:01,010 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:06:01,012 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 40 statements into 1 equivalence classes. [2025-01-10 07:06:01,015 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 40 of 40 statements. [2025-01-10 07:06:01,015 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:06:01,015 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:01,018 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:06:01,018 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:01,019 INFO L85 PathProgramCache]: Analyzing trace with hash -1380719632, now seen corresponding path program 17 times [2025-01-10 07:06:01,019 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:01,019 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [323613769] [2025-01-10 07:06:01,019 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:06:01,019 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:01,023 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 45 statements into 10 equivalence classes. [2025-01-10 07:06:01,027 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:06:01,027 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2025-01-10 07:06:01,028 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:01,028 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:06:01,029 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 45 statements into 1 equivalence classes. [2025-01-10 07:06:01,032 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:06:01,032 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:06:01,032 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:01,034 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:06:01,035 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:01,035 INFO L85 PathProgramCache]: Analyzing trace with hash 1293611674, now seen corresponding path program 17 times [2025-01-10 07:06:01,035 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:01,035 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [906116817] [2025-01-10 07:06:01,035 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:06:01,035 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:01,042 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 85 statements into 10 equivalence classes. [2025-01-10 07:06:01,051 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) and asserted 85 of 85 statements. [2025-01-10 07:06:01,051 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2025-01-10 07:06:01,051 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:06:01,824 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 544 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:06:01,824 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:06:01,824 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [906116817] [2025-01-10 07:06:01,824 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [906116817] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:06:01,824 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [798556752] [2025-01-10 07:06:01,824 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:06:01,824 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:06:01,824 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:06:01,827 INFO L229 MonitoredProcess]: Starting monitored process 62 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:06:01,828 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (62)] Waiting until timeout for monitored process [2025-01-10 07:06:01,907 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 85 statements into 10 equivalence classes. [2025-01-10 07:06:01,951 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) and asserted 85 of 85 statements. [2025-01-10 07:06:01,951 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2025-01-10 07:06:01,951 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:06:01,953 INFO L256 TraceCheckSpWp]: Trace formula consists of 500 conjuncts, 103 conjuncts are in the unsatisfiable core [2025-01-10 07:06:01,955 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:06:02,118 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:06:02,333 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 542 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:06:02,333 INFO L312 TraceCheckSpWp]: Computing backward predicates... [2025-01-10 07:06:02,433 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 25 [2025-01-10 07:06:02,844 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 542 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2025-01-10 07:06:02,844 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [798556752] provided 0 perfect and 2 imperfect interpolant sequences [2025-01-10 07:06:02,844 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2025-01-10 07:06:02,844 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [25, 24, 23] total 45 [2025-01-10 07:06:02,844 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [782616942] [2025-01-10 07:06:02,844 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2025-01-10 07:06:04,011 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2025-01-10 07:06:04,012 INFO L144 InterpolantAutomaton]: Constructing interpolant automaton starting with 45 interpolants. [2025-01-10 07:06:04,012 INFO L146 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=1858, Unknown=0, NotChecked=0, Total=1980 [2025-01-10 07:06:04,013 INFO L87 Difference]: Start difference. First operand 814 states and 1009 transitions. cyclomatic complexity: 215 Second operand has 45 states, 45 states have (on average 3.533333333333333) internal successors, (159), 45 states have internal predecessors, (159), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:06:05,289 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2025-01-10 07:06:05,290 INFO L93 Difference]: Finished difference Result 558 states and 673 transitions. [2025-01-10 07:06:05,290 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 558 states and 673 transitions. [2025-01-10 07:06:05,291 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 212 [2025-01-10 07:06:05,292 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 558 states to 398 states and 485 transitions. [2025-01-10 07:06:05,292 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 232 [2025-01-10 07:06:05,292 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 232 [2025-01-10 07:06:05,292 INFO L73 IsDeterministic]: Start isDeterministic. Operand 398 states and 485 transitions. [2025-01-10 07:06:05,293 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2025-01-10 07:06:05,293 INFO L218 hiAutomatonCegarLoop]: Abstraction has 398 states and 485 transitions. [2025-01-10 07:06:05,293 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 398 states and 485 transitions. [2025-01-10 07:06:05,295 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 398 to 334. [2025-01-10 07:06:05,300 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 334 states, 334 states have (on average 1.2365269461077844) internal successors, (413), 333 states have internal predecessors, (413), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2025-01-10 07:06:05,300 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 413 transitions. [2025-01-10 07:06:05,300 INFO L240 hiAutomatonCegarLoop]: Abstraction has 334 states and 413 transitions. [2025-01-10 07:06:05,301 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2025-01-10 07:06:05,301 INFO L432 stractBuchiCegarLoop]: Abstraction has 334 states and 413 transitions. [2025-01-10 07:06:05,301 INFO L338 stractBuchiCegarLoop]: ======== Iteration 24 ============ [2025-01-10 07:06:05,301 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 334 states and 413 transitions. [2025-01-10 07:06:05,301 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 180 [2025-01-10 07:06:05,301 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2025-01-10 07:06:05,301 INFO L119 BuchiIsEmpty]: Starting construction of run [2025-01-10 07:06:05,302 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 9, 7, 3, 1, 1, 1, 1, 1] [2025-01-10 07:06:05,302 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 9, 9, 1, 1, 1, 1, 1, 1, 1] [2025-01-10 07:06:05,302 INFO L752 eck$LassoCheckResult]: Stem: "assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;" "assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet7#1, main_#t~malloc8#1.base, main_#t~malloc8#1.offset, main_#t~ret9#1.base, main_#t~ret9#1.offset, main_~in_len~0#1, main_~in~0#1.base, main_~in~0#1.offset;havoc main_#t~nondet7#1;main_~in_len~0#1 := main_#t~nondet7#1;havoc main_#t~nondet7#1;" "assume !(main_~in_len~0#1 < 1);call main_#t~malloc8#1.base, main_#t~malloc8#1.offset := #Ultimate.allocOnStack(main_~in_len~0#1 % 18446744073709551616);main_~in~0#1.base, main_~in~0#1.offset := main_#t~malloc8#1.base, main_#t~malloc8#1.offset;call write~int#0(0, main_~in~0#1.base, main_~in~0#1.offset + (main_~in_len~0#1 - 1), 1);assume { :begin_inline_basename } true;basename_#in~path#1.base, basename_#in~path#1.offset := main_~in~0#1.base, main_~in~0#1.offset;havoc basename_#res#1.base, basename_#res#1.offset;havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset, basename_#t~mem6#1, basename_~path#1.base, basename_~path#1.offset, basename_~c~0#1.base, basename_~c~0#1.offset;basename_~path#1.base, basename_~path#1.offset := basename_#in~path#1.base, basename_#in~path#1.offset;havoc basename_~c~0#1.base, basename_~c~0#1.offset;" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:06:05,302 INFO L754 eck$LassoCheckResult]: Loop: "basename_#t~ret5#1.base, basename_#t~ret5#1.offset := strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;havoc strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1;assume { :end_inline_strrchr } true;basename_~c~0#1.base, basename_~c~0#1.offset := basename_#t~ret5#1.base, basename_#t~ret5#1.offset;" "assume !(basename_~c~0#1.base == 0 && basename_~c~0#1.offset == 0);havoc basename_#t~ret5#1.base, basename_#t~ret5#1.offset;call basename_#t~mem6#1 := read~int#0(basename_~c~0#1.base, 1 + basename_~c~0#1.offset, 1);" "assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1;" "assume !(basename_~c~0#1.base == basename_~path#1.base && basename_~c~0#1.offset == basename_~path#1.offset);call write~int#0(0, basename_~c~0#1.base, basename_~c~0#1.offset, 1);" "assume { :begin_inline_strrchr } true;strrchr_#in~t#1.base, strrchr_#in~t#1.offset, strrchr_#in~c#1 := basename_~path#1.base, basename_~path#1.offset, 47;havoc strrchr_#res#1.base, strrchr_#res#1.offset;havoc strrchr_#t~mem2#1, strrchr_#t~mem3#1, strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset, strrchr_~t#1.base, strrchr_~t#1.offset, strrchr_~c#1, strrchr_~ch~0#1, strrchr_~l~0#1.base, strrchr_~l~0#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_#in~t#1.base, strrchr_#in~t#1.offset;strrchr_~c#1 := strrchr_#in~c#1;havoc strrchr_~ch~0#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := 0, 0;strrchr_~ch~0#1 := (if strrchr_~c#1 % 256 <= 127 then strrchr_~c#1 % 256 else strrchr_~c#1 % 256 - 256);" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume strrchr_#t~mem2#1 == strrchr_~ch~0#1;havoc strrchr_#t~mem2#1;strrchr_~l~0#1.base, strrchr_~l~0#1.offset := strrchr_~t#1.base, strrchr_~t#1.offset;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(0 == strrchr_#t~mem3#1);havoc strrchr_#t~mem3#1;strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;strrchr_~t#1.base, strrchr_~t#1.offset := strrchr_~t#1.base, 1 + strrchr_~t#1.offset;havoc strrchr_#t~pre4#1.base, strrchr_#t~pre4#1.offset;" "call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1;" "call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1);" "assume 0 == strrchr_#t~mem3#1;havoc strrchr_#t~mem3#1;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset;" [2025-01-10 07:06:05,306 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:05,306 INFO L85 PathProgramCache]: Analyzing trace with hash 1281042049, now seen corresponding path program 17 times [2025-01-10 07:06:05,306 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:05,306 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1237964136] [2025-01-10 07:06:05,306 INFO L95 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2025-01-10 07:06:05,307 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:05,312 INFO L108 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 partitioned 44 statements into 10 equivalence classes. [2025-01-10 07:06:05,318 INFO L111 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) and asserted 44 of 44 statements. [2025-01-10 07:06:05,318 INFO L114 AnnotateAndAsserter]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2025-01-10 07:06:05,318 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:05,318 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:06:05,319 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 44 statements into 1 equivalence classes. [2025-01-10 07:06:05,322 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 44 of 44 statements. [2025-01-10 07:06:05,323 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:06:05,323 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:05,327 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:06:05,328 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:05,328 INFO L85 PathProgramCache]: Analyzing trace with hash -2081784210, now seen corresponding path program 18 times [2025-01-10 07:06:05,328 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:05,328 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1343139756] [2025-01-10 07:06:05,328 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:06:05,328 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:05,335 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 45 statements into 10 equivalence classes. [2025-01-10 07:06:05,341 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 10 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:06:05,341 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 10 check-sat command(s) [2025-01-10 07:06:05,342 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:05,342 INFO L348 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2025-01-10 07:06:05,343 INFO L108 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY partitioned 45 statements into 1 equivalence classes. [2025-01-10 07:06:05,346 INFO L111 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) and asserted 45 of 45 statements. [2025-01-10 07:06:05,346 INFO L114 AnnotateAndAsserter]: Assert order NOT_INCREMENTALLY issued 1 check-sat command(s) [2025-01-10 07:06:05,346 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is sat [2025-01-10 07:06:05,349 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2025-01-10 07:06:05,349 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2025-01-10 07:06:05,350 INFO L85 PathProgramCache]: Analyzing trace with hash -1975785490, now seen corresponding path program 18 times [2025-01-10 07:06:05,350 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2025-01-10 07:06:05,350 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1459953547] [2025-01-10 07:06:05,350 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:06:05,350 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2025-01-10 07:06:05,358 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 89 statements into 11 equivalence classes. [2025-01-10 07:06:05,373 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) and asserted 89 of 89 statements. [2025-01-10 07:06:05,374 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2025-01-10 07:06:05,374 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:06:06,400 INFO L134 CoverageAnalysis]: Checked inductivity of 761 backedges. 1 proven. 760 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2025-01-10 07:06:06,400 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2025-01-10 07:06:06,400 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1459953547] [2025-01-10 07:06:06,400 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1459953547] provided 0 perfect and 1 imperfect interpolant sequences [2025-01-10 07:06:06,400 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1919460885] [2025-01-10 07:06:06,400 INFO L95 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2025-01-10 07:06:06,400 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2025-01-10 07:06:06,400 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 [2025-01-10 07:06:06,402 INFO L229 MonitoredProcess]: Starting monitored process 63 with /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2025-01-10 07:06:06,403 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-jdk21/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (63)] Waiting until timeout for monitored process [2025-01-10 07:06:06,487 INFO L108 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE partitioned 89 statements into 11 equivalence classes. [2025-01-10 07:06:06,554 INFO L111 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) and asserted 89 of 89 statements. [2025-01-10 07:06:06,554 INFO L114 AnnotateAndAsserter]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2025-01-10 07:06:06,554 INFO L115 AnnotateAndAsserter]: Conjunction of SSA is unsat [2025-01-10 07:06:06,558 INFO L256 TraceCheckSpWp]: Trace formula consists of 523 conjuncts, 133 conjuncts are in the unsatisfiable core [2025-01-10 07:06:06,560 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2025-01-10 07:06:06,810 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2025-01-10 07:06:07,374 INFO L134 CoverageAnalysis]: Checked inductivity of 761 backedges. 111 proven. 646 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2025-01-10 07:06:07,374 INFO L312 TraceCheckSpWp]: Computing backward predicates...