./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 c7c6ca5d Calling Ultimate with: /root/.sdkman/candidates/java/11.0.12-open/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i ../sv-benchmarks/c/termination-dietlibc/basename-3.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(F end) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 64bit --witnessprinter.graph.data.programhash 2e90cfbacdda20e6be76d151b413bd2dd94f7cfd4eb0e599012526f6643aab85 --- Real Ultimate output --- This is Ultimate 0.2.5-?-c7c6ca5-m [2024-11-09 15:23:09,263 INFO L188 SettingsManager]: Resetting all preferences to default values... [2024-11-09 15:23:09,300 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf [2024-11-09 15:23:09,303 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2024-11-09 15:23:09,303 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2024-11-09 15:23:09,317 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2024-11-09 15:23:09,318 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2024-11-09 15:23:09,318 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2024-11-09 15:23:09,318 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2024-11-09 15:23:09,319 INFO L153 SettingsManager]: * Use memory slicer=true [2024-11-09 15:23:09,319 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2024-11-09 15:23:09,319 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2024-11-09 15:23:09,320 INFO L153 SettingsManager]: * Use SBE=true [2024-11-09 15:23:09,320 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2024-11-09 15:23:09,320 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2024-11-09 15:23:09,321 INFO L153 SettingsManager]: * Use old map elimination=false [2024-11-09 15:23:09,321 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2024-11-09 15:23:09,321 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2024-11-09 15:23:09,321 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2024-11-09 15:23:09,322 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2024-11-09 15:23:09,322 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2024-11-09 15:23:09,323 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2024-11-09 15:23:09,323 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2024-11-09 15:23:09,323 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2024-11-09 15:23:09,323 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2024-11-09 15:23:09,324 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2024-11-09 15:23:09,324 INFO L153 SettingsManager]: * Allow undefined functions=false [2024-11-09 15:23:09,324 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2024-11-09 15:23:09,324 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2024-11-09 15:23:09,325 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2024-11-09 15:23:09,325 INFO L153 SettingsManager]: * Use constant arrays=true [2024-11-09 15:23:09,325 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2024-11-09 15:23:09,325 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2024-11-09 15:23:09,326 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2024-11-09 15:23:09,326 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2024-11-09 15:23:09,326 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2024-11-09 15:23:09,326 INFO L153 SettingsManager]: * TransformationType=MODULO_NEIGHBOR WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(F end) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 64bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 2e90cfbacdda20e6be76d151b413bd2dd94f7cfd4eb0e599012526f6643aab85 [2024-11-09 15:23:09,539 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2024-11-09 15:23:09,558 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2024-11-09 15:23:09,560 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2024-11-09 15:23:09,561 INFO L270 PluginConnector]: Initializing CDTParser... [2024-11-09 15:23:09,561 INFO L274 PluginConnector]: CDTParser initialized [2024-11-09 15:23:09,562 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/termination-dietlibc/basename-3.i [2024-11-09 15:23:10,870 INFO L533 CDTParser]: Created temporary CDT project at NULL [2024-11-09 15:23:11,013 INFO L384 CDTParser]: Found 1 translation units. [2024-11-09 15:23:11,014 INFO L180 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/termination-dietlibc/basename-3.i [2024-11-09 15:23:11,026 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/e3baf0012/ebe9ed716aca4e02b45f0f6b561a59c2/FLAG4c81211a0 [2024-11-09 15:23:11,036 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/e3baf0012/ebe9ed716aca4e02b45f0f6b561a59c2 [2024-11-09 15:23:11,038 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2024-11-09 15:23:11,039 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2024-11-09 15:23:11,040 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2024-11-09 15:23:11,040 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2024-11-09 15:23:11,044 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2024-11-09 15:23:11,044 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,046 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@7ba68612 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11, skipping insertion in model container [2024-11-09 15:23:11,046 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,080 INFO L175 MainTranslator]: Built tables and reachable declarations [2024-11-09 15:23:11,307 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-11-09 15:23:11,316 INFO L200 MainTranslator]: Completed pre-run [2024-11-09 15:23:11,371 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-11-09 15:23:11,393 INFO L204 MainTranslator]: Completed translation [2024-11-09 15:23:11,394 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11 WrapperNode [2024-11-09 15:23:11,394 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2024-11-09 15:23:11,395 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2024-11-09 15:23:11,395 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2024-11-09 15:23:11,395 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2024-11-09 15:23:11,400 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,425 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,442 INFO L138 Inliner]: procedures = 114, calls = 12, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 66 [2024-11-09 15:23:11,442 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2024-11-09 15:23:11,443 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2024-11-09 15:23:11,443 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2024-11-09 15:23:11,443 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2024-11-09 15:23:11,452 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,452 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,454 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,475 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]. [2024-11-09 15:23:11,475 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,475 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,483 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,486 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,487 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,487 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,489 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2024-11-09 15:23:11,493 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2024-11-09 15:23:11,493 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2024-11-09 15:23:11,493 INFO L274 PluginConnector]: RCFGBuilder initialized [2024-11-09 15:23:11,494 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (1/1) ... [2024-11-09 15:23:11,500 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:11,508 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:11,523 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:11,529 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2024-11-09 15:23:11,566 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2024-11-09 15:23:11,566 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2024-11-09 15:23:11,566 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2024-11-09 15:23:11,566 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2024-11-09 15:23:11,566 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2024-11-09 15:23:11,567 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2024-11-09 15:23:11,640 INFO L238 CfgBuilder]: Building ICFG [2024-11-09 15:23:11,641 INFO L264 CfgBuilder]: Building CFG for each procedure with an implementation [2024-11-09 15:23:11,764 INFO L? ?]: Removed 33 outVars from TransFormulas that were not future-live. [2024-11-09 15:23:11,765 INFO L287 CfgBuilder]: Performing block encoding [2024-11-09 15:23:11,776 INFO L311 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2024-11-09 15:23:11,776 INFO L316 CfgBuilder]: Removed 1 assume(true) statements. [2024-11-09 15:23:11,776 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 09.11 03:23:11 BoogieIcfgContainer [2024-11-09 15:23:11,776 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2024-11-09 15:23:11,777 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2024-11-09 15:23:11,777 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2024-11-09 15:23:11,780 INFO L274 PluginConnector]: BuchiAutomizer initialized [2024-11-09 15:23:11,781 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-09 15:23:11,781 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 09.11 03:23:11" (1/3) ... [2024-11-09 15:23:11,782 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@d3fe5d9 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 09.11 03:23:11, skipping insertion in model container [2024-11-09 15:23:11,782 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-09 15:23:11,782 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 09.11 03:23:11" (2/3) ... [2024-11-09 15:23:11,782 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@d3fe5d9 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 09.11 03:23:11, skipping insertion in model container [2024-11-09 15:23:11,782 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-11-09 15:23:11,783 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 09.11 03:23:11" (3/3) ... [2024-11-09 15:23:11,785 INFO L332 chiAutomizerObserver]: Analyzing ICFG basename-3.i [2024-11-09 15:23:11,830 INFO L300 stractBuchiCegarLoop]: Interprodecural is true [2024-11-09 15:23:11,831 INFO L301 stractBuchiCegarLoop]: Hoare is None [2024-11-09 15:23:11,831 INFO L302 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2024-11-09 15:23:11,831 INFO L303 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2024-11-09 15:23:11,831 INFO L304 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2024-11-09 15:23:11,831 INFO L305 stractBuchiCegarLoop]: Difference is false [2024-11-09 15:23:11,831 INFO L306 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2024-11-09 15:23:11,831 INFO L310 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2024-11-09 15:23:11,834 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) [2024-11-09 15:23:11,847 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2024-11-09 15:23:11,847 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:11,847 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:11,850 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:11,851 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1] [2024-11-09 15:23:11,851 INFO L332 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2024-11-09 15:23:11,851 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) [2024-11-09 15:23:11,852 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2024-11-09 15:23:11,852 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:11,852 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:11,852 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:11,852 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1] [2024-11-09 15:23:11,857 INFO L745 eck$LassoCheckResult]: Stem: 13#$Ultimate##0true assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 5#L-1true 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; 6#L531true 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; 14#L517true [2024-11-09 15:23:11,858 INFO L747 eck$LassoCheckResult]: Loop: 14#L517true 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); 12#L510-1true assume !true;strrchr_#res#1.base, strrchr_#res#1.offset := strrchr_~l~0#1.base, strrchr_~l~0#1.offset; 16#strrchr_returnLabel#1true 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; 7#L518true 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); 17#L519true assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 8#L520true 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); 14#L517true [2024-11-09 15:23:11,861 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:11,862 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 1 times [2024-11-09 15:23:11,868 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:11,868 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [782559669] [2024-11-09 15:23:11,868 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:11,868 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:11,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:11,965 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:11,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,000 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:12,004 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,004 INFO L85 PathProgramCache]: Analyzing trace with hash 1171953214, now seen corresponding path program 1 times [2024-11-09 15:23:12,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,004 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [585231136] [2024-11-09 15:23:12,004 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,005 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,017 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:12,044 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:12,045 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:12,045 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [585231136] [2024-11-09 15:23:12,045 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [585231136] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-09 15:23:12,045 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-11-09 15:23:12,045 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2024-11-09 15:23:12,046 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1617417201] [2024-11-09 15:23:12,046 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-09 15:23:12,049 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-09 15:23:12,050 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:12,069 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2024-11-09 15:23:12,069 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2024-11-09 15:23:12,071 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) [2024-11-09 15:23:12,075 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:12,075 INFO L93 Difference]: Finished difference Result 16 states and 21 transitions. [2024-11-09 15:23:12,076 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 16 states and 21 transitions. [2024-11-09 15:23:12,078 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2024-11-09 15:23:12,081 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 16 states to 12 states and 14 transitions. [2024-11-09 15:23:12,082 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 12 [2024-11-09 15:23:12,082 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 12 [2024-11-09 15:23:12,082 INFO L73 IsDeterministic]: Start isDeterministic. Operand 12 states and 14 transitions. [2024-11-09 15:23:12,082 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-09 15:23:12,082 INFO L218 hiAutomatonCegarLoop]: Abstraction has 12 states and 14 transitions. [2024-11-09 15:23:12,093 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 12 states and 14 transitions. [2024-11-09 15:23:12,097 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 12 to 12. [2024-11-09 15:23:12,098 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) [2024-11-09 15:23:12,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 14 transitions. [2024-11-09 15:23:12,099 INFO L240 hiAutomatonCegarLoop]: Abstraction has 12 states and 14 transitions. [2024-11-09 15:23:12,099 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2024-11-09 15:23:12,102 INFO L425 stractBuchiCegarLoop]: Abstraction has 12 states and 14 transitions. [2024-11-09 15:23:12,102 INFO L332 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2024-11-09 15:23:12,102 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 12 states and 14 transitions. [2024-11-09 15:23:12,102 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 9 [2024-11-09 15:23:12,103 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:12,103 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:12,103 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:12,103 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:12,103 INFO L745 eck$LassoCheckResult]: Stem: 44#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 45#L-1 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; 46#L531 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; 47#L517 [2024-11-09 15:23:12,103 INFO L747 eck$LassoCheckResult]: Loop: 47#L517 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); 43#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 40#L511 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; 41#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 42#L511-3 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; 51#strrchr_returnLabel#1 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; 48#L518 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); 49#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 50#L520 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); 47#L517 [2024-11-09 15:23:12,104 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,104 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 2 times [2024-11-09 15:23:12,104 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,104 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1334708172] [2024-11-09 15:23:12,104 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,104 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,115 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:12,121 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,123 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:12,123 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,124 INFO L85 PathProgramCache]: Analyzing trace with hash -487094312, now seen corresponding path program 1 times [2024-11-09 15:23:12,124 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,124 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [478971258] [2024-11-09 15:23:12,124 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,124 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,138 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:12,296 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:12,296 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:12,296 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [478971258] [2024-11-09 15:23:12,297 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [478971258] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-09 15:23:12,297 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-11-09 15:23:12,297 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-11-09 15:23:12,297 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1535856911] [2024-11-09 15:23:12,297 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-09 15:23:12,298 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-09 15:23:12,298 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:12,298 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2024-11-09 15:23:12,298 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2024-11-09 15:23:12,299 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) [2024-11-09 15:23:12,387 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:12,387 INFO L93 Difference]: Finished difference Result 28 states and 34 transitions. [2024-11-09 15:23:12,387 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 28 states and 34 transitions. [2024-11-09 15:23:12,388 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 20 [2024-11-09 15:23:12,393 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 28 states to 23 states and 28 transitions. [2024-11-09 15:23:12,393 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 23 [2024-11-09 15:23:12,394 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 23 [2024-11-09 15:23:12,394 INFO L73 IsDeterministic]: Start isDeterministic. Operand 23 states and 28 transitions. [2024-11-09 15:23:12,394 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-09 15:23:12,394 INFO L218 hiAutomatonCegarLoop]: Abstraction has 23 states and 28 transitions. [2024-11-09 15:23:12,394 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 23 states and 28 transitions. [2024-11-09 15:23:12,395 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 23 to 18. [2024-11-09 15:23:12,395 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) [2024-11-09 15:23:12,396 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 22 transitions. [2024-11-09 15:23:12,396 INFO L240 hiAutomatonCegarLoop]: Abstraction has 18 states and 22 transitions. [2024-11-09 15:23:12,397 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2024-11-09 15:23:12,398 INFO L425 stractBuchiCegarLoop]: Abstraction has 18 states and 22 transitions. [2024-11-09 15:23:12,398 INFO L332 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2024-11-09 15:23:12,398 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 18 states and 22 transitions. [2024-11-09 15:23:12,399 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 15 [2024-11-09 15:23:12,399 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:12,399 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:12,400 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:12,400 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:12,400 INFO L745 eck$LassoCheckResult]: Stem: 99#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 100#L-1 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; 101#L531 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; 102#L517 [2024-11-09 15:23:12,400 INFO L747 eck$LassoCheckResult]: Loop: 102#L517 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); 106#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 93#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 95#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 108#L511-3 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; 107#strrchr_returnLabel#1 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; 103#L518 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); 104#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 105#L520 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); 102#L517 [2024-11-09 15:23:12,401 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,401 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 3 times [2024-11-09 15:23:12,401 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,405 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2051656193] [2024-11-09 15:23:12,405 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,406 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,416 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:12,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,422 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:12,423 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,423 INFO L85 PathProgramCache]: Analyzing trace with hash 1287913050, now seen corresponding path program 1 times [2024-11-09 15:23:12,423 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,423 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1002098335] [2024-11-09 15:23:12,424 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,424 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:12,629 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:12,630 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:12,630 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1002098335] [2024-11-09 15:23:12,631 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1002098335] provided 1 perfect and 0 imperfect interpolant sequences [2024-11-09 15:23:12,631 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-11-09 15:23:12,631 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-11-09 15:23:12,631 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1156485620] [2024-11-09 15:23:12,631 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-11-09 15:23:12,632 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-09 15:23:12,632 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:12,632 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2024-11-09 15:23:12,633 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2024-11-09 15:23:12,633 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) [2024-11-09 15:23:12,667 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:12,667 INFO L93 Difference]: Finished difference Result 26 states and 31 transitions. [2024-11-09 15:23:12,667 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 26 states and 31 transitions. [2024-11-09 15:23:12,668 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 19 [2024-11-09 15:23:12,669 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 26 states to 22 states and 27 transitions. [2024-11-09 15:23:12,670 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 22 [2024-11-09 15:23:12,670 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 22 [2024-11-09 15:23:12,670 INFO L73 IsDeterministic]: Start isDeterministic. Operand 22 states and 27 transitions. [2024-11-09 15:23:12,670 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-09 15:23:12,670 INFO L218 hiAutomatonCegarLoop]: Abstraction has 22 states and 27 transitions. [2024-11-09 15:23:12,670 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 22 states and 27 transitions. [2024-11-09 15:23:12,672 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 22 to 18. [2024-11-09 15:23:12,673 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) [2024-11-09 15:23:12,673 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 22 transitions. [2024-11-09 15:23:12,673 INFO L240 hiAutomatonCegarLoop]: Abstraction has 18 states and 22 transitions. [2024-11-09 15:23:12,674 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2024-11-09 15:23:12,674 INFO L425 stractBuchiCegarLoop]: Abstraction has 18 states and 22 transitions. [2024-11-09 15:23:12,675 INFO L332 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2024-11-09 15:23:12,675 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 18 states and 22 transitions. [2024-11-09 15:23:12,675 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 15 [2024-11-09 15:23:12,676 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:12,676 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:12,676 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:12,677 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:12,677 INFO L745 eck$LassoCheckResult]: Stem: 153#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 154#L-1 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; 155#L531 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; 156#L517 [2024-11-09 15:23:12,677 INFO L747 eck$LassoCheckResult]: Loop: 156#L517 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); 160#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 148#L511 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; 149#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 150#L511-3 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; 151#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 152#L511 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; 164#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 162#L511-3 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; 161#strrchr_returnLabel#1 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; 157#L518 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); 158#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 159#L520 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); 156#L517 [2024-11-09 15:23:12,678 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,713 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 4 times [2024-11-09 15:23:12,713 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,713 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [240988800] [2024-11-09 15:23:12,713 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,713 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,732 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:12,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:12,742 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:12,743 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:12,743 INFO L85 PathProgramCache]: Analyzing trace with hash 1065055040, now seen corresponding path program 1 times [2024-11-09 15:23:12,743 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:12,743 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [112682831] [2024-11-09 15:23:12,743 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,743 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:12,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:12,840 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:12,841 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:12,841 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [112682831] [2024-11-09 15:23:12,841 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [112682831] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:12,841 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [869609176] [2024-11-09 15:23:12,841 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:12,841 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:12,841 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:12,843 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:12,844 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2024-11-09 15:23:12,909 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:12,911 INFO L255 TraceCheckSpWp]: Trace formula consists of 93 conjuncts, 15 conjuncts are in the unsatisfiable core [2024-11-09 15:23:12,913 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:13,070 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 [2024-11-09 15:23:13,074 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:13,075 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:13,215 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 1 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:13,216 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [869609176] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:13,217 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:13,217 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9, 9] total 17 [2024-11-09 15:23:13,217 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2068717469] [2024-11-09 15:23:13,217 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:13,217 INFO L762 eck$LassoCheckResult]: loop already infeasible [2024-11-09 15:23:13,218 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:13,218 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2024-11-09 15:23:13,218 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=210, Unknown=0, NotChecked=0, Total=272 [2024-11-09 15:23:13,219 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) [2024-11-09 15:23:13,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:13,374 INFO L93 Difference]: Finished difference Result 26 states and 31 transitions. [2024-11-09 15:23:13,374 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 26 states and 31 transitions. [2024-11-09 15:23:13,374 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 23 [2024-11-09 15:23:13,375 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 26 states to 26 states and 31 transitions. [2024-11-09 15:23:13,375 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 26 [2024-11-09 15:23:13,375 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 26 [2024-11-09 15:23:13,375 INFO L73 IsDeterministic]: Start isDeterministic. Operand 26 states and 31 transitions. [2024-11-09 15:23:13,375 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-11-09 15:23:13,375 INFO L218 hiAutomatonCegarLoop]: Abstraction has 26 states and 31 transitions. [2024-11-09 15:23:13,375 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 26 states and 31 transitions. [2024-11-09 15:23:13,376 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 26 to 20. [2024-11-09 15:23:13,376 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) [2024-11-09 15:23:13,377 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 24 transitions. [2024-11-09 15:23:13,377 INFO L240 hiAutomatonCegarLoop]: Abstraction has 20 states and 24 transitions. [2024-11-09 15:23:13,380 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2024-11-09 15:23:13,381 INFO L425 stractBuchiCegarLoop]: Abstraction has 20 states and 24 transitions. [2024-11-09 15:23:13,381 INFO L332 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2024-11-09 15:23:13,381 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 20 states and 24 transitions. [2024-11-09 15:23:13,381 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2024-11-09 15:23:13,382 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:13,382 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:13,382 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1] [2024-11-09 15:23:13,382 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:13,382 INFO L745 eck$LassoCheckResult]: Stem: 293#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 294#L-1 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; 295#L531 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; 296#L517 [2024-11-09 15:23:13,382 INFO L747 eck$LassoCheckResult]: Loop: 296#L517 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); 300#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 288#L511 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; 289#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 290#L511-3 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; 291#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 292#L511 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; 306#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 307#L511-3 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; 303#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 305#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 304#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 302#L511-3 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; 301#strrchr_returnLabel#1 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; 297#L518 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); 298#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 299#L520 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); 296#L517 [2024-11-09 15:23:13,382 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:13,383 INFO L85 PathProgramCache]: Analyzing trace with hash 29860, now seen corresponding path program 5 times [2024-11-09 15:23:13,383 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:13,383 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2075647233] [2024-11-09 15:23:13,383 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:13,383 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:13,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,397 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:13,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,405 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:13,406 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:13,406 INFO L85 PathProgramCache]: Analyzing trace with hash 26730794, now seen corresponding path program 1 times [2024-11-09 15:23:13,406 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:13,406 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1992247394] [2024-11-09 15:23:13,406 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:13,406 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:13,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,422 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:13,431 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,436 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:13,438 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:13,438 INFO L85 PathProgramCache]: Analyzing trace with hash 1156638439, now seen corresponding path program 1 times [2024-11-09 15:23:13,438 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:13,438 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [109742901] [2024-11-09 15:23:13,438 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:13,439 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:13,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,456 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:13,464 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:13,467 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:14,037 INFO L204 LassoAnalysis]: Preferences: [2024-11-09 15:23:14,037 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2024-11-09 15:23:14,037 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2024-11-09 15:23:14,037 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2024-11-09 15:23:14,038 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2024-11-09 15:23:14,038 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,038 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2024-11-09 15:23:14,038 INFO L131 ssoRankerPreferences]: Path of dumped script: [2024-11-09 15:23:14,038 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration5_Lasso [2024-11-09 15:23:14,038 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2024-11-09 15:23:14,038 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2024-11-09 15:23:14,051 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,056 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,058 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,063 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,065 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,069 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,071 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,072 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,077 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,079 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,080 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,082 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,084 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,085 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,087 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,089 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,090 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,092 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,094 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,186 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,188 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,191 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,192 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,194 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,195 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,197 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,199 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,200 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,202 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,203 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,205 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:14,376 INFO L259 LassoAnalysis]: Preprocessing complete. [2024-11-09 15:23:14,379 INFO L451 LassoAnalysis]: Using template 'affine'. [2024-11-09 15:23:14,380 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,381 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,382 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,383 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Waiting until timeout for monitored process [2024-11-09 15:23:14,384 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 [2024-11-09 15:23:14,395 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,395 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,396 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,396 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,396 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,397 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,397 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,399 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,410 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Ended with exit code 0 [2024-11-09 15:23:14,411 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,411 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,412 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,413 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Waiting until timeout for monitored process [2024-11-09 15:23:14,414 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 [2024-11-09 15:23:14,424 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,424 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,425 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,425 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,425 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,425 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,425 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,427 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,438 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,438 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,438 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,441 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,445 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Waiting until timeout for monitored process [2024-11-09 15:23:14,446 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 [2024-11-09 15:23:14,456 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,456 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,456 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,456 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,456 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,457 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,457 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,458 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,469 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,469 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,470 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,471 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,472 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Waiting until timeout for monitored process [2024-11-09 15:23:14,473 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 [2024-11-09 15:23:14,483 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,483 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,483 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,483 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,483 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,484 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,484 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,485 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,496 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,496 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,496 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,497 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,499 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Waiting until timeout for monitored process [2024-11-09 15:23:14,499 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 [2024-11-09 15:23:14,510 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,510 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,510 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,510 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,510 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,511 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,511 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,512 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,522 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Ended with exit code 0 [2024-11-09 15:23:14,523 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,523 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,524 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,525 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Waiting until timeout for monitored process [2024-11-09 15:23:14,526 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 [2024-11-09 15:23:14,536 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,536 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,536 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,536 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,536 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,537 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,537 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,541 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,552 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,552 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,552 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,553 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,554 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Waiting until timeout for monitored process [2024-11-09 15:23:14,555 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 [2024-11-09 15:23:14,565 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,565 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,565 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,565 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,565 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,566 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,566 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,568 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,578 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,579 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,579 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,580 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,581 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Waiting until timeout for monitored process [2024-11-09 15:23:14,582 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 [2024-11-09 15:23:14,591 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,592 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,592 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,592 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,592 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,592 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,592 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,593 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,607 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Ended with exit code 0 [2024-11-09 15:23:14,607 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,608 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,610 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,611 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Waiting until timeout for monitored process [2024-11-09 15:23:14,612 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 [2024-11-09 15:23:14,622 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,622 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,622 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,622 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,622 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,623 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,623 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,624 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,637 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,637 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,637 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,644 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,647 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Waiting until timeout for monitored process [2024-11-09 15:23:14,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 [2024-11-09 15:23:14,657 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,657 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,657 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,657 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,657 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,659 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,659 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,660 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,670 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Ended with exit code 0 [2024-11-09 15:23:14,671 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,671 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,672 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,674 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Waiting until timeout for monitored process [2024-11-09 15:23:14,674 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 [2024-11-09 15:23:14,684 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,684 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,684 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,684 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,684 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,685 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,685 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,688 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,699 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Ended with exit code 0 [2024-11-09 15:23:14,699 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,699 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,700 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,701 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Waiting until timeout for monitored process [2024-11-09 15:23:14,702 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 [2024-11-09 15:23:14,712 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,712 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,712 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,712 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,712 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,713 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,713 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,714 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,724 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Ended with exit code 0 [2024-11-09 15:23:14,725 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,725 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,728 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,728 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Waiting until timeout for monitored process [2024-11-09 15:23:14,729 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 [2024-11-09 15:23:14,739 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,739 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,739 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,739 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,739 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,740 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,740 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,741 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,751 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Ended with exit code 0 [2024-11-09 15:23:14,752 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,752 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,753 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,754 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Waiting until timeout for monitored process [2024-11-09 15:23:14,755 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 [2024-11-09 15:23:14,765 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,765 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,765 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,765 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,765 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,766 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,766 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,767 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,778 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,778 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,778 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,779 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,780 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Waiting until timeout for monitored process [2024-11-09 15:23:14,782 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 [2024-11-09 15:23:14,791 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,791 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,791 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,791 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,791 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,792 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,792 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,795 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,805 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,806 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,806 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,807 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,808 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Waiting until timeout for monitored process [2024-11-09 15:23:14,809 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 [2024-11-09 15:23:14,819 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,819 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,819 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,819 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,819 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,820 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,820 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,821 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,831 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,832 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,832 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,833 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,834 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Waiting until timeout for monitored process [2024-11-09 15:23:14,835 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 [2024-11-09 15:23:14,844 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,844 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,844 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,844 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,844 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,845 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,845 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,846 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,856 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Ended with exit code 0 [2024-11-09 15:23:14,856 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,857 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,858 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,879 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Waiting until timeout for monitored process [2024-11-09 15:23:14,883 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 [2024-11-09 15:23:14,893 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,893 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,893 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,893 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,893 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,894 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,894 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,895 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:14,904 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,905 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,905 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,906 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,907 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Waiting until timeout for monitored process [2024-11-09 15:23:14,908 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 [2024-11-09 15:23:14,917 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:14,917 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:14,918 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:14,918 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:14,918 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:14,919 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:14,919 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:14,920 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2024-11-09 15:23:14,924 INFO L443 ModelExtractionUtils]: Simplification made 2 calls to the SMT solver. [2024-11-09 15:23:14,924 INFO L444 ModelExtractionUtils]: 1 out of 3 variables were initially zero. Simplification set additionally 0 variables to zero. [2024-11-09 15:23:14,925 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:14,925 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:14,926 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:14,927 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (22)] Waiting until timeout for monitored process [2024-11-09 15:23:14,930 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2024-11-09 15:23:14,930 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2024-11-09 15:23:14,930 INFO L474 LassoAnalysis]: Proved termination. [2024-11-09 15:23:14,930 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 [] [2024-11-09 15:23:14,940 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:14,952 INFO L156 tatePredicateManager]: 4 out of 4 supporting invariants were superfluous and have been removed [2024-11-09 15:23:14,956 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: #memory_int#0 [2024-11-09 15:23:14,957 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array IdentifierExpression[#memory_int#0,GLOBAL] [2024-11-09 15:23:14,957 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array ArrayAccessExpression[IdentifierExpression[#memory_int#0,GLOBAL],[IdentifierExpression[~path!base,]]] [2024-11-09 15:23:14,967 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:14,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:14,979 INFO L255 TraceCheckSpWp]: Trace formula consists of 39 conjuncts, 2 conjuncts are in the unsatisfiable core [2024-11-09 15:23:14,979 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:15,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:15,001 INFO L255 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 50 conjuncts are in the unsatisfiable core [2024-11-09 15:23:15,002 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:15,288 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:15,290 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 [2024-11-09 15:23:15,291 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) [2024-11-09 15:23:15,557 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. [2024-11-09 15:23:15,558 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 [2024-11-09 15:23:15,558 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) [2024-11-09 15:23:15,559 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 37 transitions. [2024-11-09 15:23:15,560 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 3 letters. Loop has 17 letters. [2024-11-09 15:23:15,560 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:15,560 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 20 letters. Loop has 17 letters. [2024-11-09 15:23:15,561 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:15,561 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 37 transitions. Stem has 3 letters. Loop has 34 letters. [2024-11-09 15:23:15,561 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:15,561 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 90 states and 108 transitions. [2024-11-09 15:23:15,564 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 31 [2024-11-09 15:23:15,564 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 90 states to 68 states and 81 transitions. [2024-11-09 15:23:15,564 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 50 [2024-11-09 15:23:15,565 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 51 [2024-11-09 15:23:15,565 INFO L73 IsDeterministic]: Start isDeterministic. Operand 68 states and 81 transitions. [2024-11-09 15:23:15,565 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:15,565 INFO L218 hiAutomatonCegarLoop]: Abstraction has 68 states and 81 transitions. [2024-11-09 15:23:15,565 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states and 81 transitions. [2024-11-09 15:23:15,567 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 42. [2024-11-09 15:23:15,567 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) [2024-11-09 15:23:15,567 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 50 transitions. [2024-11-09 15:23:15,567 INFO L240 hiAutomatonCegarLoop]: Abstraction has 42 states and 50 transitions. [2024-11-09 15:23:15,567 INFO L425 stractBuchiCegarLoop]: Abstraction has 42 states and 50 transitions. [2024-11-09 15:23:15,568 INFO L332 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2024-11-09 15:23:15,568 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 42 states and 50 transitions. [2024-11-09 15:23:15,568 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2024-11-09 15:23:15,568 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:15,568 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:15,568 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1, 1] [2024-11-09 15:23:15,568 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1] [2024-11-09 15:23:15,569 INFO L745 eck$LassoCheckResult]: Stem: 541#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 542#L-1 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; 543#L531 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; 544#L517 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); 553#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 574#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 534#L511-2 [2024-11-09 15:23:15,569 INFO L747 eck$LassoCheckResult]: Loop: 534#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 537#L511-3 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; 572#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 571#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 534#L511-2 [2024-11-09 15:23:15,569 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:15,569 INFO L85 PathProgramCache]: Analyzing trace with hash 889568330, now seen corresponding path program 1 times [2024-11-09 15:23:15,569 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:15,569 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [758154700] [2024-11-09 15:23:15,569 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:15,569 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:15,580 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,580 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:15,584 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,585 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:15,586 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:15,586 INFO L85 PathProgramCache]: Analyzing trace with hash 1543787, now seen corresponding path program 1 times [2024-11-09 15:23:15,586 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:15,586 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1148865792] [2024-11-09 15:23:15,586 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:15,586 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:15,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,589 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:15,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,591 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:15,591 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:15,591 INFO L85 PathProgramCache]: Analyzing trace with hash -2015101388, now seen corresponding path program 1 times [2024-11-09 15:23:15,591 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:15,591 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [329470317] [2024-11-09 15:23:15,591 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:15,592 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:15,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,598 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:15,603 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:15,604 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:15,852 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (22)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:15,928 INFO L204 LassoAnalysis]: Preferences: [2024-11-09 15:23:15,929 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2024-11-09 15:23:15,929 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2024-11-09 15:23:15,929 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2024-11-09 15:23:15,929 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2024-11-09 15:23:15,929 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:15,929 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2024-11-09 15:23:15,929 INFO L131 ssoRankerPreferences]: Path of dumped script: [2024-11-09 15:23:15,929 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration6_Lasso [2024-11-09 15:23:15,929 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2024-11-09 15:23:15,929 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2024-11-09 15:23:15,931 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:15,933 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:15,934 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:15,936 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:15,941 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,039 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,040 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,042 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,043 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,045 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,047 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,048 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,050 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,051 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,052 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,054 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,056 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,058 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,060 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,061 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,062 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,064 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,066 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,067 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:16,256 INFO L259 LassoAnalysis]: Preprocessing complete. [2024-11-09 15:23:16,256 INFO L451 LassoAnalysis]: Using template 'affine'. [2024-11-09 15:23:16,256 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,256 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,259 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,260 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (23)] Waiting until timeout for monitored process [2024-11-09 15:23:16,260 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 [2024-11-09 15:23:16,270 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,270 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:16,270 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,270 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,270 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,271 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:16,271 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:16,272 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,282 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (23)] Ended with exit code 0 [2024-11-09 15:23:16,282 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,283 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,284 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,285 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Waiting until timeout for monitored process [2024-11-09 15:23:16,285 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 [2024-11-09 15:23:16,294 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,295 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:16,295 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,295 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,295 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,295 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:16,295 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:16,296 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,306 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Ended with exit code 0 [2024-11-09 15:23:16,307 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,307 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,308 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,309 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Waiting until timeout for monitored process [2024-11-09 15:23:16,309 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 [2024-11-09 15:23:16,319 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,319 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:16,319 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,319 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,319 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,319 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:16,320 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:16,320 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,330 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:16,331 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,331 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,332 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,333 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Waiting until timeout for monitored process [2024-11-09 15:23:16,333 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 [2024-11-09 15:23:16,343 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,343 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,343 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,343 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,344 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:16,344 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:16,349 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,359 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:16,359 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,360 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,361 INFO L229 MonitoredProcess]: Starting monitored process 27 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,361 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Waiting until timeout for monitored process [2024-11-09 15:23:16,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 [2024-11-09 15:23:16,371 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,371 INFO L203 nArgumentSynthesizer]: 2 stem disjuncts [2024-11-09 15:23:16,371 INFO L204 nArgumentSynthesizer]: 4 loop disjuncts [2024-11-09 15:23:16,371 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,384 INFO L401 nArgumentSynthesizer]: We have 56 Motzkin's Theorem applications. [2024-11-09 15:23:16,384 INFO L402 nArgumentSynthesizer]: A total of 8 supporting invariants were added. [2024-11-09 15:23:16,409 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,421 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Ended with exit code 0 [2024-11-09 15:23:16,422 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,422 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,423 INFO L229 MonitoredProcess]: Starting monitored process 28 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,427 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Waiting until timeout for monitored process [2024-11-09 15:23:16,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 [2024-11-09 15:23:16,437 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,438 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,438 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,438 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,440 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:16,440 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:16,446 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:16,458 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Ended with exit code 0 [2024-11-09 15:23:16,459 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,459 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,463 INFO L229 MonitoredProcess]: Starting monitored process 29 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,464 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Waiting until timeout for monitored process [2024-11-09 15:23:16,464 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 [2024-11-09 15:23:16,474 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:16,474 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:16,474 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:16,474 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:16,478 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:16,478 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:16,485 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2024-11-09 15:23:16,513 INFO L443 ModelExtractionUtils]: Simplification made 13 calls to the SMT solver. [2024-11-09 15:23:16,513 INFO L444 ModelExtractionUtils]: 4 out of 16 variables were initially zero. Simplification set additionally 7 variables to zero. [2024-11-09 15:23:16,514 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:16,514 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:16,518 INFO L229 MonitoredProcess]: Starting monitored process 30 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:16,523 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Waiting until timeout for monitored process [2024-11-09 15:23:16,524 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2024-11-09 15:23:16,535 INFO L438 nArgumentSynthesizer]: Removed 1 redundant supporting invariants from a total of 2. [2024-11-09 15:23:16,535 INFO L474 LassoAnalysis]: Proved termination. [2024-11-09 15:23:16,535 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] [2024-11-09 15:23:16,550 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:16,559 INFO L156 tatePredicateManager]: 3 out of 4 supporting invariants were superfluous and have been removed [2024-11-09 15:23:16,563 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: ~t!offset [2024-11-09 15:23:16,579 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:16,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:16,590 INFO L255 TraceCheckSpWp]: Trace formula consists of 64 conjuncts, 14 conjuncts are in the unsatisfiable core [2024-11-09 15:23:16,591 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:16,609 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 [2024-11-09 15:23:16,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:16,645 INFO L255 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjuncts are in the unsatisfiable core [2024-11-09 15:23:16,645 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:16,696 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:16,697 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 [2024-11-09 15:23:16,698 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) [2024-11-09 15:23:16,750 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. [2024-11-09 15:23:16,753 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 [2024-11-09 15:23:16,753 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) [2024-11-09 15:23:16,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 16 transitions. [2024-11-09 15:23:16,753 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 6 letters. Loop has 4 letters. [2024-11-09 15:23:16,754 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:16,754 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 10 letters. Loop has 4 letters. [2024-11-09 15:23:16,754 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:16,754 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 16 transitions. Stem has 6 letters. Loop has 8 letters. [2024-11-09 15:23:16,754 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:16,754 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 100 states and 122 transitions. [2024-11-09 15:23:16,756 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 21 [2024-11-09 15:23:16,759 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 100 states to 90 states and 108 transitions. [2024-11-09 15:23:16,759 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 43 [2024-11-09 15:23:16,759 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 45 [2024-11-09 15:23:16,759 INFO L73 IsDeterministic]: Start isDeterministic. Operand 90 states and 108 transitions. [2024-11-09 15:23:16,759 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:16,759 INFO L218 hiAutomatonCegarLoop]: Abstraction has 90 states and 108 transitions. [2024-11-09 15:23:16,759 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 90 states and 108 transitions. [2024-11-09 15:23:16,762 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 90 to 85. [2024-11-09 15:23:16,764 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) [2024-11-09 15:23:16,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 103 transitions. [2024-11-09 15:23:16,766 INFO L240 hiAutomatonCegarLoop]: Abstraction has 85 states and 103 transitions. [2024-11-09 15:23:16,766 INFO L425 stractBuchiCegarLoop]: Abstraction has 85 states and 103 transitions. [2024-11-09 15:23:16,766 INFO L332 stractBuchiCegarLoop]: ======== Iteration 7 ============ [2024-11-09 15:23:16,766 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 85 states and 103 transitions. [2024-11-09 15:23:16,767 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 21 [2024-11-09 15:23:16,767 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:16,767 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:16,767 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1] [2024-11-09 15:23:16,767 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1, 1] [2024-11-09 15:23:16,768 INFO L745 eck$LassoCheckResult]: Stem: 765#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 766#L-1 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; 767#L531 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; 768#L517 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); 763#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 756#L511 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; 757#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 780#L511-3 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; 781#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 818#L511 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; 814#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 813#L511-3 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; 811#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 809#L511 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; 802#L511-2 [2024-11-09 15:23:16,768 INFO L747 eck$LassoCheckResult]: Loop: 802#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 804#L511-3 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; 799#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 800#L511 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; 802#L511-2 [2024-11-09 15:23:16,768 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:16,768 INFO L85 PathProgramCache]: Analyzing trace with hash -1275711976, now seen corresponding path program 1 times [2024-11-09 15:23:16,768 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:16,768 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [845898378] [2024-11-09 15:23:16,768 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:16,769 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:16,781 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,783 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:16,792 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,795 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:16,796 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:16,796 INFO L85 PathProgramCache]: Analyzing trace with hash 1543785, now seen corresponding path program 1 times [2024-11-09 15:23:16,796 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:16,796 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [663127066] [2024-11-09 15:23:16,796 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:16,797 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:16,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,800 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:16,802 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,803 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:16,806 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:16,806 INFO L85 PathProgramCache]: Analyzing trace with hash 1384831232, now seen corresponding path program 2 times [2024-11-09 15:23:16,806 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:16,806 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [439467318] [2024-11-09 15:23:16,806 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:16,806 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:16,818 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,819 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:16,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:16,833 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:17,125 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:17,362 INFO L204 LassoAnalysis]: Preferences: [2024-11-09 15:23:17,362 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2024-11-09 15:23:17,362 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2024-11-09 15:23:17,362 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2024-11-09 15:23:17,362 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2024-11-09 15:23:17,362 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,363 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2024-11-09 15:23:17,363 INFO L131 ssoRankerPreferences]: Path of dumped script: [2024-11-09 15:23:17,363 INFO L132 ssoRankerPreferences]: Filename of dumped script: basename-3.i_Iteration7_Lasso [2024-11-09 15:23:17,363 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2024-11-09 15:23:17,363 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2024-11-09 15:23:17,364 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,369 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,371 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,372 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,374 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,375 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,376 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,378 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,379 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,544 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,545 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,549 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,551 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,552 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,553 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,554 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,556 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,557 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,559 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,560 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,562 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,563 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,565 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-11-09 15:23:17,808 INFO L259 LassoAnalysis]: Preprocessing complete. [2024-11-09 15:23:17,808 INFO L451 LassoAnalysis]: Using template 'affine'. [2024-11-09 15:23:17,808 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,808 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,812 INFO L229 MonitoredProcess]: Starting monitored process 31 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,813 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Waiting until timeout for monitored process [2024-11-09 15:23:17,814 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 [2024-11-09 15:23:17,823 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,823 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,824 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,824 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,824 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,824 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,824 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,825 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,835 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Ended with exit code 0 [2024-11-09 15:23:17,835 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,835 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,837 INFO L229 MonitoredProcess]: Starting monitored process 32 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,837 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Waiting until timeout for monitored process [2024-11-09 15:23:17,838 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 [2024-11-09 15:23:17,847 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,848 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,848 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,848 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,848 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,848 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,848 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,849 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,859 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Ended with exit code 0 [2024-11-09 15:23:17,860 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,860 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,861 INFO L229 MonitoredProcess]: Starting monitored process 33 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,862 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Waiting until timeout for monitored process [2024-11-09 15:23:17,862 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 [2024-11-09 15:23:17,872 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,872 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,872 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,872 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,872 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,873 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,873 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,874 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,883 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:17,883 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,883 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,885 INFO L229 MonitoredProcess]: Starting monitored process 34 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,885 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Waiting until timeout for monitored process [2024-11-09 15:23:17,887 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 [2024-11-09 15:23:17,896 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,897 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,897 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,897 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,897 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,897 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,897 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,898 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,908 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:17,908 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,909 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,910 INFO L229 MonitoredProcess]: Starting monitored process 35 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,911 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (35)] Waiting until timeout for monitored process [2024-11-09 15:23:17,912 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 [2024-11-09 15:23:17,921 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,921 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,921 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,921 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,921 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,922 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,922 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,923 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,933 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (35)] Ended with exit code 0 [2024-11-09 15:23:17,933 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,934 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,935 INFO L229 MonitoredProcess]: Starting monitored process 36 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,935 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (36)] Waiting until timeout for monitored process [2024-11-09 15:23:17,936 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 [2024-11-09 15:23:17,946 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,946 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,946 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,946 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,946 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,946 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,946 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,948 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,958 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (36)] Ended with exit code 0 [2024-11-09 15:23:17,958 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,958 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,959 INFO L229 MonitoredProcess]: Starting monitored process 37 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,960 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (37)] Waiting until timeout for monitored process [2024-11-09 15:23:17,961 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 [2024-11-09 15:23:17,971 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,971 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,972 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,972 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,972 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,972 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,972 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,973 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:17,983 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (37)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:17,983 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:17,983 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:17,985 INFO L229 MonitoredProcess]: Starting monitored process 38 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:17,985 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (38)] Waiting until timeout for monitored process [2024-11-09 15:23:17,986 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 [2024-11-09 15:23:17,996 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:17,996 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-11-09 15:23:17,996 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:17,996 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:17,996 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:17,997 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-11-09 15:23:17,997 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-11-09 15:23:17,998 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,008 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (38)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:18,008 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,008 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,009 INFO L229 MonitoredProcess]: Starting monitored process 39 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,010 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (39)] Waiting until timeout for monitored process [2024-11-09 15:23:18,011 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 [2024-11-09 15:23:18,021 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,021 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,021 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,021 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,023 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,023 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,025 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,036 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (39)] Ended with exit code 0 [2024-11-09 15:23:18,036 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,036 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,037 INFO L229 MonitoredProcess]: Starting monitored process 40 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,038 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Waiting until timeout for monitored process [2024-11-09 15:23:18,039 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 [2024-11-09 15:23:18,049 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,049 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,049 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,049 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,051 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,051 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,056 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,069 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:18,070 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,070 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,071 INFO L229 MonitoredProcess]: Starting monitored process 41 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,073 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Waiting until timeout for monitored process [2024-11-09 15:23:18,074 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 [2024-11-09 15:23:18,083 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,083 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,083 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,083 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,085 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,085 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,088 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,099 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Ended with exit code 0 [2024-11-09 15:23:18,100 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,100 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,104 INFO L229 MonitoredProcess]: Starting monitored process 42 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,105 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Waiting until timeout for monitored process [2024-11-09 15:23:18,106 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 [2024-11-09 15:23:18,115 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,116 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,116 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,116 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,120 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,120 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,124 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,135 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Ended with exit code 0 [2024-11-09 15:23:18,135 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,136 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,137 INFO L229 MonitoredProcess]: Starting monitored process 43 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,166 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Waiting until timeout for monitored process [2024-11-09 15:23:18,166 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 [2024-11-09 15:23:18,176 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,176 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,176 INFO L204 nArgumentSynthesizer]: 2 loop disjuncts [2024-11-09 15:23:18,176 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,181 INFO L401 nArgumentSynthesizer]: We have 16 Motzkin's Theorem applications. [2024-11-09 15:23:18,181 INFO L402 nArgumentSynthesizer]: A total of 4 supporting invariants were added. [2024-11-09 15:23:18,190 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,200 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:18,200 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,201 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,202 INFO L229 MonitoredProcess]: Starting monitored process 44 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,203 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Waiting until timeout for monitored process [2024-11-09 15:23:18,203 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 [2024-11-09 15:23:18,213 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,213 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,214 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,214 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,215 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,215 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,217 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-11-09 15:23:18,227 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Ended with exit code 0 [2024-11-09 15:23:18,228 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,228 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,229 INFO L229 MonitoredProcess]: Starting monitored process 45 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,230 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Waiting until timeout for monitored process [2024-11-09 15:23:18,231 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 [2024-11-09 15:23:18,240 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-11-09 15:23:18,241 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-11-09 15:23:18,241 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-11-09 15:23:18,241 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-11-09 15:23:18,244 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-11-09 15:23:18,244 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-11-09 15:23:18,252 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2024-11-09 15:23:18,264 INFO L443 ModelExtractionUtils]: Simplification made 6 calls to the SMT solver. [2024-11-09 15:23:18,264 INFO L444 ModelExtractionUtils]: 6 out of 16 variables were initially zero. Simplification set additionally 7 variables to zero. [2024-11-09 15:23:18,264 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-11-09 15:23:18,264 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:18,266 INFO L229 MonitoredProcess]: Starting monitored process 46 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-11-09 15:23:18,267 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (46)] Waiting until timeout for monitored process [2024-11-09 15:23:18,267 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2024-11-09 15:23:18,279 INFO L438 nArgumentSynthesizer]: Removed 2 redundant supporting invariants from a total of 2. [2024-11-09 15:23:18,279 INFO L474 LassoAnalysis]: Proved termination. [2024-11-09 15:23:18,279 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 [] [2024-11-09 15:23:18,290 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Forceful destruction successful, exit code 0 [2024-11-09 15:23:18,299 INFO L156 tatePredicateManager]: 4 out of 5 supporting invariants were superfluous and have been removed [2024-11-09 15:23:18,300 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: #length [2024-11-09 15:23:18,300 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array IdentifierExpression[#length,GLOBAL] [2024-11-09 15:23:18,300 WARN L976 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: ~t!offset [2024-11-09 15:23:18,314 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:18,337 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:18,339 INFO L255 TraceCheckSpWp]: Trace formula consists of 115 conjuncts, 16 conjuncts are in the unsatisfiable core [2024-11-09 15:23:18,341 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:18,387 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:18,388 INFO L255 TraceCheckSpWp]: Trace formula consists of 27 conjuncts, 8 conjuncts are in the unsatisfiable core [2024-11-09 15:23:18,388 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:18,429 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-11-09 15:23:18,430 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 [2024-11-09 15:23:18,430 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) [2024-11-09 15:23:18,482 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. [2024-11-09 15:23:18,483 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 [2024-11-09 15:23:18,483 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) [2024-11-09 15:23:18,483 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 16 transitions. [2024-11-09 15:23:18,483 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 14 letters. Loop has 4 letters. [2024-11-09 15:23:18,483 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:18,483 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 18 letters. Loop has 4 letters. [2024-11-09 15:23:18,484 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:18,484 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 16 transitions. Stem has 14 letters. Loop has 8 letters. [2024-11-09 15:23:18,484 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-11-09 15:23:18,484 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 130 states and 164 transitions. [2024-11-09 15:23:18,485 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2024-11-09 15:23:18,486 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 130 states to 104 states and 125 transitions. [2024-11-09 15:23:18,486 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 33 [2024-11-09 15:23:18,486 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 36 [2024-11-09 15:23:18,486 INFO L73 IsDeterministic]: Start isDeterministic. Operand 104 states and 125 transitions. [2024-11-09 15:23:18,486 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:18,486 INFO L218 hiAutomatonCegarLoop]: Abstraction has 104 states and 125 transitions. [2024-11-09 15:23:18,486 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states and 125 transitions. [2024-11-09 15:23:18,489 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 73. [2024-11-09 15:23:18,489 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) [2024-11-09 15:23:18,489 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 87 transitions. [2024-11-09 15:23:18,490 INFO L240 hiAutomatonCegarLoop]: Abstraction has 73 states and 87 transitions. [2024-11-09 15:23:18,490 INFO L425 stractBuchiCegarLoop]: Abstraction has 73 states and 87 transitions. [2024-11-09 15:23:18,490 INFO L332 stractBuchiCegarLoop]: ======== Iteration 8 ============ [2024-11-09 15:23:18,490 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 73 states and 87 transitions. [2024-11-09 15:23:18,490 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 17 [2024-11-09 15:23:18,490 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:18,490 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:18,491 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:18,491 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:18,491 INFO L745 eck$LassoCheckResult]: Stem: 1088#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 1089#L-1 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; 1090#L531 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; 1091#L517 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); 1124#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1077#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1079#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1082#L511-3 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; 1086#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1087#L511 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; 1081#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1141#L511-3 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; 1129#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1114#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1115#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1105#L511-3 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; 1103#strrchr_returnLabel#1 [2024-11-09 15:23:18,491 INFO L747 eck$LassoCheckResult]: Loop: 1103#strrchr_returnLabel#1 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; 1092#L518 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); 1093#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 1096#L520 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); 1097#L517 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); 1084#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1085#L511 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; 1119#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1128#L511-3 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; 1127#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1125#L511 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; 1121#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1123#L511-3 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; 1122#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1120#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1107#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1108#L511-3 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; 1103#strrchr_returnLabel#1 [2024-11-09 15:23:18,491 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:18,491 INFO L85 PathProgramCache]: Analyzing trace with hash -1192462433, now seen corresponding path program 1 times [2024-11-09 15:23:18,492 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:18,492 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1497573032] [2024-11-09 15:23:18,492 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:18,492 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:18,507 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:18,508 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:18,518 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:18,522 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:18,522 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:18,523 INFO L85 PathProgramCache]: Analyzing trace with hash -1276134570, now seen corresponding path program 2 times [2024-11-09 15:23:18,523 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:18,523 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1374570156] [2024-11-09 15:23:18,523 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:18,523 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:18,536 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:18,537 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:18,542 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:18,546 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:18,547 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:18,547 INFO L85 PathProgramCache]: Analyzing trace with hash -1834372232, now seen corresponding path program 2 times [2024-11-09 15:23:18,547 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:18,547 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [819035909] [2024-11-09 15:23:18,547 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:18,547 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:18,573 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:18,894 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (46)] Ended with exit code 0 [2024-11-09 15:23:19,022 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 27 proven. 32 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:19,022 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:19,023 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [819035909] [2024-11-09 15:23:19,023 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [819035909] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:19,023 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1585804368] [2024-11-09 15:23:19,023 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2024-11-09 15:23:19,023 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:19,023 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:19,024 INFO L229 MonitoredProcess]: Starting monitored process 47 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:19,034 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (47)] Waiting until timeout for monitored process [2024-11-09 15:23:19,096 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2024-11-09 15:23:19,096 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:19,098 INFO L255 TraceCheckSpWp]: Trace formula consists of 226 conjuncts, 72 conjuncts are in the unsatisfiable core [2024-11-09 15:23:19,100 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:19,189 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:19,262 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 27 proven. 30 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:19,262 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:19,503 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2024-11-09 15:23:19,503 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 [2024-11-09 15:23:19,783 INFO L134 CoverageAnalysis]: Checked inductivity of 61 backedges. 4 proven. 55 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:19,783 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1585804368] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:19,783 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:19,783 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 16, 18] total 39 [2024-11-09 15:23:19,783 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [960317747] [2024-11-09 15:23:19,783 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:20,123 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:20,123 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2024-11-09 15:23:20,124 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=151, Invalid=1331, Unknown=0, NotChecked=0, Total=1482 [2024-11-09 15:23:20,124 INFO L87 Difference]: Start difference. First operand 73 states and 87 transitions. cyclomatic complexity: 19 Second operand has 39 states, 39 states have (on average 1.8205128205128205) internal successors, (71), 39 states have internal predecessors, (71), 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) [2024-11-09 15:23:21,124 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:21,125 INFO L93 Difference]: Finished difference Result 170 states and 200 transitions. [2024-11-09 15:23:21,125 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 170 states and 200 transitions. [2024-11-09 15:23:21,126 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 86 [2024-11-09 15:23:21,127 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 170 states to 164 states and 194 transitions. [2024-11-09 15:23:21,127 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 110 [2024-11-09 15:23:21,127 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 118 [2024-11-09 15:23:21,127 INFO L73 IsDeterministic]: Start isDeterministic. Operand 164 states and 194 transitions. [2024-11-09 15:23:21,127 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:21,127 INFO L218 hiAutomatonCegarLoop]: Abstraction has 164 states and 194 transitions. [2024-11-09 15:23:21,128 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states and 194 transitions. [2024-11-09 15:23:21,136 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 98. [2024-11-09 15:23:21,137 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) [2024-11-09 15:23:21,137 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 121 transitions. [2024-11-09 15:23:21,137 INFO L240 hiAutomatonCegarLoop]: Abstraction has 98 states and 121 transitions. [2024-11-09 15:23:21,138 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2024-11-09 15:23:21,138 INFO L425 stractBuchiCegarLoop]: Abstraction has 98 states and 121 transitions. [2024-11-09 15:23:21,138 INFO L332 stractBuchiCegarLoop]: ======== Iteration 9 ============ [2024-11-09 15:23:21,138 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 98 states and 121 transitions. [2024-11-09 15:23:21,139 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 56 [2024-11-09 15:23:21,139 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:21,139 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:21,139 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:21,140 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:21,140 INFO L745 eck$LassoCheckResult]: Stem: 1610#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 1611#L-1 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; 1612#L531 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; 1613#L517 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); 1653#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1652#L511 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; 1651#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1650#L511-3 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; 1649#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1648#L511 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; 1645#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1647#L511-3 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; 1646#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1630#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1637#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1622#L511-3 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; 1621#strrchr_returnLabel#1 [2024-11-09 15:23:21,140 INFO L747 eck$LassoCheckResult]: Loop: 1621#strrchr_returnLabel#1 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; 1614#L518 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); 1615#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 1616#L520 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); 1617#L517 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); 1620#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1666#L511 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; 1663#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1618#L511-3 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; 1607#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1608#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1667#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1693#L511-3 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; 1668#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1664#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1604#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1605#L511-3 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; 1656#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1657#L511 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; 1626#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1688#L511-3 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; 1631#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1625#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 1627#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 1689#L511-3 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; 1621#strrchr_returnLabel#1 [2024-11-09 15:23:21,140 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:21,140 INFO L85 PathProgramCache]: Analyzing trace with hash -1893527011, now seen corresponding path program 2 times [2024-11-09 15:23:21,140 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:21,140 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1994018213] [2024-11-09 15:23:21,141 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:21,141 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:21,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:21,148 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:21,152 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:21,153 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:21,154 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:21,154 INFO L85 PathProgramCache]: Analyzing trace with hash -1248060886, now seen corresponding path program 3 times [2024-11-09 15:23:21,154 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:21,154 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [644428576] [2024-11-09 15:23:21,154 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:21,154 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:21,160 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:21,160 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:21,164 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:21,165 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:21,166 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:21,166 INFO L85 PathProgramCache]: Analyzing trace with hash -545890418, now seen corresponding path program 3 times [2024-11-09 15:23:21,166 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:21,166 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [100640301] [2024-11-09 15:23:21,166 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:21,166 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:21,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:21,710 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 49 proven. 60 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:21,711 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:21,711 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [100640301] [2024-11-09 15:23:21,711 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [100640301] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:21,711 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [761129962] [2024-11-09 15:23:21,711 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-11-09 15:23:21,711 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:21,711 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:21,713 INFO L229 MonitoredProcess]: Starting monitored process 48 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:21,716 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (48)] Waiting until timeout for monitored process [2024-11-09 15:23:21,806 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) [2024-11-09 15:23:21,806 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:21,808 INFO L255 TraceCheckSpWp]: Trace formula consists of 267 conjuncts, 63 conjuncts are in the unsatisfiable core [2024-11-09 15:23:21,810 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:21,887 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:21,944 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 61 proven. 38 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2024-11-09 15:23:21,945 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:21,968 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 [2024-11-09 15:23:22,070 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 61 proven. 38 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2024-11-09 15:23:22,071 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [761129962] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:22,071 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:22,071 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 12, 11] total 26 [2024-11-09 15:23:22,071 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [924669506] [2024-11-09 15:23:22,071 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:22,522 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:22,522 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2024-11-09 15:23:22,523 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=573, Unknown=0, NotChecked=0, Total=650 [2024-11-09 15:23:22,523 INFO L87 Difference]: Start difference. First operand 98 states and 121 transitions. cyclomatic complexity: 30 Second operand has 26 states, 26 states have (on average 2.8461538461538463) internal successors, (74), 26 states have internal predecessors, (74), 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) [2024-11-09 15:23:22,779 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:22,780 INFO L93 Difference]: Finished difference Result 115 states and 139 transitions. [2024-11-09 15:23:22,780 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 115 states and 139 transitions. [2024-11-09 15:23:22,781 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 33 [2024-11-09 15:23:22,781 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 115 states to 80 states and 97 transitions. [2024-11-09 15:23:22,781 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 44 [2024-11-09 15:23:22,781 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 44 [2024-11-09 15:23:22,781 INFO L73 IsDeterministic]: Start isDeterministic. Operand 80 states and 97 transitions. [2024-11-09 15:23:22,782 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:22,782 INFO L218 hiAutomatonCegarLoop]: Abstraction has 80 states and 97 transitions. [2024-11-09 15:23:22,782 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states and 97 transitions. [2024-11-09 15:23:22,784 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 42. [2024-11-09 15:23:22,784 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) [2024-11-09 15:23:22,785 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 52 transitions. [2024-11-09 15:23:22,785 INFO L240 hiAutomatonCegarLoop]: Abstraction has 42 states and 52 transitions. [2024-11-09 15:23:22,785 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2024-11-09 15:23:22,785 INFO L425 stractBuchiCegarLoop]: Abstraction has 42 states and 52 transitions. [2024-11-09 15:23:22,785 INFO L332 stractBuchiCegarLoop]: ======== Iteration 10 ============ [2024-11-09 15:23:22,786 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 42 states and 52 transitions. [2024-11-09 15:23:22,786 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 21 [2024-11-09 15:23:22,786 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:22,786 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:22,786 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:22,786 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:22,787 INFO L745 eck$LassoCheckResult]: Stem: 2104#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 2105#L-1 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; 2106#L531 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; 2107#L517 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); 2100#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2101#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2135#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2134#L511-3 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; 2130#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2096#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2097#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2099#L511-3 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; 2102#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2103#L511 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; 2128#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2125#L511-3 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; 2122#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2118#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2119#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2115#L511-3 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; 2114#strrchr_returnLabel#1 [2024-11-09 15:23:22,787 INFO L747 eck$LassoCheckResult]: Loop: 2114#strrchr_returnLabel#1 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; 2108#L518 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); 2109#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 2110#L520 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); 2111#L517 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); 2133#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2132#L511 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; 2131#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2112#L511-3 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; 2113#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2094#L511 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; 2095#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2098#L511-3 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; 2129#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2127#L511 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; 2126#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2124#L511-3 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; 2120#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2121#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2116#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2117#L511-3 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; 2114#strrchr_returnLabel#1 [2024-11-09 15:23:22,787 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:22,787 INFO L85 PathProgramCache]: Analyzing trace with hash -1195844343, now seen corresponding path program 3 times [2024-11-09 15:23:22,787 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:22,787 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2010802367] [2024-11-09 15:23:22,787 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:22,788 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:22,795 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:22,795 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:22,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:22,801 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:22,802 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:22,802 INFO L85 PathProgramCache]: Analyzing trace with hash 179046334, now seen corresponding path program 4 times [2024-11-09 15:23:22,802 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:22,802 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2126379728] [2024-11-09 15:23:22,802 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:22,802 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:22,807 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:22,808 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:22,811 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:22,813 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:22,813 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:22,813 INFO L85 PathProgramCache]: Analyzing trace with hash 456990646, now seen corresponding path program 4 times [2024-11-09 15:23:22,814 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:22,814 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1095496081] [2024-11-09 15:23:22,814 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:22,814 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:22,825 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:23,201 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 39 proven. 72 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:23,201 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:23,201 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1095496081] [2024-11-09 15:23:23,201 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1095496081] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:23,202 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1324645463] [2024-11-09 15:23:23,202 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2024-11-09 15:23:23,202 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:23,202 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:23,203 INFO L229 MonitoredProcess]: Starting monitored process 49 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:23,205 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (49)] Waiting until timeout for monitored process [2024-11-09 15:23:23,283 INFO L227 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2024-11-09 15:23:23,283 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:23,285 INFO L255 TraceCheckSpWp]: Trace formula consists of 267 conjuncts, 79 conjuncts are in the unsatisfiable core [2024-11-09 15:23:23,287 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:23,422 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:23,561 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 39 proven. 70 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:23,561 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:23,845 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2024-11-09 15:23:23,845 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 [2024-11-09 15:23:24,134 INFO L134 CoverageAnalysis]: Checked inductivity of 113 backedges. 8 proven. 103 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:24,135 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1324645463] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:24,135 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:24,135 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 17, 18] total 39 [2024-11-09 15:23:24,135 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [177986848] [2024-11-09 15:23:24,135 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:24,552 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:24,553 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2024-11-09 15:23:24,553 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=129, Invalid=1353, Unknown=0, NotChecked=0, Total=1482 [2024-11-09 15:23:24,553 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) [2024-11-09 15:23:25,864 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:25,864 INFO L93 Difference]: Finished difference Result 171 states and 203 transitions. [2024-11-09 15:23:25,864 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 171 states and 203 transitions. [2024-11-09 15:23:25,865 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 117 [2024-11-09 15:23:25,866 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 171 states to 171 states and 203 transitions. [2024-11-09 15:23:25,866 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 135 [2024-11-09 15:23:25,866 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 135 [2024-11-09 15:23:25,866 INFO L73 IsDeterministic]: Start isDeterministic. Operand 171 states and 203 transitions. [2024-11-09 15:23:25,867 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:25,867 INFO L218 hiAutomatonCegarLoop]: Abstraction has 171 states and 203 transitions. [2024-11-09 15:23:25,868 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 171 states and 203 transitions. [2024-11-09 15:23:25,873 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 171 to 100. [2024-11-09 15:23:25,874 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) [2024-11-09 15:23:25,874 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 122 transitions. [2024-11-09 15:23:25,874 INFO L240 hiAutomatonCegarLoop]: Abstraction has 100 states and 122 transitions. [2024-11-09 15:23:25,875 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2024-11-09 15:23:25,876 INFO L425 stractBuchiCegarLoop]: Abstraction has 100 states and 122 transitions. [2024-11-09 15:23:25,876 INFO L332 stractBuchiCegarLoop]: ======== Iteration 11 ============ [2024-11-09 15:23:25,876 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 100 states and 122 transitions. [2024-11-09 15:23:25,877 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 68 [2024-11-09 15:23:25,877 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:25,877 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:25,877 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 3, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:25,878 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:25,878 INFO L745 eck$LassoCheckResult]: Stem: 2660#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 2661#L-1 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; 2662#L531 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; 2663#L517 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); 2696#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2695#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2694#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2693#L511-3 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; 2690#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2651#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2652#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2740#L511-3 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; 2738#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2684#L511 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; 2683#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2681#L511-3 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; 2682#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2725#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2724#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2672#L511-3 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; 2671#strrchr_returnLabel#1 [2024-11-09 15:23:25,878 INFO L747 eck$LassoCheckResult]: Loop: 2671#strrchr_returnLabel#1 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; 2664#L518 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); 2665#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 2666#L520 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); 2667#L517 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); 2717#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2716#L511 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; 2715#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2714#L511-3 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; 2713#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2712#L511 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; 2711#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2710#L511-3 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; 2709#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2708#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2707#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2706#L511-3 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; 2705#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2703#L511 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; 2702#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2701#L511-3 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; 2700#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2675#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 2673#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 2674#L511-3 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; 2671#strrchr_returnLabel#1 [2024-11-09 15:23:25,878 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:25,879 INFO L85 PathProgramCache]: Analyzing trace with hash -1195844343, now seen corresponding path program 4 times [2024-11-09 15:23:25,879 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:25,879 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1657738286] [2024-11-09 15:23:25,879 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:25,879 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:25,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:25,889 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:25,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:25,896 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:25,896 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:25,897 INFO L85 PathProgramCache]: Analyzing trace with hash 31802792, now seen corresponding path program 5 times [2024-11-09 15:23:25,897 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:25,897 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [525527949] [2024-11-09 15:23:25,897 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:25,897 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:25,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:25,908 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:25,912 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:25,914 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:25,915 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:25,915 INFO L85 PathProgramCache]: Analyzing trace with hash -1279680096, now seen corresponding path program 5 times [2024-11-09 15:23:25,915 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:25,915 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [890285624] [2024-11-09 15:23:25,915 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:25,916 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:25,930 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:26,322 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 84 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:26,322 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:26,322 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [890285624] [2024-11-09 15:23:26,322 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [890285624] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:26,322 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1074049215] [2024-11-09 15:23:26,323 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-11-09 15:23:26,323 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:26,323 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:26,324 INFO L229 MonitoredProcess]: Starting monitored process 50 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:26,325 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (50)] Waiting until timeout for monitored process [2024-11-09 15:23:26,404 INFO L227 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2024-11-09 15:23:26,404 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:26,405 INFO L255 TraceCheckSpWp]: Trace formula consists of 285 conjuncts, 67 conjuncts are in the unsatisfiable core [2024-11-09 15:23:26,411 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:26,495 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:26,551 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 82 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:23:26,552 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:26,588 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 [2024-11-09 15:23:26,715 INFO L134 CoverageAnalysis]: Checked inductivity of 145 backedges. 57 proven. 82 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:23:26,715 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1074049215] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:26,715 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:26,715 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 14, 13] total 25 [2024-11-09 15:23:26,715 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1840281398] [2024-11-09 15:23:26,716 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:27,206 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:27,207 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2024-11-09 15:23:27,207 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=533, Unknown=0, NotChecked=0, Total=600 [2024-11-09 15:23:27,207 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) [2024-11-09 15:23:27,468 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:27,469 INFO L93 Difference]: Finished difference Result 86 states and 103 transitions. [2024-11-09 15:23:27,469 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 86 states and 103 transitions. [2024-11-09 15:23:27,469 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 33 [2024-11-09 15:23:27,470 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 86 states to 66 states and 80 transitions. [2024-11-09 15:23:27,470 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 43 [2024-11-09 15:23:27,470 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 43 [2024-11-09 15:23:27,470 INFO L73 IsDeterministic]: Start isDeterministic. Operand 66 states and 80 transitions. [2024-11-09 15:23:27,470 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:27,470 INFO L218 hiAutomatonCegarLoop]: Abstraction has 66 states and 80 transitions. [2024-11-09 15:23:27,470 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 66 states and 80 transitions. [2024-11-09 15:23:27,471 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 66 to 50. [2024-11-09 15:23:27,471 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) [2024-11-09 15:23:27,471 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 62 transitions. [2024-11-09 15:23:27,471 INFO L240 hiAutomatonCegarLoop]: Abstraction has 50 states and 62 transitions. [2024-11-09 15:23:27,471 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2024-11-09 15:23:27,472 INFO L425 stractBuchiCegarLoop]: Abstraction has 50 states and 62 transitions. [2024-11-09 15:23:27,472 INFO L332 stractBuchiCegarLoop]: ======== Iteration 12 ============ [2024-11-09 15:23:27,472 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 50 states and 62 transitions. [2024-11-09 15:23:27,472 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 25 [2024-11-09 15:23:27,472 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:27,472 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:27,473 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 4, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:27,473 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 4, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:27,473 INFO L745 eck$LassoCheckResult]: Stem: 3149#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 3150#L-1 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; 3151#L531 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; 3152#L517 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); 3182#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3181#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 3178#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3159#L511-3 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; 3160#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3177#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 3179#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3180#L511-3 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; 3183#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3141#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 3142#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3144#L511-3 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; 3147#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3148#L511 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; 3173#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3171#L511-3 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; 3167#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3168#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 3174#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3162#L511-3 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; 3161#strrchr_returnLabel#1 [2024-11-09 15:23:27,473 INFO L747 eck$LassoCheckResult]: Loop: 3161#strrchr_returnLabel#1 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; 3153#L518 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); 3154#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 3155#L520 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); 3156#L517 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); 3145#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3146#L511 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; 3186#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3157#L511-3 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; 3158#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3188#L511 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; 3184#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3185#L511-3 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; 3187#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3139#L511 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; 3140#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3143#L511-3 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; 3176#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3175#L511 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; 3166#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3172#L511-3 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; 3170#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3165#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 3163#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 3164#L511-3 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; 3161#strrchr_returnLabel#1 [2024-11-09 15:23:27,474 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:27,474 INFO L85 PathProgramCache]: Analyzing trace with hash -2019525261, now seen corresponding path program 5 times [2024-11-09 15:23:27,474 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:27,474 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [515139810] [2024-11-09 15:23:27,474 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:27,474 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:27,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:27,481 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:27,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:27,487 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:27,488 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:27,488 INFO L85 PathProgramCache]: Analyzing trace with hash -669261786, now seen corresponding path program 6 times [2024-11-09 15:23:27,488 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:27,488 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [785078153] [2024-11-09 15:23:27,488 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:27,488 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:27,494 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:27,494 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:27,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:27,499 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:27,500 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:27,500 INFO L85 PathProgramCache]: Analyzing trace with hash 349767412, now seen corresponding path program 6 times [2024-11-09 15:23:27,500 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:27,500 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [968662494] [2024-11-09 15:23:27,500 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:27,500 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:27,511 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:28,057 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 51 proven. 128 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:28,058 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:28,058 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [968662494] [2024-11-09 15:23:28,058 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [968662494] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:28,058 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1328272304] [2024-11-09 15:23:28,058 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2024-11-09 15:23:28,058 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:28,058 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:28,060 INFO L229 MonitoredProcess]: Starting monitored process 51 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:28,061 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (51)] Waiting until timeout for monitored process [2024-11-09 15:23:28,143 INFO L227 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2024-11-09 15:23:28,143 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:28,144 INFO L255 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 71 conjuncts are in the unsatisfiable core [2024-11-09 15:23:28,147 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:28,154 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 [2024-11-09 15:23:28,320 INFO L349 Elim1Store]: treesize reduction 17, result has 46.9 percent of original size [2024-11-09 15:23:28,320 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 20 treesize of output 27 [2024-11-09 15:23:28,475 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 91 proven. 54 refuted. 0 times theorem prover too weak. 36 trivial. 0 not checked. [2024-11-09 15:23:28,476 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:29,090 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 37 proven. 116 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2024-11-09 15:23:29,090 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1328272304] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:29,090 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:29,090 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 11, 13] total 40 [2024-11-09 15:23:29,091 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2112950515] [2024-11-09 15:23:29,091 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:29,580 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:29,581 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2024-11-09 15:23:29,581 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=126, Invalid=1434, Unknown=0, NotChecked=0, Total=1560 [2024-11-09 15:23:29,581 INFO L87 Difference]: Start difference. First operand 50 states and 62 transitions. cyclomatic complexity: 15 Second operand has 40 states, 40 states have (on average 2.65) internal successors, (106), 40 states have internal predecessors, (106), 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) [2024-11-09 15:23:33,082 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:33,082 INFO L93 Difference]: Finished difference Result 340 states and 408 transitions. [2024-11-09 15:23:33,082 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 340 states and 408 transitions. [2024-11-09 15:23:33,083 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 220 [2024-11-09 15:23:33,085 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 340 states to 340 states and 408 transitions. [2024-11-09 15:23:33,085 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 289 [2024-11-09 15:23:33,085 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 289 [2024-11-09 15:23:33,085 INFO L73 IsDeterministic]: Start isDeterministic. Operand 340 states and 408 transitions. [2024-11-09 15:23:33,085 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:33,085 INFO L218 hiAutomatonCegarLoop]: Abstraction has 340 states and 408 transitions. [2024-11-09 15:23:33,086 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 340 states and 408 transitions. [2024-11-09 15:23:33,089 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 340 to 170. [2024-11-09 15:23:33,089 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 170 states, 170 states have (on average 1.223529411764706) internal successors, (208), 169 states have internal predecessors, (208), 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) [2024-11-09 15:23:33,090 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 170 states to 170 states and 208 transitions. [2024-11-09 15:23:33,090 INFO L240 hiAutomatonCegarLoop]: Abstraction has 170 states and 208 transitions. [2024-11-09 15:23:33,090 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 88 states. [2024-11-09 15:23:33,091 INFO L425 stractBuchiCegarLoop]: Abstraction has 170 states and 208 transitions. [2024-11-09 15:23:33,091 INFO L332 stractBuchiCegarLoop]: ======== Iteration 13 ============ [2024-11-09 15:23:33,091 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 170 states and 208 transitions. [2024-11-09 15:23:33,091 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 108 [2024-11-09 15:23:33,091 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:33,091 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:33,092 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1] [2024-11-09 15:23:33,092 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:33,092 INFO L745 eck$LassoCheckResult]: Stem: 4024#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 4025#L-1 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; 4026#L531 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; 4027#L517 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); 4043#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4042#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4040#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4041#L511-3 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; 4066#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4064#L511 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; 4062#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4063#L511-3 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; 4058#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4059#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4123#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4122#L511-3 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; 4121#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4119#L511 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; 4116#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4114#L511-3 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; 4112#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4111#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4110#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4109#L511-3 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; 4106#strrchr_returnLabel#1 [2024-11-09 15:23:33,092 INFO L747 eck$LassoCheckResult]: Loop: 4106#strrchr_returnLabel#1 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; 4105#L518 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); 4104#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 4102#L520 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); 4100#L517 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); 4098#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4094#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4095#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4137#L511-3 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; 4136#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4135#L511 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; 4134#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4133#L511-3 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; 4132#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4131#L511 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; 4130#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4129#L511-3 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; 4128#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4126#L511 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; 4125#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4124#L511-3 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; 4108#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4117#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4115#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4107#L511-3 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; 4106#strrchr_returnLabel#1 [2024-11-09 15:23:33,092 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:33,093 INFO L85 PathProgramCache]: Analyzing trace with hash -739661583, now seen corresponding path program 6 times [2024-11-09 15:23:33,093 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:33,093 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1262132082] [2024-11-09 15:23:33,093 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:33,093 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:33,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:33,100 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:33,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:33,106 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:33,107 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:33,107 INFO L85 PathProgramCache]: Analyzing trace with hash 1936761768, now seen corresponding path program 7 times [2024-11-09 15:23:33,107 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:33,107 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [567049629] [2024-11-09 15:23:33,107 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:33,107 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:33,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:33,113 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:33,116 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:33,118 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:33,118 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:33,118 INFO L85 PathProgramCache]: Analyzing trace with hash 32630968, now seen corresponding path program 7 times [2024-11-09 15:23:33,118 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:33,118 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1064845506] [2024-11-09 15:23:33,118 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:33,119 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:33,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:33,545 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 51 proven. 128 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:33,545 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:33,545 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1064845506] [2024-11-09 15:23:33,545 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1064845506] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:33,545 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1316305747] [2024-11-09 15:23:33,545 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-11-09 15:23:33,545 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:33,546 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:33,550 INFO L229 MonitoredProcess]: Starting monitored process 52 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:33,551 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (52)] Waiting until timeout for monitored process [2024-11-09 15:23:33,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:33,660 INFO L255 TraceCheckSpWp]: Trace formula consists of 308 conjuncts, 77 conjuncts are in the unsatisfiable core [2024-11-09 15:23:33,662 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:33,816 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 [2024-11-09 15:23:34,002 INFO L349 Elim1Store]: treesize reduction 3, result has 75.0 percent of original size [2024-11-09 15:23:34,002 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 23 treesize of output 20 [2024-11-09 15:23:34,022 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 1 proven. 178 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:34,022 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:34,328 INFO L349 Elim1Store]: treesize reduction 4, result has 69.2 percent of original size [2024-11-09 15:23:34,328 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 57 treesize of output 56 [2024-11-09 15:23:34,393 INFO L134 CoverageAnalysis]: Checked inductivity of 181 backedges. 1 proven. 178 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:34,394 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1316305747] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:34,394 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:34,394 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 18, 18] total 45 [2024-11-09 15:23:34,394 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1297906922] [2024-11-09 15:23:34,394 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:34,854 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:34,854 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 45 interpolants. [2024-11-09 15:23:34,855 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=128, Invalid=1852, Unknown=0, NotChecked=0, Total=1980 [2024-11-09 15:23:34,855 INFO L87 Difference]: Start difference. First operand 170 states and 208 transitions. cyclomatic complexity: 46 Second operand has 45 states, 45 states have (on average 2.5555555555555554) internal successors, (115), 45 states have internal predecessors, (115), 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) [2024-11-09 15:23:36,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:36,003 INFO L93 Difference]: Finished difference Result 256 states and 308 transitions. [2024-11-09 15:23:36,003 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 256 states and 308 transitions. [2024-11-09 15:23:36,005 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 146 [2024-11-09 15:23:36,006 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 256 states to 256 states and 308 transitions. [2024-11-09 15:23:36,006 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 205 [2024-11-09 15:23:36,006 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 205 [2024-11-09 15:23:36,006 INFO L73 IsDeterministic]: Start isDeterministic. Operand 256 states and 308 transitions. [2024-11-09 15:23:36,007 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:36,007 INFO L218 hiAutomatonCegarLoop]: Abstraction has 256 states and 308 transitions. [2024-11-09 15:23:36,007 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 256 states and 308 transitions. [2024-11-09 15:23:36,010 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 256 to 224. [2024-11-09 15:23:36,010 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 224 states, 224 states have (on average 1.2232142857142858) internal successors, (274), 223 states have internal predecessors, (274), 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) [2024-11-09 15:23:36,011 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 224 states to 224 states and 274 transitions. [2024-11-09 15:23:36,011 INFO L240 hiAutomatonCegarLoop]: Abstraction has 224 states and 274 transitions. [2024-11-09 15:23:36,011 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2024-11-09 15:23:36,011 INFO L425 stractBuchiCegarLoop]: Abstraction has 224 states and 274 transitions. [2024-11-09 15:23:36,011 INFO L332 stractBuchiCegarLoop]: ======== Iteration 14 ============ [2024-11-09 15:23:36,012 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 224 states and 274 transitions. [2024-11-09 15:23:36,012 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 132 [2024-11-09 15:23:36,012 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:36,012 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:36,013 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 5, 3, 3, 1, 1, 1, 1, 1] [2024-11-09 15:23:36,013 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [6, 6, 5, 4, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:36,013 INFO L745 eck$LassoCheckResult]: Stem: 4834#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 4835#L-1 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; 4836#L531 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; 4837#L517 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); 4877#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4876#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4873#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4874#L511-3 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; 4880#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4878#L511 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; 4879#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4980#L511-3 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; 4979#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4978#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4977#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4976#L511-3 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; 4975#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4974#L511 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; 4931#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4981#L511-3 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; 4851#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4852#L511 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; 4929#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4927#L511-3 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; 4925#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4922#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4920#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4914#L511-3 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; 4912#strrchr_returnLabel#1 [2024-11-09 15:23:36,013 INFO L747 eck$LassoCheckResult]: Loop: 4912#strrchr_returnLabel#1 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; 4910#L518 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); 4908#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 4906#L520 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); 4904#L517 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); 4902#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4900#L511 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; 4898#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4896#L511-3 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; 4894#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4891#L511 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; 4889#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4890#L511-3 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; 4885#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4886#L511 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; 4964#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4963#L511-3 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; 4961#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4959#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4947#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4956#L511-3 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; 4950#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4946#L511 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; 4935#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4941#L511-3 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; 4916#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4934#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 4930#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 4915#L511-3 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; 4912#strrchr_returnLabel#1 [2024-11-09 15:23:36,013 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:36,013 INFO L85 PathProgramCache]: Analyzing trace with hash -1703956519, now seen corresponding path program 7 times [2024-11-09 15:23:36,014 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:36,014 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [116522404] [2024-11-09 15:23:36,014 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:36,014 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:36,024 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:36,025 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:36,031 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:36,035 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:36,035 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:36,035 INFO L85 PathProgramCache]: Analyzing trace with hash 1768073744, now seen corresponding path program 8 times [2024-11-09 15:23:36,036 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:36,036 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [820361821] [2024-11-09 15:23:36,036 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:36,036 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:36,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:36,046 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:36,049 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:36,051 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:36,051 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:36,051 INFO L85 PathProgramCache]: Analyzing trace with hash 341190968, now seen corresponding path program 8 times [2024-11-09 15:23:36,051 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:36,052 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1941826530] [2024-11-09 15:23:36,052 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:36,052 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:36,063 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:36,567 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 63 proven. 200 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:36,567 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:36,567 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1941826530] [2024-11-09 15:23:36,567 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1941826530] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:36,568 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1369578473] [2024-11-09 15:23:36,568 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2024-11-09 15:23:36,568 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:36,568 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:36,570 INFO L229 MonitoredProcess]: Starting monitored process 53 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:36,571 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (53)] Waiting until timeout for monitored process [2024-11-09 15:23:36,675 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2024-11-09 15:23:36,675 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:36,677 INFO L255 TraceCheckSpWp]: Trace formula consists of 354 conjuncts, 96 conjuncts are in the unsatisfiable core [2024-11-09 15:23:36,681 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:36,836 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:37,068 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 63 proven. 198 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:37,068 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:37,456 INFO L349 Elim1Store]: treesize reduction 10, result has 47.4 percent of original size [2024-11-09 15:23:37,456 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 [2024-11-09 15:23:37,953 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 13 proven. 250 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:37,953 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1369578473] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:37,953 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:37,954 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 22, 24] total 52 [2024-11-09 15:23:37,954 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [765523104] [2024-11-09 15:23:37,954 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:38,547 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:38,548 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 52 interpolants. [2024-11-09 15:23:38,548 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=183, Invalid=2469, Unknown=0, NotChecked=0, Total=2652 [2024-11-09 15:23:38,549 INFO L87 Difference]: Start difference. First operand 224 states and 274 transitions. cyclomatic complexity: 61 Second operand has 52 states, 52 states have (on average 2.5) internal successors, (130), 52 states have internal predecessors, (130), 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) [2024-11-09 15:23:41,142 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:41,143 INFO L93 Difference]: Finished difference Result 998 states and 1197 transitions. [2024-11-09 15:23:41,143 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 998 states and 1197 transitions. [2024-11-09 15:23:41,146 INFO L131 ngComponentsAnalysis]: Automaton has 11 accepting balls. 732 [2024-11-09 15:23:41,148 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 998 states to 998 states and 1197 transitions. [2024-11-09 15:23:41,149 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 898 [2024-11-09 15:23:41,149 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 898 [2024-11-09 15:23:41,149 INFO L73 IsDeterministic]: Start isDeterministic. Operand 998 states and 1197 transitions. [2024-11-09 15:23:41,150 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:41,150 INFO L218 hiAutomatonCegarLoop]: Abstraction has 998 states and 1197 transitions. [2024-11-09 15:23:41,151 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 998 states and 1197 transitions. [2024-11-09 15:23:41,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 998 to 656. [2024-11-09 15:23:41,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 656 states, 656 states have (on average 1.2317073170731707) internal successors, (808), 655 states have internal predecessors, (808), 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) [2024-11-09 15:23:41,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 656 states to 656 states and 808 transitions. [2024-11-09 15:23:41,160 INFO L240 hiAutomatonCegarLoop]: Abstraction has 656 states and 808 transitions. [2024-11-09 15:23:41,160 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 53 states. [2024-11-09 15:23:41,160 INFO L425 stractBuchiCegarLoop]: Abstraction has 656 states and 808 transitions. [2024-11-09 15:23:41,160 INFO L332 stractBuchiCegarLoop]: ======== Iteration 15 ============ [2024-11-09 15:23:41,161 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 656 states and 808 transitions. [2024-11-09 15:23:41,162 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 484 [2024-11-09 15:23:41,162 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:41,162 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:41,163 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 5, 3, 3, 1, 1, 1, 1, 1] [2024-11-09 15:23:41,163 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 6, 5, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:41,187 INFO L745 eck$LassoCheckResult]: Stem: 6532#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 6533#L-1 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; 6534#L531 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; 6535#L517 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); 6549#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6548#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 6546#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6547#L511-3 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; 6569#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6567#L511 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; 6568#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6722#L511-3 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; 6721#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6720#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 6719#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6718#L511-3 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; 6717#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6716#L511 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; 6714#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6712#L511-3 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; 6709#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6704#L511 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; 6701#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6681#L511-3 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; 6678#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6675#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 6672#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6667#L511-3 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; 6663#strrchr_returnLabel#1 [2024-11-09 15:23:41,188 INFO L747 eck$LassoCheckResult]: Loop: 6663#strrchr_returnLabel#1 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; 6661#L518 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); 6659#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 6654#L520 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); 6653#L517 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); 6652#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6651#L511 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; 6649#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6647#L511-3 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; 6645#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6642#L511 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; 6640#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6641#L511-3 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; 6636#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6637#L511 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; 6729#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6728#L511-3 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; 6727#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6726#L511 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; 6627#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6628#L511-3 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; 6624#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6622#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 6623#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6690#L511-3 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; 6612#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6613#L511 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; 6685#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6682#L511-3 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; 6680#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6676#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 6674#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 6670#L511-3 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; 6663#strrchr_returnLabel#1 [2024-11-09 15:23:41,189 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:41,189 INFO L85 PathProgramCache]: Analyzing trace with hash -1703956519, now seen corresponding path program 8 times [2024-11-09 15:23:41,189 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:41,189 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1482849156] [2024-11-09 15:23:41,189 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:41,189 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:41,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:41,197 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:41,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:41,202 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:41,203 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:41,203 INFO L85 PathProgramCache]: Analyzing trace with hash 1363647096, now seen corresponding path program 9 times [2024-11-09 15:23:41,203 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:41,207 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [903846117] [2024-11-09 15:23:41,207 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:41,207 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:41,217 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:41,217 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:41,225 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:41,230 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:41,231 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:41,231 INFO L85 PathProgramCache]: Analyzing trace with hash 1251427744, now seen corresponding path program 9 times [2024-11-09 15:23:41,231 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:41,231 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [730564845] [2024-11-09 15:23:41,231 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:41,231 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:41,259 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:41,764 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 89 proven. 220 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:41,764 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:41,764 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [730564845] [2024-11-09 15:23:41,764 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [730564845] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:41,764 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1172537369] [2024-11-09 15:23:41,764 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-11-09 15:23:41,764 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:41,764 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:41,766 INFO L229 MonitoredProcess]: Starting monitored process 54 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:41,767 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (54)] Waiting until timeout for monitored process [2024-11-09 15:23:41,855 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2024-11-09 15:23:41,855 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:41,857 INFO L255 TraceCheckSpWp]: Trace formula consists of 244 conjuncts, 58 conjuncts are in the unsatisfiable core [2024-11-09 15:23:41,859 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:41,863 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 [2024-11-09 15:23:42,095 INFO L190 IndexEqualityManager]: detected not equals via solver [2024-11-09 15:23:42,096 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 [2024-11-09 15:23:42,116 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 [2024-11-09 15:23:42,130 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 198 proven. 26 refuted. 0 times theorem prover too weak. 89 trivial. 0 not checked. [2024-11-09 15:23:42,130 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:42,803 INFO L134 CoverageAnalysis]: Checked inductivity of 313 backedges. 174 proven. 50 refuted. 0 times theorem prover too weak. 89 trivial. 0 not checked. [2024-11-09 15:23:42,803 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1172537369] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:42,804 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:42,804 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 13, 14] total 41 [2024-11-09 15:23:42,804 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [370944835] [2024-11-09 15:23:42,804 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:43,472 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:43,473 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 41 interpolants. [2024-11-09 15:23:43,473 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=168, Invalid=1472, Unknown=0, NotChecked=0, Total=1640 [2024-11-09 15:23:43,473 INFO L87 Difference]: Start difference. First operand 656 states and 808 transitions. cyclomatic complexity: 169 Second operand has 41 states, 41 states have (on average 2.6341463414634148) internal successors, (108), 41 states have internal predecessors, (108), 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) [2024-11-09 15:23:45,448 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:45,448 INFO L93 Difference]: Finished difference Result 1004 states and 1176 transitions. [2024-11-09 15:23:45,448 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1004 states and 1176 transitions. [2024-11-09 15:23:45,456 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 412 [2024-11-09 15:23:45,462 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1004 states to 692 states and 836 transitions. [2024-11-09 15:23:45,463 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 520 [2024-11-09 15:23:45,463 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 520 [2024-11-09 15:23:45,463 INFO L73 IsDeterministic]: Start isDeterministic. Operand 692 states and 836 transitions. [2024-11-09 15:23:45,464 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:45,464 INFO L218 hiAutomatonCegarLoop]: Abstraction has 692 states and 836 transitions. [2024-11-09 15:23:45,464 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 692 states and 836 transitions. [2024-11-09 15:23:45,475 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 692 to 480. [2024-11-09 15:23:45,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 480 states, 480 states have (on average 1.2375) internal successors, (594), 479 states have internal predecessors, (594), 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) [2024-11-09 15:23:45,477 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 480 states to 480 states and 594 transitions. [2024-11-09 15:23:45,477 INFO L240 hiAutomatonCegarLoop]: Abstraction has 480 states and 594 transitions. [2024-11-09 15:23:45,480 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 56 states. [2024-11-09 15:23:45,481 INFO L425 stractBuchiCegarLoop]: Abstraction has 480 states and 594 transitions. [2024-11-09 15:23:45,481 INFO L332 stractBuchiCegarLoop]: ======== Iteration 16 ============ [2024-11-09 15:23:45,481 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 480 states and 594 transitions. [2024-11-09 15:23:45,482 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 300 [2024-11-09 15:23:45,482 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:45,482 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:45,483 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 4, 3, 2, 1, 1, 1, 1, 1] [2024-11-09 15:23:45,483 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 6, 4, 3, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:45,485 INFO L745 eck$LassoCheckResult]: Stem: 8677#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 8678#L-1 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; 8679#L531 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; 8680#L517 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); 8929#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8927#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 8926#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8925#L511-3 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; 8924#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8922#L511 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; 8921#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8920#L511-3 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; 8919#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8918#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 8917#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8916#L511-3 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; 8915#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8913#L511 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; 8912#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8911#L511-3 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; 8910#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 8894#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9062#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9053#L511-3 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; 8795#strrchr_returnLabel#1 [2024-11-09 15:23:45,485 INFO L747 eck$LassoCheckResult]: Loop: 8795#strrchr_returnLabel#1 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; 9046#L518 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); 9044#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 9042#L520 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); 9040#L517 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); 9038#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9036#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9035#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9099#L511-3 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; 9098#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9022#L511 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; 9020#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9021#L511-3 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; 9016#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9017#L511 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; 9122#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9121#L511-3 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; 9120#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9119#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9118#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9117#L511-3 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; 9116#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9115#L511 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; 9061#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9064#L511-3 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; 9063#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9060#L511 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; 9058#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9059#L511-3 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; 9055#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9057#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9056#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9054#L511-3 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; 8795#strrchr_returnLabel#1 [2024-11-09 15:23:45,486 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:45,487 INFO L85 PathProgramCache]: Analyzing trace with hash -739661583, now seen corresponding path program 9 times [2024-11-09 15:23:45,487 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:45,487 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [387855834] [2024-11-09 15:23:45,487 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:45,487 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:45,502 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:45,502 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:45,508 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:45,510 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:45,511 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:45,511 INFO L85 PathProgramCache]: Analyzing trace with hash 1305946874, now seen corresponding path program 10 times [2024-11-09 15:23:45,511 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:45,511 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1847857860] [2024-11-09 15:23:45,511 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:45,511 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:45,524 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:45,525 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:45,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:45,532 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:45,532 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:45,533 INFO L85 PathProgramCache]: Analyzing trace with hash -2121637878, now seen corresponding path program 10 times [2024-11-09 15:23:45,533 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:45,533 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [48950697] [2024-11-09 15:23:45,533 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:45,533 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:45,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:45,913 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 109 proven. 144 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2024-11-09 15:23:45,913 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:45,913 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [48950697] [2024-11-09 15:23:45,913 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [48950697] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:45,913 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1125592096] [2024-11-09 15:23:45,913 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2024-11-09 15:23:45,913 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:45,913 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:45,915 INFO L229 MonitoredProcess]: Starting monitored process 55 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:45,916 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (55)] Waiting until timeout for monitored process [2024-11-09 15:23:46,019 INFO L227 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2024-11-09 15:23:46,019 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:46,021 INFO L255 TraceCheckSpWp]: Trace formula consists of 349 conjuncts, 81 conjuncts are in the unsatisfiable core [2024-11-09 15:23:46,023 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:46,119 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:46,184 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 [2024-11-09 15:23:46,185 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 109 proven. 142 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2024-11-09 15:23:46,185 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:46,238 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 [2024-11-09 15:23:46,393 INFO L134 CoverageAnalysis]: Checked inductivity of 265 backedges. 109 proven. 142 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2024-11-09 15:23:46,394 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1125592096] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:46,394 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:46,394 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 16, 15] total 29 [2024-11-09 15:23:46,394 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [274891991] [2024-11-09 15:23:46,394 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:47,108 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:47,109 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2024-11-09 15:23:47,109 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=78, Invalid=734, Unknown=0, NotChecked=0, Total=812 [2024-11-09 15:23:47,109 INFO L87 Difference]: Start difference. First operand 480 states and 594 transitions. cyclomatic complexity: 135 Second operand has 29 states, 29 states have (on average 3.2758620689655173) internal successors, (95), 29 states have internal predecessors, (95), 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) [2024-11-09 15:23:47,432 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:47,433 INFO L93 Difference]: Finished difference Result 400 states and 487 transitions. [2024-11-09 15:23:47,433 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 400 states and 487 transitions. [2024-11-09 15:23:47,434 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 164 [2024-11-09 15:23:47,435 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 400 states to 302 states and 373 transitions. [2024-11-09 15:23:47,435 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 184 [2024-11-09 15:23:47,435 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 184 [2024-11-09 15:23:47,435 INFO L73 IsDeterministic]: Start isDeterministic. Operand 302 states and 373 transitions. [2024-11-09 15:23:47,435 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:47,435 INFO L218 hiAutomatonCegarLoop]: Abstraction has 302 states and 373 transitions. [2024-11-09 15:23:47,435 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 302 states and 373 transitions. [2024-11-09 15:23:47,437 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 302 to 238. [2024-11-09 15:23:47,438 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) [2024-11-09 15:23:47,438 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 238 states to 238 states and 293 transitions. [2024-11-09 15:23:47,438 INFO L240 hiAutomatonCegarLoop]: Abstraction has 238 states and 293 transitions. [2024-11-09 15:23:47,438 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2024-11-09 15:23:47,438 INFO L425 stractBuchiCegarLoop]: Abstraction has 238 states and 293 transitions. [2024-11-09 15:23:47,439 INFO L332 stractBuchiCegarLoop]: ======== Iteration 17 ============ [2024-11-09 15:23:47,439 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 238 states and 293 transitions. [2024-11-09 15:23:47,439 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 132 [2024-11-09 15:23:47,439 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:47,439 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:47,440 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 6, 4, 3, 1, 1, 1, 1, 1] [2024-11-09 15:23:47,440 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 6, 6, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:47,440 INFO L745 eck$LassoCheckResult]: Stem: 9946#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 9947#L-1 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; 9948#L531 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; 9949#L517 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); 9943#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9935#L511 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; 9936#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9940#L511-3 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; 10138#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10135#L511 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; 10136#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9956#L511-3 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; 9944#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9945#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9941#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9942#L511-3 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; 10147#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9938#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9939#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9987#L511-3 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; 9985#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9983#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9975#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9980#L511-3 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; 9978#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9974#L511 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; 9973#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9968#L511-3 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; 9965#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9961#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 9962#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 9970#L511-3 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; 10068#strrchr_returnLabel#1 [2024-11-09 15:23:47,440 INFO L747 eck$LassoCheckResult]: Loop: 10068#strrchr_returnLabel#1 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; 10067#L518 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); 10066#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 10065#L520 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); 10064#L517 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); 10062#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10059#L511 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; 10008#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10009#L511-3 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; 10000#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10001#L511 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; 10146#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10172#L511-3 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; 10171#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10170#L511 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; 10169#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10168#L511-3 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; 10166#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10164#L511 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; 10162#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10160#L511-3 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; 10158#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10156#L511 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; 10084#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10153#L511-3 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; 10151#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10083#L511 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; 10075#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10079#L511-3 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; 10070#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10074#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 10072#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 10069#L511-3 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; 10068#strrchr_returnLabel#1 [2024-11-09 15:23:47,440 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:47,440 INFO L85 PathProgramCache]: Analyzing trace with hash 2049317699, now seen corresponding path program 10 times [2024-11-09 15:23:47,440 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:47,440 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [626577221] [2024-11-09 15:23:47,440 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:47,440 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:47,450 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:47,450 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:47,454 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:47,456 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:47,456 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:47,456 INFO L85 PathProgramCache]: Analyzing trace with hash 662582518, now seen corresponding path program 11 times [2024-11-09 15:23:47,456 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:47,456 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1703386680] [2024-11-09 15:23:47,456 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:47,456 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:47,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:47,463 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:47,467 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:47,469 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:47,469 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:47,469 INFO L85 PathProgramCache]: Analyzing trace with hash 637012468, now seen corresponding path program 11 times [2024-11-09 15:23:47,469 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:47,469 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1319334102] [2024-11-09 15:23:47,469 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:47,469 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:47,482 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:48,047 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 74 proven. 289 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:48,047 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:48,047 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1319334102] [2024-11-09 15:23:48,048 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1319334102] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:48,048 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2072458285] [2024-11-09 15:23:48,048 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-11-09 15:23:48,048 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:48,048 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:48,053 INFO L229 MonitoredProcess]: Starting monitored process 56 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:48,057 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (56)] Waiting until timeout for monitored process [2024-11-09 15:23:48,164 INFO L227 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 8 check-sat command(s) [2024-11-09 15:23:48,164 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:48,166 INFO L255 TraceCheckSpWp]: Trace formula consists of 400 conjuncts, 103 conjuncts are in the unsatisfiable core [2024-11-09 15:23:48,168 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:48,498 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:23:48,940 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 75 proven. 286 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:48,940 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:49,166 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:23:49,166 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 133 treesize of output 103 [2024-11-09 15:23:49,673 INFO L134 CoverageAnalysis]: Checked inductivity of 365 backedges. 75 proven. 286 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:49,673 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2072458285] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:49,673 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:49,673 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [25, 23, 22] total 61 [2024-11-09 15:23:49,673 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [787074801] [2024-11-09 15:23:49,673 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:50,335 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:50,335 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 61 interpolants. [2024-11-09 15:23:50,336 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=215, Invalid=3445, Unknown=0, NotChecked=0, Total=3660 [2024-11-09 15:23:50,336 INFO L87 Difference]: Start difference. First operand 238 states and 293 transitions. cyclomatic complexity: 67 Second operand has 61 states, 61 states have (on average 2.6557377049180326) internal successors, (162), 61 states have internal predecessors, (162), 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) [2024-11-09 15:23:53,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:23:53,824 INFO L93 Difference]: Finished difference Result 836 states and 1013 transitions. [2024-11-09 15:23:53,824 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 836 states and 1013 transitions. [2024-11-09 15:23:53,826 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 618 [2024-11-09 15:23:53,829 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 836 states to 836 states and 1013 transitions. [2024-11-09 15:23:53,829 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 666 [2024-11-09 15:23:53,829 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 666 [2024-11-09 15:23:53,829 INFO L73 IsDeterministic]: Start isDeterministic. Operand 836 states and 1013 transitions. [2024-11-09 15:23:53,829 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:23:53,830 INFO L218 hiAutomatonCegarLoop]: Abstraction has 836 states and 1013 transitions. [2024-11-09 15:23:53,830 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 836 states and 1013 transitions. [2024-11-09 15:23:53,836 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 836 to 604. [2024-11-09 15:23:53,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 604 states, 604 states have (on average 1.228476821192053) internal successors, (742), 603 states have internal predecessors, (742), 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) [2024-11-09 15:23:53,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 604 states to 604 states and 742 transitions. [2024-11-09 15:23:53,838 INFO L240 hiAutomatonCegarLoop]: Abstraction has 604 states and 742 transitions. [2024-11-09 15:23:53,838 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 83 states. [2024-11-09 15:23:53,838 INFO L425 stractBuchiCegarLoop]: Abstraction has 604 states and 742 transitions. [2024-11-09 15:23:53,838 INFO L332 stractBuchiCegarLoop]: ======== Iteration 18 ============ [2024-11-09 15:23:53,838 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 604 states and 742 transitions. [2024-11-09 15:23:53,839 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 454 [2024-11-09 15:23:53,840 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:23:53,840 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:23:53,840 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 6, 4, 3, 1, 1, 1, 1, 1] [2024-11-09 15:23:53,840 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [8, 8, 7, 6, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:23:53,840 INFO L745 eck$LassoCheckResult]: Stem: 11610#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 11611#L-1 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; 11612#L531 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; 11613#L517 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); 11650#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11648#L511 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; 11649#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11665#L511-3 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; 11666#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11660#L511 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; 11661#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12036#L511-3 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; 12035#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12034#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 12032#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12030#L511-3 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; 12028#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12026#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 12024#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12022#L511-3 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; 12020#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12018#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 12016#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12010#L511-3 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; 12005#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11998#L511 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; 11984#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11989#L511-3 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; 11987#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11988#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 11745#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11746#L511-3 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; 11773#strrchr_returnLabel#1 [2024-11-09 15:23:53,840 INFO L747 eck$LassoCheckResult]: Loop: 11773#strrchr_returnLabel#1 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; 11840#L518 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); 11838#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 11835#L520 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); 11833#L517 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); 11830#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11828#L511 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; 11826#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11824#L511-3 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; 11819#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11815#L511 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; 11816#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11811#L511-3 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; 11812#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11808#L511 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; 11807#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11806#L511-3 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; 11805#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11804#L511 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; 11803#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11802#L511-3 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; 11801#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11800#L511 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; 11799#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11798#L511-3 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; 11797#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11796#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 11794#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11792#L511-3 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; 11790#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11730#L511 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; 11727#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 11728#L511-3 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; 12181#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12179#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 12177#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 12171#L511-3 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; 11773#strrchr_returnLabel#1 [2024-11-09 15:23:53,841 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:53,841 INFO L85 PathProgramCache]: Analyzing trace with hash 2049317699, now seen corresponding path program 11 times [2024-11-09 15:23:53,841 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:53,841 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [583981898] [2024-11-09 15:23:53,841 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:53,841 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:53,848 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:53,848 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:53,852 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:53,854 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:53,855 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:53,855 INFO L85 PathProgramCache]: Analyzing trace with hash -487713056, now seen corresponding path program 12 times [2024-11-09 15:23:53,855 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:53,855 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1103792686] [2024-11-09 15:23:53,855 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:53,855 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:53,862 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:53,862 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:23:53,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:23:53,868 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:23:53,868 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:23:53,868 INFO L85 PathProgramCache]: Analyzing trace with hash -1235665698, now seen corresponding path program 12 times [2024-11-09 15:23:53,868 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:23:53,869 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [328896163] [2024-11-09 15:23:53,869 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:23:53,869 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:23:53,882 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:23:54,416 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 105 proven. 312 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:23:54,417 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:23:54,417 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [328896163] [2024-11-09 15:23:54,417 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [328896163] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:23:54,418 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [230912905] [2024-11-09 15:23:54,418 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2024-11-09 15:23:54,418 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:23:54,418 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:23:54,420 INFO L229 MonitoredProcess]: Starting monitored process 57 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:23:54,421 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (57)] Waiting until timeout for monitored process [2024-11-09 15:23:54,547 INFO L227 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 8 check-sat command(s) [2024-11-09 15:23:54,547 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:23:54,550 INFO L255 TraceCheckSpWp]: Trace formula consists of 418 conjuncts, 121 conjuncts are in the unsatisfiable core [2024-11-09 15:23:54,552 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:23:54,690 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 [2024-11-09 15:23:55,061 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 81 proven. 338 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:55,062 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:23:55,904 INFO L349 Elim1Store]: treesize reduction 40, result has 50.6 percent of original size [2024-11-09 15:23:55,904 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 5 select indices, 5 select index equivalence classes, 0 disjoint index pairs (out of 10 index pairs), introduced 5 new quantified variables, introduced 10 case distinctions, treesize of input 264 treesize of output 246 [2024-11-09 15:23:56,631 INFO L134 CoverageAnalysis]: Checked inductivity of 421 backedges. 28 proven. 391 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:23:56,632 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [230912905] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:23:56,632 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:23:56,632 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 29, 29] total 65 [2024-11-09 15:23:56,632 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1327430761] [2024-11-09 15:23:56,632 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:23:57,411 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:23:57,411 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 65 interpolants. [2024-11-09 15:23:57,412 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=243, Invalid=3917, Unknown=0, NotChecked=0, Total=4160 [2024-11-09 15:23:57,412 INFO L87 Difference]: Start difference. First operand 604 states and 742 transitions. cyclomatic complexity: 158 Second operand has 65 states, 65 states have (on average 2.5076923076923077) internal successors, (163), 65 states have internal predecessors, (163), 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) [2024-11-09 15:24:03,566 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:03,567 INFO L93 Difference]: Finished difference Result 670 states and 783 transitions. [2024-11-09 15:24:03,567 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 670 states and 783 transitions. [2024-11-09 15:24:03,569 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 236 [2024-11-09 15:24:03,570 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 670 states to 446 states and 541 transitions. [2024-11-09 15:24:03,570 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 256 [2024-11-09 15:24:03,570 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 256 [2024-11-09 15:24:03,570 INFO L73 IsDeterministic]: Start isDeterministic. Operand 446 states and 541 transitions. [2024-11-09 15:24:03,571 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:03,571 INFO L218 hiAutomatonCegarLoop]: Abstraction has 446 states and 541 transitions. [2024-11-09 15:24:03,571 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 446 states and 541 transitions. [2024-11-09 15:24:03,574 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 446 to 270. [2024-11-09 15:24:03,574 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) [2024-11-09 15:24:03,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 270 states to 270 states and 333 transitions. [2024-11-09 15:24:03,575 INFO L240 hiAutomatonCegarLoop]: Abstraction has 270 states and 333 transitions. [2024-11-09 15:24:03,575 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 99 states. [2024-11-09 15:24:03,575 INFO L425 stractBuchiCegarLoop]: Abstraction has 270 states and 333 transitions. [2024-11-09 15:24:03,575 INFO L332 stractBuchiCegarLoop]: ======== Iteration 19 ============ [2024-11-09 15:24:03,575 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 270 states and 333 transitions. [2024-11-09 15:24:03,576 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 148 [2024-11-09 15:24:03,576 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:03,576 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:03,577 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 7, 5, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:03,577 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [8, 8, 7, 7, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:03,577 INFO L745 eck$LassoCheckResult]: Stem: 13532#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 13533#L-1 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; 13534#L531 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; 13535#L517 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); 13608#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13606#L511 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; 13607#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13602#L511-3 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; 13603#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13523#L511 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; 13524#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13542#L511-3 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; 13543#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13598#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13599#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13594#L511-3 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; 13595#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13590#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13591#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13586#L511-3 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; 13587#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13582#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13583#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13578#L511-3 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; 13579#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13574#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13575#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13710#L511-3 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; 13709#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13688#L511 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; 13685#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13683#L511-3 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; 13680#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13679#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13677#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13659#L511-3 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; 13656#strrchr_returnLabel#1 [2024-11-09 15:24:03,577 INFO L747 eck$LassoCheckResult]: Loop: 13656#strrchr_returnLabel#1 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; 13653#L518 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); 13651#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 13649#L520 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); 13647#L517 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); 13646#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13627#L511 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; 13526#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13527#L511-3 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; 13629#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13630#L511 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; 13746#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13745#L511-3 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; 13744#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13743#L511 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; 13742#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13741#L511-3 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; 13740#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13739#L511 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; 13738#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13737#L511-3 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; 13736#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13735#L511 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; 13734#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13733#L511-3 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; 13732#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13731#L511 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; 13703#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13570#L511-3 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; 13567#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13568#L511 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; 13696#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13556#L511-3 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; 13557#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13695#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 13693#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 13660#L511-3 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; 13656#strrchr_returnLabel#1 [2024-11-09 15:24:03,577 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:03,577 INFO L85 PathProgramCache]: Analyzing trace with hash 930090669, now seen corresponding path program 12 times [2024-11-09 15:24:03,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:03,578 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1666469067] [2024-11-09 15:24:03,578 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:03,578 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:03,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:03,585 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:03,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:03,593 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:03,593 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:03,593 INFO L85 PathProgramCache]: Analyzing trace with hash -1188777634, now seen corresponding path program 13 times [2024-11-09 15:24:03,593 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:03,593 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [748867149] [2024-11-09 15:24:03,594 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:03,594 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:03,600 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:03,601 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:03,604 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:03,607 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:03,607 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:03,607 INFO L85 PathProgramCache]: Analyzing trace with hash 1338416690, now seen corresponding path program 13 times [2024-11-09 15:24:03,607 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:03,607 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [262800011] [2024-11-09 15:24:03,608 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:03,608 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:03,620 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:04,220 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 87 proven. 392 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:24:04,220 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:04,220 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [262800011] [2024-11-09 15:24:04,221 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [262800011] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:04,221 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1897665231] [2024-11-09 15:24:04,221 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-11-09 15:24:04,221 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:04,221 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:04,226 INFO L229 MonitoredProcess]: Starting monitored process 58 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:04,227 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (58)] Waiting until timeout for monitored process [2024-11-09 15:24:04,344 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:04,346 INFO L255 TraceCheckSpWp]: Trace formula consists of 441 conjuncts, 101 conjuncts are in the unsatisfiable core [2024-11-09 15:24:04,348 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:04,604 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 [2024-11-09 15:24:04,962 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:04,963 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 [2024-11-09 15:24:04,987 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 87 proven. 390 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:04,987 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:05,171 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:05,171 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 [2024-11-09 15:24:05,713 INFO L134 CoverageAnalysis]: Checked inductivity of 481 backedges. 87 proven. 390 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:05,713 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1897665231] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:05,713 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:05,713 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 24, 24] total 63 [2024-11-09 15:24:05,713 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1250539358] [2024-11-09 15:24:05,713 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:06,531 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:06,532 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 63 interpolants. [2024-11-09 15:24:06,532 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=211, Invalid=3695, Unknown=0, NotChecked=0, Total=3906 [2024-11-09 15:24:06,533 INFO L87 Difference]: Start difference. First operand 270 states and 333 transitions. cyclomatic complexity: 75 Second operand has 63 states, 63 states have (on average 2.8095238095238093) internal successors, (177), 63 states have internal predecessors, (177), 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) [2024-11-09 15:24:10,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:10,653 INFO L93 Difference]: Finished difference Result 892 states and 1086 transitions. [2024-11-09 15:24:10,653 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 892 states and 1086 transitions. [2024-11-09 15:24:10,659 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 672 [2024-11-09 15:24:10,661 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 892 states to 892 states and 1086 transitions. [2024-11-09 15:24:10,661 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 720 [2024-11-09 15:24:10,662 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 720 [2024-11-09 15:24:10,662 INFO L73 IsDeterministic]: Start isDeterministic. Operand 892 states and 1086 transitions. [2024-11-09 15:24:10,662 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:10,662 INFO L218 hiAutomatonCegarLoop]: Abstraction has 892 states and 1086 transitions. [2024-11-09 15:24:10,667 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 892 states and 1086 transitions. [2024-11-09 15:24:10,684 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 892 to 726. [2024-11-09 15:24:10,685 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) [2024-11-09 15:24:10,686 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 726 states to 726 states and 897 transitions. [2024-11-09 15:24:10,689 INFO L240 hiAutomatonCegarLoop]: Abstraction has 726 states and 897 transitions. [2024-11-09 15:24:10,690 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 67 states. [2024-11-09 15:24:10,690 INFO L425 stractBuchiCegarLoop]: Abstraction has 726 states and 897 transitions. [2024-11-09 15:24:10,690 INFO L332 stractBuchiCegarLoop]: ======== Iteration 20 ============ [2024-11-09 15:24:10,691 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 726 states and 897 transitions. [2024-11-09 15:24:10,692 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 560 [2024-11-09 15:24:10,695 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:10,695 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:10,696 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 7, 5, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:10,696 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 8, 7, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:10,696 INFO L745 eck$LassoCheckResult]: Stem: 15299#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 15300#L-1 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; 15301#L531 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; 15302#L517 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); 15363#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15361#L511 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; 15359#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15360#L511-3 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; 15355#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15356#L511 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; 15609#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15608#L511-3 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; 15607#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15606#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15605#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15604#L511-3 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; 15603#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15602#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15601#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15600#L511-3 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; 15599#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15598#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15597#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15596#L511-3 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; 15595#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15594#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15593#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15592#L511-3 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; 15591#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15588#L511 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; 15587#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15537#L511-3 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; 15534#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15533#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15530#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15524#L511-3 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; 15496#strrchr_returnLabel#1 [2024-11-09 15:24:10,696 INFO L747 eck$LassoCheckResult]: Loop: 15496#strrchr_returnLabel#1 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; 15494#L518 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); 15492#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 15490#L520 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); 15488#L517 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); 15486#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15483#L511 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; 15479#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15480#L511-3 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; 15471#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15472#L511 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; 15586#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15585#L511-3 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; 15584#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15583#L511 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; 15582#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15581#L511-3 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; 15580#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15579#L511 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; 15578#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15577#L511-3 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; 15576#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15575#L511 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; 15574#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15572#L511-3 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; 15571#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15570#L511 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; 15568#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15566#L511-3 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; 15562#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15559#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15557#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15555#L511-3 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; 15552#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15549#L511 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; 15547#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15545#L511-3 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; 15543#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15540#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 15539#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 15525#L511-3 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; 15496#strrchr_returnLabel#1 [2024-11-09 15:24:10,698 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:10,698 INFO L85 PathProgramCache]: Analyzing trace with hash 930090669, now seen corresponding path program 13 times [2024-11-09 15:24:10,698 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:10,702 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1302847488] [2024-11-09 15:24:10,702 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:10,702 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:10,717 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:10,720 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:10,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:10,734 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:10,735 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:10,735 INFO L85 PathProgramCache]: Analyzing trace with hash 179314504, now seen corresponding path program 14 times [2024-11-09 15:24:10,735 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:10,735 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [750321841] [2024-11-09 15:24:10,735 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:10,735 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:10,749 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:10,752 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:10,756 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:10,762 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:10,766 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:10,766 INFO L85 PathProgramCache]: Analyzing trace with hash 1915191836, now seen corresponding path program 14 times [2024-11-09 15:24:10,767 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:10,767 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1321900846] [2024-11-09 15:24:10,767 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:10,767 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:10,791 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:11,322 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 121 proven. 420 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:11,322 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:11,322 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1321900846] [2024-11-09 15:24:11,322 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1321900846] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:11,322 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1482402913] [2024-11-09 15:24:11,322 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2024-11-09 15:24:11,322 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:11,323 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:11,324 INFO L229 MonitoredProcess]: Starting monitored process 59 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:11,325 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (59)] Waiting until timeout for monitored process [2024-11-09 15:24:11,447 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2024-11-09 15:24:11,448 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:24:11,450 INFO L255 TraceCheckSpWp]: Trace formula consists of 459 conjuncts, 100 conjuncts are in the unsatisfiable core [2024-11-09 15:24:11,452 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:11,613 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:24:11,773 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 [2024-11-09 15:24:11,774 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 121 proven. 418 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:24:11,774 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:11,839 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 [2024-11-09 15:24:12,155 INFO L134 CoverageAnalysis]: Checked inductivity of 545 backedges. 120 proven. 419 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:24:12,156 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1482402913] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:12,156 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:12,156 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 23, 23] total 44 [2024-11-09 15:24:12,156 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [785243727] [2024-11-09 15:24:12,156 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:13,057 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:13,057 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 44 interpolants. [2024-11-09 15:24:13,058 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=135, Invalid=1757, Unknown=0, NotChecked=0, Total=1892 [2024-11-09 15:24:13,058 INFO L87 Difference]: Start difference. First operand 726 states and 897 transitions. cyclomatic complexity: 191 Second operand has 44 states, 44 states have (on average 3.2954545454545454) internal successors, (145), 44 states have internal predecessors, (145), 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) [2024-11-09 15:24:13,886 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:13,886 INFO L93 Difference]: Finished difference Result 510 states and 613 transitions. [2024-11-09 15:24:13,886 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 510 states and 613 transitions. [2024-11-09 15:24:13,888 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 196 [2024-11-09 15:24:13,889 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 510 states to 366 states and 445 transitions. [2024-11-09 15:24:13,889 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 216 [2024-11-09 15:24:13,889 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 216 [2024-11-09 15:24:13,889 INFO L73 IsDeterministic]: Start isDeterministic. Operand 366 states and 445 transitions. [2024-11-09 15:24:13,889 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:13,889 INFO L218 hiAutomatonCegarLoop]: Abstraction has 366 states and 445 transitions. [2024-11-09 15:24:13,890 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 366 states and 445 transitions. [2024-11-09 15:24:13,892 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 366 to 302. [2024-11-09 15:24:13,893 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) [2024-11-09 15:24:13,893 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 302 states to 302 states and 373 transitions. [2024-11-09 15:24:13,893 INFO L240 hiAutomatonCegarLoop]: Abstraction has 302 states and 373 transitions. [2024-11-09 15:24:13,893 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2024-11-09 15:24:13,894 INFO L425 stractBuchiCegarLoop]: Abstraction has 302 states and 373 transitions. [2024-11-09 15:24:13,894 INFO L332 stractBuchiCegarLoop]: ======== Iteration 21 ============ [2024-11-09 15:24:13,894 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 302 states and 373 transitions. [2024-11-09 15:24:13,894 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 164 [2024-11-09 15:24:13,894 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:13,895 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:13,895 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 8, 6, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:13,895 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 8, 8, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:13,895 INFO L745 eck$LassoCheckResult]: Stem: 17059#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 17060#L-1 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; 17061#L531 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; 17062#L517 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); 17154#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17152#L511 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; 17151#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17150#L511-3 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; 17148#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17149#L511 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; 17271#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17331#L511-3 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; 17330#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17329#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17328#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17327#L511-3 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; 17326#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17325#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17324#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17323#L511-3 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; 17322#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17321#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17320#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17319#L511-3 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; 17318#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17317#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17316#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17315#L511-3 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; 17314#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17313#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17241#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17249#L511-3 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; 17211#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17212#L511 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; 17196#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17197#L511-3 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; 17191#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17192#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17185#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17186#L511-3 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; 17228#strrchr_returnLabel#1 [2024-11-09 15:24:13,895 INFO L747 eck$LassoCheckResult]: Loop: 17228#strrchr_returnLabel#1 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; 17227#L518 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); 17226#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 17225#L520 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); 17224#L517 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); 17223#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17176#L511 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; 17177#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17067#L511-3 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; 17068#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17213#L511 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; 17214#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17349#L511-3 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; 17348#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17347#L511 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; 17346#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17345#L511-3 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; 17344#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17343#L511 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; 17342#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17341#L511-3 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; 17340#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17339#L511 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; 17338#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17337#L511-3 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; 17336#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17335#L511 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; 17334#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17333#L511-3 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; 17332#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17155#L511 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; 17114#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17111#L511-3 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; 17108#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17109#L511 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; 17190#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17204#L511-3 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; 17205#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17189#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 17183#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 17184#L511-3 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; 17228#strrchr_returnLabel#1 [2024-11-09 15:24:13,896 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:13,896 INFO L85 PathProgramCache]: Analyzing trace with hash -1906426601, now seen corresponding path program 14 times [2024-11-09 15:24:13,896 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:13,896 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2016323748] [2024-11-09 15:24:13,896 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:13,896 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:13,904 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:13,904 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:13,907 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:13,910 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:13,910 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:13,910 INFO L85 PathProgramCache]: Analyzing trace with hash -521750074, now seen corresponding path program 15 times [2024-11-09 15:24:13,910 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:13,910 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2076466654] [2024-11-09 15:24:13,910 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:13,911 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:13,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:13,917 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:13,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:13,923 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:13,923 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:13,923 INFO L85 PathProgramCache]: Analyzing trace with hash 1420012912, now seen corresponding path program 15 times [2024-11-09 15:24:13,924 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:13,924 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2082088037] [2024-11-09 15:24:13,924 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:13,924 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:13,969 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:14,557 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 99 proven. 512 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:24:14,558 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:14,558 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2082088037] [2024-11-09 15:24:14,558 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2082088037] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:14,558 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [745283082] [2024-11-09 15:24:14,558 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-11-09 15:24:14,558 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:14,558 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:14,561 INFO L229 MonitoredProcess]: Starting monitored process 60 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:14,562 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (60)] Waiting until timeout for monitored process [2024-11-09 15:24:14,720 INFO L227 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2024-11-09 15:24:14,720 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:24:14,725 INFO L255 TraceCheckSpWp]: Trace formula consists of 482 conjuncts, 127 conjuncts are in the unsatisfiable core [2024-11-09 15:24:14,728 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:14,876 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:24:15,267 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:15,267 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 15 treesize of output 7 [2024-11-09 15:24:15,290 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 99 proven. 510 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:15,291 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:15,547 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:15,547 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 39 treesize of output 27 [2024-11-09 15:24:16,128 INFO L134 CoverageAnalysis]: Checked inductivity of 613 backedges. 109 proven. 500 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:16,128 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [745283082] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:16,128 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:16,129 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [28, 27, 26] total 58 [2024-11-09 15:24:16,129 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [870880684] [2024-11-09 15:24:16,129 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:17,026 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:17,027 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 58 interpolants. [2024-11-09 15:24:17,027 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=201, Invalid=3105, Unknown=0, NotChecked=0, Total=3306 [2024-11-09 15:24:17,028 INFO L87 Difference]: Start difference. First operand 302 states and 373 transitions. cyclomatic complexity: 83 Second operand has 58 states, 58 states have (on average 2.8793103448275863) internal successors, (167), 58 states have internal predecessors, (167), 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) [2024-11-09 15:24:19,573 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:19,573 INFO L93 Difference]: Finished difference Result 1270 states and 1541 transitions. [2024-11-09 15:24:19,573 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1270 states and 1541 transitions. [2024-11-09 15:24:19,576 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 952 [2024-11-09 15:24:19,587 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1270 states to 1270 states and 1541 transitions. [2024-11-09 15:24:19,587 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1000 [2024-11-09 15:24:19,588 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1000 [2024-11-09 15:24:19,588 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1270 states and 1541 transitions. [2024-11-09 15:24:19,592 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:19,593 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1270 states and 1541 transitions. [2024-11-09 15:24:19,593 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1270 states and 1541 transitions. [2024-11-09 15:24:19,604 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1270 to 734. [2024-11-09 15:24:19,607 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 734 states, 734 states have (on average 1.2329700272479565) internal successors, (905), 733 states have internal predecessors, (905), 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) [2024-11-09 15:24:19,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 734 states to 734 states and 905 transitions. [2024-11-09 15:24:19,608 INFO L240 hiAutomatonCegarLoop]: Abstraction has 734 states and 905 transitions. [2024-11-09 15:24:19,610 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 68 states. [2024-11-09 15:24:19,611 INFO L425 stractBuchiCegarLoop]: Abstraction has 734 states and 905 transitions. [2024-11-09 15:24:19,611 INFO L332 stractBuchiCegarLoop]: ======== Iteration 22 ============ [2024-11-09 15:24:19,611 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 734 states and 905 transitions. [2024-11-09 15:24:19,612 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 552 [2024-11-09 15:24:19,612 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:19,612 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:19,612 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 8, 6, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:19,613 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 9, 8, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:19,613 INFO L745 eck$LassoCheckResult]: Stem: 19280#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 19281#L-1 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; 19282#L531 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; 19283#L517 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); 19341#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19339#L511 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; 19337#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19338#L511-3 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; 19344#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19345#L511 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; 19684#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19683#L511-3 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; 19682#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19681#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19680#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19679#L511-3 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; 19678#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19675#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19672#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19641#L511-3 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; 19639#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19637#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19635#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19633#L511-3 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; 19631#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19629#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19627#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19625#L511-3 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; 19623#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19621#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19619#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19617#L511-3 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; 19615#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19611#L511 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; 19588#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19577#L511-3 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; 19573#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19571#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19569#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19548#L511-3 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; 19498#strrchr_returnLabel#1 [2024-11-09 15:24:19,613 INFO L747 eck$LassoCheckResult]: Loop: 19498#strrchr_returnLabel#1 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; 19496#L518 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); 19494#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 19477#L520 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); 19475#L517 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); 19473#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19470#L511 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; 19466#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19467#L511-3 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; 19458#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19459#L511 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; 19710#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19709#L511-3 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; 19708#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19707#L511 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; 19706#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19705#L511-3 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; 19704#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19703#L511 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; 19702#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19701#L511-3 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; 19700#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19699#L511 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; 19698#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19697#L511-3 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; 19696#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19695#L511 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; 19694#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19693#L511-3 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; 19692#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19691#L511 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; 19690#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19689#L511-3 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; 19688#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19687#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19686#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19603#L511-3 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; 19585#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19575#L511 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; 19572#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19570#L511-3 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; 19568#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19562#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 19563#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 19549#L511-3 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; 19498#strrchr_returnLabel#1 [2024-11-09 15:24:19,613 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:19,613 INFO L85 PathProgramCache]: Analyzing trace with hash -1906426601, now seen corresponding path program 15 times [2024-11-09 15:24:19,614 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:19,614 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1964228730] [2024-11-09 15:24:19,614 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:19,614 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:19,622 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:19,622 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:19,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:19,629 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:19,630 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:19,630 INFO L85 PathProgramCache]: Analyzing trace with hash -135810128, now seen corresponding path program 16 times [2024-11-09 15:24:19,630 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:19,630 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [817959753] [2024-11-09 15:24:19,630 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:19,630 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:19,637 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:19,638 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:19,642 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:19,645 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:19,645 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:19,645 INFO L85 PathProgramCache]: Analyzing trace with hash -1756446118, now seen corresponding path program 16 times [2024-11-09 15:24:19,645 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:19,646 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1835778829] [2024-11-09 15:24:19,646 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:19,646 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:19,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:20,214 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 544 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:20,215 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:20,215 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1835778829] [2024-11-09 15:24:20,215 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1835778829] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:20,215 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [376090577] [2024-11-09 15:24:20,215 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2024-11-09 15:24:20,215 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:20,216 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:20,219 INFO L229 MonitoredProcess]: Starting monitored process 61 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:20,222 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (61)] Waiting until timeout for monitored process [2024-11-09 15:24:20,362 INFO L227 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2024-11-09 15:24:20,362 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:24:20,365 INFO L255 TraceCheckSpWp]: Trace formula consists of 500 conjuncts, 95 conjuncts are in the unsatisfiable core [2024-11-09 15:24:20,367 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:20,653 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 [2024-11-09 15:24:20,730 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 542 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:24:20,730 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:20,778 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 [2024-11-09 15:24:20,876 INFO L134 CoverageAnalysis]: Checked inductivity of 685 backedges. 137 proven. 542 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2024-11-09 15:24:20,877 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [376090577] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:20,877 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:20,877 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [25, 23, 23] total 38 [2024-11-09 15:24:20,877 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [197689121] [2024-11-09 15:24:20,877 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:22,021 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:22,021 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2024-11-09 15:24:22,022 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=101, Invalid=1305, Unknown=0, NotChecked=0, Total=1406 [2024-11-09 15:24:22,022 INFO L87 Difference]: Start difference. First operand 734 states and 905 transitions. cyclomatic complexity: 191 Second operand has 38 states, 38 states have (on average 3.3947368421052633) internal successors, (129), 38 states have internal predecessors, (129), 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) [2024-11-09 15:24:23,087 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:23,087 INFO L93 Difference]: Finished difference Result 558 states and 673 transitions. [2024-11-09 15:24:23,087 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 558 states and 673 transitions. [2024-11-09 15:24:23,088 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 212 [2024-11-09 15:24:23,089 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 558 states to 398 states and 485 transitions. [2024-11-09 15:24:23,089 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 232 [2024-11-09 15:24:23,090 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 232 [2024-11-09 15:24:23,090 INFO L73 IsDeterministic]: Start isDeterministic. Operand 398 states and 485 transitions. [2024-11-09 15:24:23,090 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:23,090 INFO L218 hiAutomatonCegarLoop]: Abstraction has 398 states and 485 transitions. [2024-11-09 15:24:23,090 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 398 states and 485 transitions. [2024-11-09 15:24:23,093 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 398 to 334. [2024-11-09 15:24:23,093 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) [2024-11-09 15:24:23,094 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 413 transitions. [2024-11-09 15:24:23,094 INFO L240 hiAutomatonCegarLoop]: Abstraction has 334 states and 413 transitions. [2024-11-09 15:24:23,094 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2024-11-09 15:24:23,094 INFO L425 stractBuchiCegarLoop]: Abstraction has 334 states and 413 transitions. [2024-11-09 15:24:23,094 INFO L332 stractBuchiCegarLoop]: ======== Iteration 23 ============ [2024-11-09 15:24:23,094 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 334 states and 413 transitions. [2024-11-09 15:24:23,095 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 180 [2024-11-09 15:24:23,095 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:23,095 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:23,095 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 9, 7, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:23,095 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 9, 9, 1, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:23,096 INFO L745 eck$LassoCheckResult]: Stem: 21141#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 21142#L-1 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; 21143#L531 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; 21144#L517 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); 21215#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21213#L511 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; 21214#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21209#L511-3 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; 21210#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21130#L511 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; 21131#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21417#L511-3 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; 21416#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21415#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21414#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21413#L511-3 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; 21412#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21411#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21410#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21409#L511-3 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; 21408#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21407#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21406#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21405#L511-3 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; 21404#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21403#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21402#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21401#L511-3 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; 21400#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21399#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21398#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21397#L511-3 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; 21396#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21395#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21306#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21320#L511-3 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; 21319#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21305#L511 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; 21304#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21302#L511-3 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; 21159#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21160#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21279#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21267#L511-3 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; 21263#strrchr_returnLabel#1 [2024-11-09 15:24:23,096 INFO L747 eck$LassoCheckResult]: Loop: 21263#strrchr_returnLabel#1 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; 21261#L518 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); 21259#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 21257#L520 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); 21246#L517 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); 21247#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21272#L511 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; 21273#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21244#L511-3 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; 21245#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21240#L511 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; 21241#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21239#L511-3 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; 21238#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21237#L511 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; 21236#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21235#L511-3 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; 21234#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21233#L511 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; 21232#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21231#L511-3 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; 21230#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21229#L511 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; 21228#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21227#L511-3 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; 21226#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21225#L511 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; 21224#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21223#L511-3 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; 21222#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21221#L511 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; 21220#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21219#L511-3 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; 21217#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21218#L511 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; 21298#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21181#L511-3 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; 21178#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21179#L511 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; 21276#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21297#L511-3 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; 21266#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21275#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 21271#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 21265#L511-3 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; 21263#strrchr_returnLabel#1 [2024-11-09 15:24:23,096 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:23,096 INFO L85 PathProgramCache]: Analyzing trace with hash 1281042049, now seen corresponding path program 16 times [2024-11-09 15:24:23,096 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:23,096 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [31174684] [2024-11-09 15:24:23,096 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:23,097 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:23,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:23,104 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:23,108 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:23,111 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:23,111 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:23,111 INFO L85 PathProgramCache]: Analyzing trace with hash -836874706, now seen corresponding path program 17 times [2024-11-09 15:24:23,111 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:23,111 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [403497295] [2024-11-09 15:24:23,111 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:23,111 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:23,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:23,118 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:23,122 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:23,124 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:23,124 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:23,124 INFO L85 PathProgramCache]: Analyzing trace with hash -730875986, now seen corresponding path program 17 times [2024-11-09 15:24:23,124 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:23,125 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2099765207] [2024-11-09 15:24:23,125 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:23,125 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:23,138 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:23,786 INFO L134 CoverageAnalysis]: Checked inductivity of 761 backedges. 111 proven. 648 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:24:23,786 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:23,786 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2099765207] [2024-11-09 15:24:23,786 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2099765207] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:23,786 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [546998686] [2024-11-09 15:24:23,786 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-11-09 15:24:23,787 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:23,787 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:23,788 INFO L229 MonitoredProcess]: Starting monitored process 62 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:23,789 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (62)] Waiting until timeout for monitored process [2024-11-09 15:24:23,939 INFO L227 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 11 check-sat command(s) [2024-11-09 15:24:23,940 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:24:23,943 INFO L255 TraceCheckSpWp]: Trace formula consists of 523 conjuncts, 131 conjuncts are in the unsatisfiable core [2024-11-09 15:24:23,946 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:24,077 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2024-11-09 15:24:24,496 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:24,496 INFO L378 Elim1Store]: Elim1 eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 30 treesize of output 14 [2024-11-09 15:24:24,515 INFO L134 CoverageAnalysis]: Checked inductivity of 761 backedges. 111 proven. 646 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:24,516 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:24,934 INFO L349 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2024-11-09 15:24:24,934 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 235 treesize of output 181 [2024-11-09 15:24:25,717 INFO L134 CoverageAnalysis]: Checked inductivity of 761 backedges. 115 proven. 642 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:25,717 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [546998686] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:25,718 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:25,718 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [30, 31, 30] total 69 [2024-11-09 15:24:25,718 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1050822983] [2024-11-09 15:24:25,718 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:26,590 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:26,590 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 69 interpolants. [2024-11-09 15:24:26,591 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=255, Invalid=4437, Unknown=0, NotChecked=0, Total=4692 [2024-11-09 15:24:26,592 INFO L87 Difference]: Start difference. First operand 334 states and 413 transitions. cyclomatic complexity: 91 Second operand has 69 states, 69 states have (on average 2.898550724637681) internal successors, (200), 69 states have internal predecessors, (200), 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) [2024-11-09 15:24:33,808 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-11-09 15:24:33,809 INFO L93 Difference]: Finished difference Result 1582 states and 1939 transitions. [2024-11-09 15:24:33,809 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1582 states and 1939 transitions. [2024-11-09 15:24:33,812 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 1232 [2024-11-09 15:24:33,816 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1582 states to 1582 states and 1939 transitions. [2024-11-09 15:24:33,816 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1280 [2024-11-09 15:24:33,817 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1280 [2024-11-09 15:24:33,817 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1582 states and 1939 transitions. [2024-11-09 15:24:33,817 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2024-11-09 15:24:33,817 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1582 states and 1939 transitions. [2024-11-09 15:24:33,818 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1582 states and 1939 transitions. [2024-11-09 15:24:33,826 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1582 to 906. [2024-11-09 15:24:33,827 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 906 states, 906 states have (on average 1.239514348785872) internal successors, (1123), 905 states have internal predecessors, (1123), 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) [2024-11-09 15:24:33,828 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 906 states to 906 states and 1123 transitions. [2024-11-09 15:24:33,828 INFO L240 hiAutomatonCegarLoop]: Abstraction has 906 states and 1123 transitions. [2024-11-09 15:24:33,828 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 135 states. [2024-11-09 15:24:33,829 INFO L425 stractBuchiCegarLoop]: Abstraction has 906 states and 1123 transitions. [2024-11-09 15:24:33,829 INFO L332 stractBuchiCegarLoop]: ======== Iteration 24 ============ [2024-11-09 15:24:33,829 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 906 states and 1123 transitions. [2024-11-09 15:24:33,830 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 708 [2024-11-09 15:24:33,830 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-11-09 15:24:33,830 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-11-09 15:24:33,830 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 9, 7, 3, 1, 1, 1, 1, 1] [2024-11-09 15:24:33,830 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [11, 11, 10, 9, 2, 1, 1, 1, 1, 1, 1] [2024-11-09 15:24:33,831 INFO L745 eck$LassoCheckResult]: Stem: 23896#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier; 23897#L-1 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; 23898#L531 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; 23899#L517 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); 23963#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 23961#L511 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; 23962#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 23968#L511-3 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; 23969#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 23964#L511 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; 23965#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24496#L511-3 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; 24495#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24494#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24492#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24490#L511-3 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; 24488#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24486#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24484#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24482#L511-3 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; 24480#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24477#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24461#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24458#L511-3 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; 24436#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24434#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24432#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24430#L511-3 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; 24428#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24426#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24417#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24413#L511-3 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; 24409#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24406#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24403#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24400#L511-3 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; 24397#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 23923#L511 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; 23924#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24188#L511-3 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; 24304#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24305#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24587#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24579#L511-3 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; 24307#strrchr_returnLabel#1 [2024-11-09 15:24:33,831 INFO L747 eck$LassoCheckResult]: Loop: 24307#strrchr_returnLabel#1 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; 24566#L518 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); 24564#L519 assume 0 == basename_#t~mem6#1;havoc basename_#t~mem6#1; 24117#L520 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); 24114#L517 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); 24110#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24111#L511 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; 24556#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24576#L511-3 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; 24575#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24574#L511 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; 24572#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24573#L511-3 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; 24568#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24569#L511 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; 24658#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24657#L511-3 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; 24656#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24655#L511 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; 24654#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24653#L511-3 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; 24652#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24651#L511 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; 24650#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24649#L511-3 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; 24648#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24647#L511 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; 24646#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24645#L511-3 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; 24644#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24643#L511 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; 24642#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24641#L511-3 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; 24640#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24639#L511 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; 24638#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24617#L511-3 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; 24615#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24614#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24613#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24612#L511-3 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; 24611#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24603#L511 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; 24601#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24600#L511-3 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; 24596#L510-1 call strrchr_#t~mem2#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24593#L511 assume !(strrchr_#t~mem2#1 == strrchr_~ch~0#1);havoc strrchr_#t~mem2#1; 24591#L511-2 call strrchr_#t~mem3#1 := read~int#0(strrchr_~t#1.base, strrchr_~t#1.offset, 1); 24584#L511-3 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; 24307#strrchr_returnLabel#1 [2024-11-09 15:24:33,831 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:33,831 INFO L85 PathProgramCache]: Analyzing trace with hash 1281042049, now seen corresponding path program 17 times [2024-11-09 15:24:33,831 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:33,832 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [264419671] [2024-11-09 15:24:33,832 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:33,832 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:33,839 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:33,839 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:33,844 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:33,847 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:33,847 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:33,847 INFO L85 PathProgramCache]: Analyzing trace with hash -1662069736, now seen corresponding path program 18 times [2024-11-09 15:24:33,847 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:33,847 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1171777330] [2024-11-09 15:24:33,848 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:33,848 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:33,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:33,855 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-11-09 15:24:33,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-11-09 15:24:33,862 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-11-09 15:24:33,863 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-11-09 15:24:33,863 INFO L85 PathProgramCache]: Analyzing trace with hash -512787048, now seen corresponding path program 18 times [2024-11-09 15:24:33,863 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-11-09 15:24:33,863 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [508539662] [2024-11-09 15:24:33,863 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-11-09 15:24:33,863 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-11-09 15:24:33,877 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-11-09 15:24:34,483 INFO L134 CoverageAnalysis]: Checked inductivity of 841 backedges. 153 proven. 684 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:34,483 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-11-09 15:24:34,483 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [508539662] [2024-11-09 15:24:34,483 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [508539662] provided 0 perfect and 1 imperfect interpolant sequences [2024-11-09 15:24:34,483 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1730384255] [2024-11-09 15:24:34,483 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2024-11-09 15:24:34,483 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-11-09 15:24:34,484 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-11-09 15:24:34,485 INFO L229 MonitoredProcess]: Starting monitored process 63 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-11-09 15:24:34,486 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (63)] Waiting until timeout for monitored process [2024-11-09 15:24:34,674 INFO L227 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2024-11-09 15:24:34,674 INFO L228 tOrderPrioritization]: Conjunction of SSA is unsat [2024-11-09 15:24:34,680 INFO L255 TraceCheckSpWp]: Trace formula consists of 541 conjuncts, 139 conjuncts are in the unsatisfiable core [2024-11-09 15:24:34,683 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-11-09 15:24:34,898 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 [2024-11-09 15:24:35,476 INFO L134 CoverageAnalysis]: Checked inductivity of 841 backedges. 117 proven. 720 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2024-11-09 15:24:35,476 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-11-09 15:24:36,397 INFO L349 Elim1Store]: treesize reduction 31, result has 48.3 percent of original size [2024-11-09 15:24:36,397 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 176 treesize of output 164 [2024-11-09 15:24:37,200 INFO L134 CoverageAnalysis]: Checked inductivity of 841 backedges. 29 proven. 810 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2024-11-09 15:24:37,200 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1730384255] provided 0 perfect and 2 imperfect interpolant sequences [2024-11-09 15:24:37,200 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-11-09 15:24:37,200 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [27, 32, 33] total 76 [2024-11-09 15:24:37,201 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1799611269] [2024-11-09 15:24:37,201 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-11-09 15:24:38,388 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-11-09 15:24:38,389 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 76 interpolants. [2024-11-09 15:24:38,390 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=255, Invalid=5445, Unknown=0, NotChecked=0, Total=5700 [2024-11-09 15:24:38,391 INFO L87 Difference]: Start difference. First operand 906 states and 1123 transitions. cyclomatic complexity: 237 Second operand has 76 states, 76 states have (on average 2.960526315789474) internal successors, (225), 76 states have internal predecessors, (225), 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)