./Ultimate.py --spec /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/properties/termination.prp --file /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/array-examples/sanfoundry_24-1.i --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for termination Using default analysis Version 84cfde4a Calling Ultimate with: /root/.sdkman/candidates/java/current/bin/java -Dosgi.configuration.area=/storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/array-examples/sanfoundry_24-1.i -s /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(F end) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash e0a16588b251f5de7b3febde43795c7086835cc989637b8bd82aa8d6af355c6b --- Real Ultimate output --- This is Ultimate 0.2.5-dev-84cfde4 [2024-10-12 00:22:40,336 INFO L188 SettingsManager]: Resetting all preferences to default values... [2024-10-12 00:22:40,383 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-32bit-Automizer_Default.epf [2024-10-12 00:22:40,387 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2024-10-12 00:22:40,388 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2024-10-12 00:22:40,407 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2024-10-12 00:22:40,407 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2024-10-12 00:22:40,408 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2024-10-12 00:22:40,408 INFO L151 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2024-10-12 00:22:40,409 INFO L153 SettingsManager]: * Use memory slicer=true [2024-10-12 00:22:40,409 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2024-10-12 00:22:40,410 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2024-10-12 00:22:40,410 INFO L153 SettingsManager]: * Use SBE=true [2024-10-12 00:22:40,410 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2024-10-12 00:22:40,411 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2024-10-12 00:22:40,411 INFO L153 SettingsManager]: * Use old map elimination=false [2024-10-12 00:22:40,412 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2024-10-12 00:22:40,412 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2024-10-12 00:22:40,412 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2024-10-12 00:22:40,440 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2024-10-12 00:22:40,441 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2024-10-12 00:22:40,441 INFO L153 SettingsManager]: * sizeof long=4 [2024-10-12 00:22:40,442 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2024-10-12 00:22:40,442 INFO L153 SettingsManager]: * sizeof POINTER=4 [2024-10-12 00:22:40,442 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2024-10-12 00:22:40,442 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2024-10-12 00:22:40,443 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2024-10-12 00:22:40,443 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2024-10-12 00:22:40,443 INFO L153 SettingsManager]: * Allow undefined functions=false [2024-10-12 00:22:40,444 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2024-10-12 00:22:40,444 INFO L153 SettingsManager]: * sizeof long double=12 [2024-10-12 00:22:40,444 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2024-10-12 00:22:40,445 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2024-10-12 00:22:40,445 INFO L153 SettingsManager]: * Use constant arrays=true [2024-10-12 00:22:40,445 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2024-10-12 00:22:40,446 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2024-10-12 00:22:40,446 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2024-10-12 00:22:40,446 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2024-10-12 00:22:40,447 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2024-10-12 00:22:40,447 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-clean/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-clean/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(F end) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> e0a16588b251f5de7b3febde43795c7086835cc989637b8bd82aa8d6af355c6b [2024-10-12 00:22:40,716 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2024-10-12 00:22:40,753 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2024-10-12 00:22:40,758 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2024-10-12 00:22:40,759 INFO L270 PluginConnector]: Initializing CDTParser... [2024-10-12 00:22:40,760 INFO L274 PluginConnector]: CDTParser initialized [2024-10-12 00:22:40,762 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/array-examples/sanfoundry_24-1.i [2024-10-12 00:22:42,622 INFO L533 CDTParser]: Created temporary CDT project at NULL [2024-10-12 00:22:42,856 INFO L384 CDTParser]: Found 1 translation units. [2024-10-12 00:22:42,856 INFO L180 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/array-examples/sanfoundry_24-1.i [2024-10-12 00:22:42,866 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/data/6ab2e5a1b/b7e215caccad46618afa7314b47f8674/FLAG205d38d55 [2024-10-12 00:22:42,884 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/data/6ab2e5a1b/b7e215caccad46618afa7314b47f8674 [2024-10-12 00:22:42,888 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2024-10-12 00:22:42,890 INFO L133 ToolchainWalker]: Walking toolchain with 6 elements. [2024-10-12 00:22:42,895 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2024-10-12 00:22:42,895 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2024-10-12 00:22:42,901 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2024-10-12 00:22:42,902 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 12.10 12:22:42" (1/1) ... [2024-10-12 00:22:42,903 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@5f4fcb75 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:42, skipping insertion in model container [2024-10-12 00:22:42,903 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 12.10 12:22:42" (1/1) ... [2024-10-12 00:22:42,927 INFO L175 MainTranslator]: Built tables and reachable declarations [2024-10-12 00:22:43,159 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-10-12 00:22:43,173 INFO L200 MainTranslator]: Completed pre-run [2024-10-12 00:22:43,201 INFO L210 PostProcessor]: Analyzing one entry point: main [2024-10-12 00:22:43,220 INFO L204 MainTranslator]: Completed translation [2024-10-12 00:22:43,220 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43 WrapperNode [2024-10-12 00:22:43,221 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2024-10-12 00:22:43,222 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2024-10-12 00:22:43,222 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2024-10-12 00:22:43,222 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2024-10-12 00:22:43,229 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,241 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,272 INFO L138 Inliner]: procedures = 18, calls = 19, calls flagged for inlining = 7, calls inlined = 8, statements flattened = 78 [2024-10-12 00:22:43,272 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2024-10-12 00:22:43,273 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2024-10-12 00:22:43,273 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2024-10-12 00:22:43,273 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2024-10-12 00:22:43,290 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,290 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,292 INFO L184 PluginConnector]: Executing the observer MemorySlicer from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,308 INFO L175 MemorySlicer]: Split 7 memory accesses to 2 slices as follows [2, 5]. 71 percent of accesses are in the largest equivalence class. The 2 initializations are split as follows [2, 0]. The 1 writes are split as follows [0, 1]. [2024-10-12 00:22:43,308 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,309 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,315 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,319 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,320 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,321 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,323 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2024-10-12 00:22:43,324 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2024-10-12 00:22:43,324 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2024-10-12 00:22:43,324 INFO L274 PluginConnector]: RCFGBuilder initialized [2024-10-12 00:22:43,325 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (1/1) ... [2024-10-12 00:22:43,331 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:43,342 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:43,367 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:43,378 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2024-10-12 00:22:43,430 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#0 [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int#1 [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#0 [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure write~int#1 [2024-10-12 00:22:43,431 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2024-10-12 00:22:43,432 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2024-10-12 00:22:43,432 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#0 [2024-10-12 00:22:43,432 INFO L130 BoogieDeclarations]: Found specification of procedure read~int#1 [2024-10-12 00:22:43,432 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2024-10-12 00:22:43,510 INFO L238 CfgBuilder]: Building ICFG [2024-10-12 00:22:43,514 INFO L264 CfgBuilder]: Building CFG for each procedure with an implementation [2024-10-12 00:22:43,728 INFO L? ?]: Removed 18 outVars from TransFormulas that were not future-live. [2024-10-12 00:22:43,729 INFO L287 CfgBuilder]: Performing block encoding [2024-10-12 00:22:43,746 INFO L309 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2024-10-12 00:22:43,747 INFO L314 CfgBuilder]: Removed 3 assume(true) statements. [2024-10-12 00:22:43,747 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 12.10 12:22:43 BoogieIcfgContainer [2024-10-12 00:22:43,747 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2024-10-12 00:22:43,749 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2024-10-12 00:22:43,749 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2024-10-12 00:22:43,753 INFO L274 PluginConnector]: BuchiAutomizer initialized [2024-10-12 00:22:43,753 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-10-12 00:22:43,754 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 12.10 12:22:42" (1/3) ... [2024-10-12 00:22:43,755 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@57f0851d and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 12.10 12:22:43, skipping insertion in model container [2024-10-12 00:22:43,755 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-10-12 00:22:43,756 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 12.10 12:22:43" (2/3) ... [2024-10-12 00:22:43,756 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@57f0851d and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 12.10 12:22:43, skipping insertion in model container [2024-10-12 00:22:43,756 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-10-12 00:22:43,757 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 12.10 12:22:43" (3/3) ... [2024-10-12 00:22:43,759 INFO L332 chiAutomizerObserver]: Analyzing ICFG sanfoundry_24-1.i [2024-10-12 00:22:43,816 INFO L300 stractBuchiCegarLoop]: Interprodecural is true [2024-10-12 00:22:43,816 INFO L301 stractBuchiCegarLoop]: Hoare is None [2024-10-12 00:22:43,817 INFO L302 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2024-10-12 00:22:43,817 INFO L303 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2024-10-12 00:22:43,817 INFO L304 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2024-10-12 00:22:43,817 INFO L305 stractBuchiCegarLoop]: Difference is false [2024-10-12 00:22:43,817 INFO L306 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2024-10-12 00:22:43,818 INFO L310 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2024-10-12 00:22:43,822 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 28 states, 27 states have (on average 1.4444444444444444) internal successors, (39), 27 states have internal predecessors, (39), 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-10-12 00:22:43,841 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 20 [2024-10-12 00:22:43,843 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:43,843 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:43,848 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2024-10-12 00:22:43,848 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1] [2024-10-12 00:22:43,848 INFO L332 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2024-10-12 00:22:43,849 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 28 states, 27 states have (on average 1.4444444444444444) internal successors, (39), 27 states have internal predecessors, (39), 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-10-12 00:22:43,853 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 20 [2024-10-12 00:22:43,854 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:43,854 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:43,855 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1] [2024-10-12 00:22:43,855 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1] [2024-10-12 00:22:43,863 INFO L745 eck$LassoCheckResult]: Stem: 27#$Ultimate##0true assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 4#L-1true assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 28#L27-3true [2024-10-12 00:22:43,863 INFO L747 eck$LassoCheckResult]: Loop: 28#L27-3true assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5#L27-2true main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 28#L27-3true [2024-10-12 00:22:43,870 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:43,871 INFO L85 PathProgramCache]: Analyzing trace with hash 963, now seen corresponding path program 1 times [2024-10-12 00:22:43,884 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:43,885 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1049123153] [2024-10-12 00:22:43,885 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:43,886 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:43,976 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:43,976 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:43,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:44,004 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:44,007 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:44,008 INFO L85 PathProgramCache]: Analyzing trace with hash 1283, now seen corresponding path program 1 times [2024-10-12 00:22:44,008 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:44,008 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1802028894] [2024-10-12 00:22:44,008 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:44,009 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:44,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:44,023 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:44,029 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:44,031 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:44,032 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:44,033 INFO L85 PathProgramCache]: Analyzing trace with hash 925765, now seen corresponding path program 1 times [2024-10-12 00:22:44,033 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:44,033 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [785647984] [2024-10-12 00:22:44,033 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:44,033 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:44,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:44,110 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:44,122 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:44,125 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:44,537 INFO L204 LassoAnalysis]: Preferences: [2024-10-12 00:22:44,537 INFO L125 ssoRankerPreferences]: Compute integeral hull: false [2024-10-12 00:22:44,537 INFO L126 ssoRankerPreferences]: Enable LassoPartitioneer: true [2024-10-12 00:22:44,538 INFO L127 ssoRankerPreferences]: Term annotations enabled: false [2024-10-12 00:22:44,538 INFO L128 ssoRankerPreferences]: Use exernal solver: false [2024-10-12 00:22:44,538 INFO L129 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:44,538 INFO L130 ssoRankerPreferences]: Dump SMT script to file: false [2024-10-12 00:22:44,539 INFO L131 ssoRankerPreferences]: Path of dumped script: [2024-10-12 00:22:44,539 INFO L132 ssoRankerPreferences]: Filename of dumped script: sanfoundry_24-1.i_Iteration1_Lasso [2024-10-12 00:22:44,540 INFO L133 ssoRankerPreferences]: MapElimAlgo: Frank [2024-10-12 00:22:44,540 INFO L241 LassoAnalysis]: Starting lasso preprocessing... [2024-10-12 00:22:44,560 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,569 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,590 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,594 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,598 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,603 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,606 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,790 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,794 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,797 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,800 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:44,803 INFO L118 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2024-10-12 00:22:45,006 INFO L259 LassoAnalysis]: Preprocessing complete. [2024-10-12 00:22:45,009 INFO L451 LassoAnalysis]: Using template 'affine'. [2024-10-12 00:22:45,011 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,011 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,015 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,023 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (2)] Waiting until timeout for monitored process [2024-10-12 00:22:45,024 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-10-12 00:22:45,038 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,038 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-10-12 00:22:45,039 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,040 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,040 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,042 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-10-12 00:22:45,042 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-10-12 00:22:45,046 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,061 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (2)] Ended with exit code 0 [2024-10-12 00:22:45,063 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,063 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,066 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,072 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Waiting until timeout for monitored process [2024-10-12 00:22:45,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-10-12 00:22:45,089 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,089 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,089 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,089 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,093 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-10-12 00:22:45,093 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-10-12 00:22:45,097 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,113 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,114 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,115 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,117 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,122 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Waiting until timeout for monitored process [2024-10-12 00:22:45,126 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-10-12 00:22:45,139 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,139 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,139 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,139 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,143 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-10-12 00:22:45,143 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-10-12 00:22:45,148 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,163 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,164 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,164 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,167 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,169 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Waiting until timeout for monitored process [2024-10-12 00:22:45,171 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-10-12 00:22:45,185 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,186 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-10-12 00:22:45,186 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,186 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,187 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,188 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-10-12 00:22:45,189 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-10-12 00:22:45,193 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,208 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,209 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,210 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,215 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,222 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Waiting until timeout for monitored process [2024-10-12 00:22:45,223 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-10-12 00:22:45,235 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,236 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-10-12 00:22:45,236 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,236 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,236 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,237 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-10-12 00:22:45,237 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-10-12 00:22:45,238 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,253 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,253 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,253 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,256 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,257 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Waiting until timeout for monitored process [2024-10-12 00:22:45,258 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-10-12 00:22:45,271 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,271 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-10-12 00:22:45,271 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,271 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,271 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,272 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-10-12 00:22:45,272 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-10-12 00:22:45,274 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,290 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Ended with exit code 0 [2024-10-12 00:22:45,290 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,291 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,293 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,294 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Waiting until timeout for monitored process [2024-10-12 00:22:45,295 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-10-12 00:22:45,308 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,308 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2024-10-12 00:22:45,309 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,309 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,309 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,309 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2024-10-12 00:22:45,310 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2024-10-12 00:22:45,313 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,332 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (8)] Ended with exit code 0 [2024-10-12 00:22:45,332 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,333 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,335 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,337 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Waiting until timeout for monitored process [2024-10-12 00:22:45,338 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-10-12 00:22:45,351 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,351 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,351 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,351 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,353 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-10-12 00:22:45,353 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-10-12 00:22:45,357 INFO L488 LassoAnalysis]: Proving termination failed for this template and these settings. [2024-10-12 00:22:45,377 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (9)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,377 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,378 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,379 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,381 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Waiting until timeout for monitored process [2024-10-12 00:22:45,381 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-10-12 00:22:45,395 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2024-10-12 00:22:45,395 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2024-10-12 00:22:45,395 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2024-10-12 00:22:45,395 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2024-10-12 00:22:45,400 INFO L401 nArgumentSynthesizer]: We have 6 Motzkin's Theorem applications. [2024-10-12 00:22:45,401 INFO L402 nArgumentSynthesizer]: A total of 2 supporting invariants were added. [2024-10-12 00:22:45,410 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2024-10-12 00:22:45,430 INFO L443 ModelExtractionUtils]: Simplification made 7 calls to the SMT solver. [2024-10-12 00:22:45,430 INFO L444 ModelExtractionUtils]: 5 out of 16 variables were initially zero. Simplification set additionally 7 variables to zero. [2024-10-12 00:22:45,432 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-10-12 00:22:45,432 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:45,453 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-10-12 00:22:45,468 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Waiting until timeout for monitored process [2024-10-12 00:22:45,469 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2024-10-12 00:22:45,485 INFO L438 nArgumentSynthesizer]: Removed 2 redundant supporting invariants from a total of 2. [2024-10-12 00:22:45,485 INFO L474 LassoAnalysis]: Proved termination. [2024-10-12 00:22:45,486 INFO L476 LassoAnalysis]: Termination argument consisting of: Ranking function f(v_rep(select #length ULTIMATE.start_main_~#array~0#1.base)_1, ULTIMATE.start_main_~i~0#1, ULTIMATE.start_main_~#array~0#1.offset) = 1*v_rep(select #length ULTIMATE.start_main_~#array~0#1.base)_1 - 4*ULTIMATE.start_main_~i~0#1 - 1*ULTIMATE.start_main_~#array~0#1.offset Supporting invariants [] [2024-10-12 00:22:45,502 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (10)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:45,533 INFO L156 tatePredicateManager]: 4 out of 4 supporting invariants were superfluous and have been removed [2024-10-12 00:22:45,540 WARN L953 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: #length [2024-10-12 00:22:45,541 WARN L953 BoogieBacktranslator]: Unfinished Backtranslation: Cannot backtranslate array access to array IdentifierExpression[#length,GLOBAL] [2024-10-12 00:22:45,542 WARN L953 BoogieBacktranslator]: Unfinished Backtranslation: Unknown variable: ~#array~0!offset [2024-10-12 00:22:45,563 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:45,582 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:45,584 INFO L255 TraceCheckSpWp]: Trace formula consists of 31 conjuncts, 2 conjuncts are in the unsatisfiable core [2024-10-12 00:22:45,585 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:45,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:45,636 INFO L255 TraceCheckSpWp]: Trace formula consists of 13 conjuncts, 4 conjuncts are in the unsatisfiable core [2024-10-12 00:22:45,637 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:45,687 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:45,726 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 2 loop predicates [2024-10-12 00:22:45,728 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand has 28 states, 27 states have (on average 1.4444444444444444) internal successors, (39), 27 states have internal predecessors, (39), 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 3 states, 3 states have (on average 1.3333333333333333) internal successors, (4), 3 states have internal predecessors, (4), 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-10-12 00:22:45,782 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand has 28 states, 27 states have (on average 1.4444444444444444) internal successors, (39), 27 states have internal predecessors, (39), 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 3 states, 3 states have (on average 1.3333333333333333) internal successors, (4), 3 states have internal predecessors, (4), 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 54 states and 77 transitions. Complement of second has 6 states. [2024-10-12 00:22:45,786 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 4 states 1 stem states 1 non-accepting loop states 1 accepting loop states [2024-10-12 00:22:45,792 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 1.3333333333333333) internal successors, (4), 3 states have internal predecessors, (4), 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-10-12 00:22:45,794 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 38 transitions. [2024-10-12 00:22:45,795 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 38 transitions. Stem has 2 letters. Loop has 2 letters. [2024-10-12 00:22:45,796 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-10-12 00:22:45,796 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 38 transitions. Stem has 4 letters. Loop has 2 letters. [2024-10-12 00:22:45,796 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-10-12 00:22:45,796 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 38 transitions. Stem has 2 letters. Loop has 4 letters. [2024-10-12 00:22:45,796 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2024-10-12 00:22:45,797 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 54 states and 77 transitions. [2024-10-12 00:22:45,802 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2024-10-12 00:22:45,807 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 54 states to 25 states and 35 transitions. [2024-10-12 00:22:45,809 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 22 [2024-10-12 00:22:45,809 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 23 [2024-10-12 00:22:45,810 INFO L73 IsDeterministic]: Start isDeterministic. Operand 25 states and 35 transitions. [2024-10-12 00:22:45,811 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:45,811 INFO L218 hiAutomatonCegarLoop]: Abstraction has 25 states and 35 transitions. [2024-10-12 00:22:45,826 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 25 states and 35 transitions. [2024-10-12 00:22:45,837 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 25 to 25. [2024-10-12 00:22:45,838 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 25 states have (on average 1.4) internal successors, (35), 24 states have internal predecessors, (35), 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-10-12 00:22:45,839 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 35 transitions. [2024-10-12 00:22:45,841 INFO L240 hiAutomatonCegarLoop]: Abstraction has 25 states and 35 transitions. [2024-10-12 00:22:45,841 INFO L425 stractBuchiCegarLoop]: Abstraction has 25 states and 35 transitions. [2024-10-12 00:22:45,841 INFO L332 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2024-10-12 00:22:45,842 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 25 states and 35 transitions. [2024-10-12 00:22:45,844 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2024-10-12 00:22:45,844 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:45,844 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:45,844 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2024-10-12 00:22:45,844 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:45,844 INFO L745 eck$LassoCheckResult]: Stem: 157#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 145#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 146#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 149#L27-4 main_~i~0#1 := 0; 150#L32-3 [2024-10-12 00:22:45,845 INFO L747 eck$LassoCheckResult]: Loop: 150#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 155#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 144#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 150#L32-3 [2024-10-12 00:22:45,845 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:45,845 INFO L85 PathProgramCache]: Analyzing trace with hash 925707, now seen corresponding path program 1 times [2024-10-12 00:22:45,845 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:45,845 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [950573308] [2024-10-12 00:22:45,846 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:45,846 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:45,867 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:45,867 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:45,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:45,881 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:45,882 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:45,882 INFO L85 PathProgramCache]: Analyzing trace with hash 54361, now seen corresponding path program 1 times [2024-10-12 00:22:45,882 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:45,882 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [412088909] [2024-10-12 00:22:45,883 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:45,883 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:45,892 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:45,892 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:45,898 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:45,901 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:45,901 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:45,902 INFO L85 PathProgramCache]: Analyzing trace with hash 1807958031, now seen corresponding path program 1 times [2024-10-12 00:22:45,902 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:45,902 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1472199429] [2024-10-12 00:22:45,902 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:45,902 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:45,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:46,059 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:46,059 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:46,060 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1472199429] [2024-10-12 00:22:46,060 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1472199429] provided 1 perfect and 0 imperfect interpolant sequences [2024-10-12 00:22:46,060 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-10-12 00:22:46,061 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2024-10-12 00:22:46,061 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [78147774] [2024-10-12 00:22:46,062 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-10-12 00:22:46,113 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:46,116 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2024-10-12 00:22:46,116 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2024-10-12 00:22:46,118 INFO L87 Difference]: Start difference. First operand 25 states and 35 transitions. cyclomatic complexity: 13 Second operand has 5 states, 5 states have (on average 1.4) internal successors, (7), 5 states have internal predecessors, (7), 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-10-12 00:22:46,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:46,172 INFO L93 Difference]: Finished difference Result 44 states and 51 transitions. [2024-10-12 00:22:46,172 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 44 states and 51 transitions. [2024-10-12 00:22:46,173 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:46,174 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 44 states to 32 states and 38 transitions. [2024-10-12 00:22:46,174 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 29 [2024-10-12 00:22:46,174 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 29 [2024-10-12 00:22:46,174 INFO L73 IsDeterministic]: Start isDeterministic. Operand 32 states and 38 transitions. [2024-10-12 00:22:46,175 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:46,175 INFO L218 hiAutomatonCegarLoop]: Abstraction has 32 states and 38 transitions. [2024-10-12 00:22:46,175 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states and 38 transitions. [2024-10-12 00:22:46,176 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 20. [2024-10-12 00:22:46,177 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-10-12 00:22:46,177 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 24 transitions. [2024-10-12 00:22:46,177 INFO L240 hiAutomatonCegarLoop]: Abstraction has 20 states and 24 transitions. [2024-10-12 00:22:46,178 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2024-10-12 00:22:46,179 INFO L425 stractBuchiCegarLoop]: Abstraction has 20 states and 24 transitions. [2024-10-12 00:22:46,179 INFO L332 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2024-10-12 00:22:46,179 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 20 states and 24 transitions. [2024-10-12 00:22:46,180 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:46,180 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:46,180 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:46,180 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1, 1, 1] [2024-10-12 00:22:46,180 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:46,181 INFO L745 eck$LassoCheckResult]: Stem: 231#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 219#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 220#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 223#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 224#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 225#L27-4 main_~i~0#1 := 0; 226#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 230#L34 [2024-10-12 00:22:46,181 INFO L747 eck$LassoCheckResult]: Loop: 230#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 218#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 227#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 230#L34 [2024-10-12 00:22:46,181 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,181 INFO L85 PathProgramCache]: Analyzing trace with hash 1809669547, now seen corresponding path program 1 times [2024-10-12 00:22:46,182 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,182 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [925934441] [2024-10-12 00:22:46,182 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,182 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,194 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:46,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,219 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:46,222 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,222 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 2 times [2024-10-12 00:22:46,223 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,223 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [494005563] [2024-10-12 00:22:46,223 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,223 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,238 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:46,254 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,292 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:46,293 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,293 INFO L85 PathProgramCache]: Analyzing trace with hash 1436021995, now seen corresponding path program 1 times [2024-10-12 00:22:46,293 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,293 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [502504075] [2024-10-12 00:22:46,293 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,294 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,324 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:46,325 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Forceful destruction successful, exit code 0 [2024-10-12 00:22:46,419 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:46,419 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:46,419 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [502504075] [2024-10-12 00:22:46,419 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [502504075] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:46,420 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1087106449] [2024-10-12 00:22:46,420 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,420 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:46,420 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:46,422 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:46,423 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Waiting until timeout for monitored process [2024-10-12 00:22:46,466 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:46,467 INFO L255 TraceCheckSpWp]: Trace formula consists of 62 conjuncts, 6 conjuncts are in the unsatisfiable core [2024-10-12 00:22:46,467 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:46,531 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:46,531 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:46,576 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:46,576 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1087106449] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:46,576 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:46,576 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6, 6] total 10 [2024-10-12 00:22:46,577 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1387800250] [2024-10-12 00:22:46,577 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:46,633 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:46,634 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2024-10-12 00:22:46,634 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=75, Unknown=0, NotChecked=0, Total=110 [2024-10-12 00:22:46,634 INFO L87 Difference]: Start difference. First operand 20 states and 24 transitions. cyclomatic complexity: 7 Second operand has 11 states, 10 states have (on average 2.2) internal successors, (22), 11 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-10-12 00:22:46,774 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:46,774 INFO L93 Difference]: Finished difference Result 62 states and 73 transitions. [2024-10-12 00:22:46,774 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 62 states and 73 transitions. [2024-10-12 00:22:46,776 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:46,776 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 62 states to 46 states and 54 transitions. [2024-10-12 00:22:46,776 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 41 [2024-10-12 00:22:46,777 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 41 [2024-10-12 00:22:46,777 INFO L73 IsDeterministic]: Start isDeterministic. Operand 46 states and 54 transitions. [2024-10-12 00:22:46,777 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:46,777 INFO L218 hiAutomatonCegarLoop]: Abstraction has 46 states and 54 transitions. [2024-10-12 00:22:46,778 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states and 54 transitions. [2024-10-12 00:22:46,779 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 28. [2024-10-12 00:22:46,780 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 28 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 27 states have internal predecessors, (33), 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-10-12 00:22:46,780 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 33 transitions. [2024-10-12 00:22:46,780 INFO L240 hiAutomatonCegarLoop]: Abstraction has 28 states and 33 transitions. [2024-10-12 00:22:46,781 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2024-10-12 00:22:46,781 INFO L425 stractBuchiCegarLoop]: Abstraction has 28 states and 33 transitions. [2024-10-12 00:22:46,782 INFO L332 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2024-10-12 00:22:46,782 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 28 states and 33 transitions. [2024-10-12 00:22:46,782 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:46,782 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:46,782 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:46,783 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [2, 2, 2, 1, 1, 1, 1, 1, 1] [2024-10-12 00:22:46,783 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:46,783 INFO L745 eck$LassoCheckResult]: Stem: 386#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 373#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 374#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 387#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 388#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 377#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 378#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 379#L27-4 main_~i~0#1 := 0; 380#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 392#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 381#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 382#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 385#L34 [2024-10-12 00:22:46,783 INFO L747 eck$LassoCheckResult]: Loop: 385#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 372#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 390#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 385#L34 [2024-10-12 00:22:46,784 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,784 INFO L85 PathProgramCache]: Analyzing trace with hash 780824429, now seen corresponding path program 2 times [2024-10-12 00:22:46,784 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,784 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [592169247] [2024-10-12 00:22:46,784 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,784 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,804 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,804 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:46,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,816 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:46,817 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,817 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 3 times [2024-10-12 00:22:46,817 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,817 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1019450126] [2024-10-12 00:22:46,817 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,818 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,822 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,822 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:46,826 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:46,828 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:46,828 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:46,828 INFO L85 PathProgramCache]: Analyzing trace with hash -2264087, now seen corresponding path program 3 times [2024-10-12 00:22:46,828 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:46,829 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1811063700] [2024-10-12 00:22:46,829 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:46,829 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:46,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:46,982 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 1 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:46,982 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:46,982 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1811063700] [2024-10-12 00:22:46,983 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1811063700] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:46,983 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1081030236] [2024-10-12 00:22:46,983 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:22:46,983 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:46,983 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:46,986 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:46,987 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Waiting until timeout for monitored process [2024-10-12 00:22:47,042 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2024-10-12 00:22:47,042 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:47,044 INFO L255 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 8 conjuncts are in the unsatisfiable core [2024-10-12 00:22:47,046 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:47,143 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:47,143 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:47,225 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:47,226 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1081030236] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:47,226 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:47,226 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8, 8] total 13 [2024-10-12 00:22:47,226 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [39581964] [2024-10-12 00:22:47,226 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:47,279 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:47,279 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2024-10-12 00:22:47,280 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=129, Unknown=0, NotChecked=0, Total=182 [2024-10-12 00:22:47,280 INFO L87 Difference]: Start difference. First operand 28 states and 33 transitions. cyclomatic complexity: 8 Second operand has 14 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 14 states have internal predecessors, (30), 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-10-12 00:22:47,423 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:47,423 INFO L93 Difference]: Finished difference Result 88 states and 103 transitions. [2024-10-12 00:22:47,423 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 88 states and 103 transitions. [2024-10-12 00:22:47,425 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:47,426 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 88 states to 60 states and 70 transitions. [2024-10-12 00:22:47,426 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 53 [2024-10-12 00:22:47,426 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 53 [2024-10-12 00:22:47,426 INFO L73 IsDeterministic]: Start isDeterministic. Operand 60 states and 70 transitions. [2024-10-12 00:22:47,426 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:47,426 INFO L218 hiAutomatonCegarLoop]: Abstraction has 60 states and 70 transitions. [2024-10-12 00:22:47,427 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states and 70 transitions. [2024-10-12 00:22:47,428 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 36. [2024-10-12 00:22:47,429 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 36 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 35 states have internal predecessors, (42), 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-10-12 00:22:47,429 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 42 transitions. [2024-10-12 00:22:47,429 INFO L240 hiAutomatonCegarLoop]: Abstraction has 36 states and 42 transitions. [2024-10-12 00:22:47,432 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2024-10-12 00:22:47,432 INFO L425 stractBuchiCegarLoop]: Abstraction has 36 states and 42 transitions. [2024-10-12 00:22:47,432 INFO L332 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2024-10-12 00:22:47,432 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 36 states and 42 transitions. [2024-10-12 00:22:47,433 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:47,433 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:47,433 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:47,436 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [3, 3, 3, 2, 2, 1, 1, 1, 1] [2024-10-12 00:22:47,437 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:47,437 INFO L745 eck$LassoCheckResult]: Stem: 610#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 596#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 597#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 611#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 612#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 600#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 601#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 616#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 615#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 602#L27-4 main_~i~0#1 := 0; 603#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 624#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 604#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 605#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 609#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 618#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 623#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 608#L34 [2024-10-12 00:22:47,437 INFO L747 eck$LassoCheckResult]: Loop: 608#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 595#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 614#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 608#L34 [2024-10-12 00:22:47,437 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:47,437 INFO L85 PathProgramCache]: Analyzing trace with hash -79873369, now seen corresponding path program 4 times [2024-10-12 00:22:47,437 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:47,438 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1623063863] [2024-10-12 00:22:47,438 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:47,438 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:47,455 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:47,455 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:47,467 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:47,471 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:47,471 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:47,471 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 4 times [2024-10-12 00:22:47,472 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:47,472 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1890136276] [2024-10-12 00:22:47,472 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:47,472 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:47,476 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:47,476 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:47,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:47,481 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:47,482 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:47,482 INFO L85 PathProgramCache]: Analyzing trace with hash -95607185, now seen corresponding path program 5 times [2024-10-12 00:22:47,482 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:47,482 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1855356714] [2024-10-12 00:22:47,483 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:47,483 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:47,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:47,629 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 5 proven. 16 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:47,629 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:47,629 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1855356714] [2024-10-12 00:22:47,629 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1855356714] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:47,629 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1302487927] [2024-10-12 00:22:47,629 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:22:47,629 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:47,629 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:47,635 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:47,638 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Waiting until timeout for monitored process [2024-10-12 00:22:47,703 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 4 check-sat command(s) [2024-10-12 00:22:47,703 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:47,704 INFO L255 TraceCheckSpWp]: Trace formula consists of 104 conjuncts, 10 conjuncts are in the unsatisfiable core [2024-10-12 00:22:47,705 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:47,840 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 12 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:47,840 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:47,938 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 12 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:47,938 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1302487927] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:47,938 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:47,938 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10, 10] total 16 [2024-10-12 00:22:47,939 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [460751114] [2024-10-12 00:22:47,939 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:48,033 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:48,034 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2024-10-12 00:22:48,034 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=75, Invalid=197, Unknown=0, NotChecked=0, Total=272 [2024-10-12 00:22:48,034 INFO L87 Difference]: Start difference. First operand 36 states and 42 transitions. cyclomatic complexity: 9 Second operand has 17 states, 16 states have (on average 2.375) internal successors, (38), 17 states have internal predecessors, (38), 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-10-12 00:22:48,206 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:48,206 INFO L93 Difference]: Finished difference Result 114 states and 133 transitions. [2024-10-12 00:22:48,206 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 114 states and 133 transitions. [2024-10-12 00:22:48,208 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:48,208 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 114 states to 74 states and 86 transitions. [2024-10-12 00:22:48,208 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 65 [2024-10-12 00:22:48,209 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 65 [2024-10-12 00:22:48,209 INFO L73 IsDeterministic]: Start isDeterministic. Operand 74 states and 86 transitions. [2024-10-12 00:22:48,209 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:48,209 INFO L218 hiAutomatonCegarLoop]: Abstraction has 74 states and 86 transitions. [2024-10-12 00:22:48,209 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 74 states and 86 transitions. [2024-10-12 00:22:48,211 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 74 to 44. [2024-10-12 00:22:48,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 44 states have (on average 1.1590909090909092) internal successors, (51), 43 states have internal predecessors, (51), 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-10-12 00:22:48,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 51 transitions. [2024-10-12 00:22:48,212 INFO L240 hiAutomatonCegarLoop]: Abstraction has 44 states and 51 transitions. [2024-10-12 00:22:48,214 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2024-10-12 00:22:48,214 INFO L425 stractBuchiCegarLoop]: Abstraction has 44 states and 51 transitions. [2024-10-12 00:22:48,214 INFO L332 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2024-10-12 00:22:48,214 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 44 states and 51 transitions. [2024-10-12 00:22:48,215 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:48,215 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:48,215 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:48,216 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 4, 3, 3, 1, 1, 1, 1] [2024-10-12 00:22:48,216 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:48,216 INFO L745 eck$LassoCheckResult]: Stem: 904#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 888#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 889#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 902#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 903#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 892#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 893#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 913#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 912#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 909#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 908#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 894#L27-4 main_~i~0#1 := 0; 895#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 900#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 887#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 897#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 923#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 921#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 920#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 917#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 915#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 914#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 907#L34 [2024-10-12 00:22:48,216 INFO L747 eck$LassoCheckResult]: Loop: 907#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 910#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 906#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 907#L34 [2024-10-12 00:22:48,216 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:48,216 INFO L85 PathProgramCache]: Analyzing trace with hash 1712449137, now seen corresponding path program 6 times [2024-10-12 00:22:48,216 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:48,217 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1391062273] [2024-10-12 00:22:48,217 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:48,217 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:48,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:48,235 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:48,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:48,257 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:48,258 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:48,258 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 5 times [2024-10-12 00:22:48,258 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:48,258 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1376659434] [2024-10-12 00:22:48,258 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:48,258 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:48,262 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:48,262 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:48,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:48,266 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:48,267 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:48,267 INFO L85 PathProgramCache]: Analyzing trace with hash -49254811, now seen corresponding path program 7 times [2024-10-12 00:22:48,267 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:48,267 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1851099209] [2024-10-12 00:22:48,267 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:48,267 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:48,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:48,443 INFO L134 CoverageAnalysis]: Checked inductivity of 38 backedges. 12 proven. 26 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:48,443 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:48,443 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1851099209] [2024-10-12 00:22:48,443 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1851099209] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:48,444 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1097600300] [2024-10-12 00:22:48,444 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:22:48,444 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:48,444 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:48,453 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:48,464 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Waiting until timeout for monitored process [2024-10-12 00:22:48,526 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:48,527 INFO L255 TraceCheckSpWp]: Trace formula consists of 125 conjuncts, 12 conjuncts are in the unsatisfiable core [2024-10-12 00:22:48,528 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:48,676 INFO L134 CoverageAnalysis]: Checked inductivity of 38 backedges. 22 proven. 16 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:48,676 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:48,785 INFO L134 CoverageAnalysis]: Checked inductivity of 38 backedges. 22 proven. 16 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:48,785 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1097600300] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:48,786 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:48,786 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12, 12] total 19 [2024-10-12 00:22:48,786 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1728977004] [2024-10-12 00:22:48,786 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:48,832 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:48,833 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2024-10-12 00:22:48,833 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=101, Invalid=279, Unknown=0, NotChecked=0, Total=380 [2024-10-12 00:22:48,833 INFO L87 Difference]: Start difference. First operand 44 states and 51 transitions. cyclomatic complexity: 10 Second operand has 20 states, 19 states have (on average 2.4210526315789473) internal successors, (46), 20 states have internal predecessors, (46), 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-10-12 00:22:49,060 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:49,060 INFO L93 Difference]: Finished difference Result 140 states and 163 transitions. [2024-10-12 00:22:49,060 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 140 states and 163 transitions. [2024-10-12 00:22:49,062 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:49,063 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 140 states to 88 states and 102 transitions. [2024-10-12 00:22:49,063 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 77 [2024-10-12 00:22:49,063 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 77 [2024-10-12 00:22:49,063 INFO L73 IsDeterministic]: Start isDeterministic. Operand 88 states and 102 transitions. [2024-10-12 00:22:49,063 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:49,063 INFO L218 hiAutomatonCegarLoop]: Abstraction has 88 states and 102 transitions. [2024-10-12 00:22:49,064 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states and 102 transitions. [2024-10-12 00:22:49,066 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 52. [2024-10-12 00:22:49,066 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 52 states, 52 states have (on average 1.1538461538461537) internal successors, (60), 51 states have internal predecessors, (60), 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-10-12 00:22:49,067 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 60 transitions. [2024-10-12 00:22:49,067 INFO L240 hiAutomatonCegarLoop]: Abstraction has 52 states and 60 transitions. [2024-10-12 00:22:49,067 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2024-10-12 00:22:49,068 INFO L425 stractBuchiCegarLoop]: Abstraction has 52 states and 60 transitions. [2024-10-12 00:22:49,068 INFO L332 stractBuchiCegarLoop]: ======== Iteration 7 ============ [2024-10-12 00:22:49,068 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 52 states and 60 transitions. [2024-10-12 00:22:49,068 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:49,069 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:49,069 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:49,069 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [5, 5, 5, 4, 4, 1, 1, 1, 1] [2024-10-12 00:22:49,069 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:49,069 INFO L745 eck$LassoCheckResult]: Stem: 1264#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 1249#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 1250#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1265#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1266#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1253#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1254#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1277#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1276#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1275#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1274#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1271#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1270#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 1255#L27-4 main_~i~0#1 := 0; 1256#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1261#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1248#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1258#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1263#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1291#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1290#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1287#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1285#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1284#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1281#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1279#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1278#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1269#L34 [2024-10-12 00:22:49,069 INFO L747 eck$LassoCheckResult]: Loop: 1269#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1272#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1268#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1269#L34 [2024-10-12 00:22:49,070 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:49,070 INFO L85 PathProgramCache]: Analyzing trace with hash -240296029, now seen corresponding path program 8 times [2024-10-12 00:22:49,070 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:49,070 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1133714110] [2024-10-12 00:22:49,070 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:49,070 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:49,092 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:49,092 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:49,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:49,108 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:49,108 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:49,109 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 6 times [2024-10-12 00:22:49,109 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:49,109 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [706452252] [2024-10-12 00:22:49,109 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:49,109 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:49,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:49,113 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:49,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:49,116 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:49,117 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:49,117 INFO L85 PathProgramCache]: Analyzing trace with hash 1051529203, now seen corresponding path program 9 times [2024-10-12 00:22:49,117 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:49,117 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [492419525] [2024-10-12 00:22:49,117 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:49,117 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:49,135 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:49,383 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 22 proven. 38 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:49,384 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:49,384 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [492419525] [2024-10-12 00:22:49,384 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [492419525] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:49,384 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2091224919] [2024-10-12 00:22:49,384 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:22:49,384 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:49,384 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:49,389 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:49,401 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Waiting until timeout for monitored process [2024-10-12 00:22:49,475 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2024-10-12 00:22:49,475 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:49,476 INFO L255 TraceCheckSpWp]: Trace formula consists of 146 conjuncts, 14 conjuncts are in the unsatisfiable core [2024-10-12 00:22:49,478 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:49,661 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 35 proven. 25 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:49,661 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:49,785 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 35 proven. 25 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:49,785 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2091224919] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:49,786 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:49,786 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 14, 14] total 22 [2024-10-12 00:22:49,786 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2018362261] [2024-10-12 00:22:49,786 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:49,832 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:49,832 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2024-10-12 00:22:49,833 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=131, Invalid=375, Unknown=0, NotChecked=0, Total=506 [2024-10-12 00:22:49,833 INFO L87 Difference]: Start difference. First operand 52 states and 60 transitions. cyclomatic complexity: 11 Second operand has 23 states, 22 states have (on average 2.4545454545454546) internal successors, (54), 23 states have internal predecessors, (54), 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-10-12 00:22:50,068 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:50,068 INFO L93 Difference]: Finished difference Result 166 states and 193 transitions. [2024-10-12 00:22:50,069 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 166 states and 193 transitions. [2024-10-12 00:22:50,070 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:50,071 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 166 states to 102 states and 118 transitions. [2024-10-12 00:22:50,071 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 89 [2024-10-12 00:22:50,071 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 89 [2024-10-12 00:22:50,071 INFO L73 IsDeterministic]: Start isDeterministic. Operand 102 states and 118 transitions. [2024-10-12 00:22:50,072 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:50,072 INFO L218 hiAutomatonCegarLoop]: Abstraction has 102 states and 118 transitions. [2024-10-12 00:22:50,072 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 102 states and 118 transitions. [2024-10-12 00:22:50,074 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 102 to 60. [2024-10-12 00:22:50,075 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 60 states, 60 states have (on average 1.15) internal successors, (69), 59 states have internal predecessors, (69), 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-10-12 00:22:50,075 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 69 transitions. [2024-10-12 00:22:50,075 INFO L240 hiAutomatonCegarLoop]: Abstraction has 60 states and 69 transitions. [2024-10-12 00:22:50,076 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2024-10-12 00:22:50,076 INFO L425 stractBuchiCegarLoop]: Abstraction has 60 states and 69 transitions. [2024-10-12 00:22:50,076 INFO L332 stractBuchiCegarLoop]: ======== Iteration 8 ============ [2024-10-12 00:22:50,077 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 60 states and 69 transitions. [2024-10-12 00:22:50,077 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:50,077 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:50,077 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:50,078 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 6, 6, 5, 5, 1, 1, 1, 1] [2024-10-12 00:22:50,078 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:50,078 INFO L745 eck$LassoCheckResult]: Stem: 1695#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 1679#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 1680#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1696#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1697#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1683#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1684#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1710#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1709#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1708#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1707#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1706#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1705#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 1702#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 1701#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 1685#L27-4 main_~i~0#1 := 0; 1686#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1692#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1678#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1689#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1694#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1729#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1728#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1726#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1723#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1722#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1720#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1718#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1717#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1714#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1712#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1711#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1700#L34 [2024-10-12 00:22:50,078 INFO L747 eck$LassoCheckResult]: Loop: 1700#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 1703#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 1699#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 1700#L34 [2024-10-12 00:22:50,078 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:50,079 INFO L85 PathProgramCache]: Analyzing trace with hash 1967863157, now seen corresponding path program 10 times [2024-10-12 00:22:50,079 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:50,079 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [912476092] [2024-10-12 00:22:50,079 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:50,079 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:50,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:50,109 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:50,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:50,138 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:50,138 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:50,138 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 7 times [2024-10-12 00:22:50,139 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:50,139 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [363112684] [2024-10-12 00:22:50,139 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:50,139 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:50,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:50,143 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:50,145 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:50,146 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:50,147 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:50,147 INFO L85 PathProgramCache]: Analyzing trace with hash -1692233503, now seen corresponding path program 11 times [2024-10-12 00:22:50,147 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:50,147 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1563378092] [2024-10-12 00:22:50,147 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:50,147 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:50,163 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:50,394 INFO L134 CoverageAnalysis]: Checked inductivity of 87 backedges. 35 proven. 52 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:50,394 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:50,394 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1563378092] [2024-10-12 00:22:50,394 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1563378092] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:50,394 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1187735411] [2024-10-12 00:22:50,394 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:22:50,395 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:50,395 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:50,402 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:50,406 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (17)] Waiting until timeout for monitored process [2024-10-12 00:22:50,497 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 7 check-sat command(s) [2024-10-12 00:22:50,498 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:50,499 INFO L255 TraceCheckSpWp]: Trace formula consists of 167 conjuncts, 16 conjuncts are in the unsatisfiable core [2024-10-12 00:22:50,500 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:50,688 INFO L134 CoverageAnalysis]: Checked inductivity of 87 backedges. 51 proven. 36 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:50,688 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:50,835 INFO L134 CoverageAnalysis]: Checked inductivity of 87 backedges. 51 proven. 36 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:50,836 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1187735411] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:50,836 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:50,836 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 16, 16] total 25 [2024-10-12 00:22:50,836 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2038425530] [2024-10-12 00:22:50,836 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:50,880 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:50,880 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2024-10-12 00:22:50,881 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=165, Invalid=485, Unknown=0, NotChecked=0, Total=650 [2024-10-12 00:22:50,881 INFO L87 Difference]: Start difference. First operand 60 states and 69 transitions. cyclomatic complexity: 12 Second operand has 26 states, 25 states have (on average 2.48) internal successors, (62), 26 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-10-12 00:22:51,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:51,193 INFO L93 Difference]: Finished difference Result 192 states and 223 transitions. [2024-10-12 00:22:51,193 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 192 states and 223 transitions. [2024-10-12 00:22:51,194 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:51,195 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 192 states to 116 states and 134 transitions. [2024-10-12 00:22:51,195 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 101 [2024-10-12 00:22:51,195 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 101 [2024-10-12 00:22:51,196 INFO L73 IsDeterministic]: Start isDeterministic. Operand 116 states and 134 transitions. [2024-10-12 00:22:51,196 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:51,196 INFO L218 hiAutomatonCegarLoop]: Abstraction has 116 states and 134 transitions. [2024-10-12 00:22:51,196 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 116 states and 134 transitions. [2024-10-12 00:22:51,199 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 116 to 68. [2024-10-12 00:22:51,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 68 states, 68 states have (on average 1.1470588235294117) internal successors, (78), 67 states have internal predecessors, (78), 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-10-12 00:22:51,200 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 78 transitions. [2024-10-12 00:22:51,200 INFO L240 hiAutomatonCegarLoop]: Abstraction has 68 states and 78 transitions. [2024-10-12 00:22:51,200 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2024-10-12 00:22:51,201 INFO L425 stractBuchiCegarLoop]: Abstraction has 68 states and 78 transitions. [2024-10-12 00:22:51,201 INFO L332 stractBuchiCegarLoop]: ======== Iteration 9 ============ [2024-10-12 00:22:51,201 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 68 states and 78 transitions. [2024-10-12 00:22:51,201 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:51,201 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:51,201 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:51,202 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 7, 6, 6, 1, 1, 1, 1] [2024-10-12 00:22:51,202 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:51,202 INFO L745 eck$LassoCheckResult]: Stem: 2194#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 2178#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 2179#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2195#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2196#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2182#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2183#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2211#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2210#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2209#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2208#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2207#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2206#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2205#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2204#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2201#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2200#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 2184#L27-4 main_~i~0#1 := 0; 2185#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2191#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2177#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2188#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2193#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2236#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2235#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2233#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2230#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2229#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2227#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2224#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2223#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2221#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2219#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2218#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2215#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2213#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2212#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2199#L34 [2024-10-12 00:22:51,202 INFO L747 eck$LassoCheckResult]: Loop: 2199#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2202#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2198#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2199#L34 [2024-10-12 00:22:51,203 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:51,203 INFO L85 PathProgramCache]: Analyzing trace with hash -664171361, now seen corresponding path program 12 times [2024-10-12 00:22:51,203 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:51,203 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2082298256] [2024-10-12 00:22:51,203 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:51,203 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:51,232 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:51,232 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:51,254 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:51,259 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:51,259 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:51,259 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 8 times [2024-10-12 00:22:51,259 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:51,260 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [667494791] [2024-10-12 00:22:51,260 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:51,260 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:51,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:51,263 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:51,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:51,266 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:51,267 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:51,267 INFO L85 PathProgramCache]: Analyzing trace with hash 585363831, now seen corresponding path program 13 times [2024-10-12 00:22:51,267 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:51,267 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1683705653] [2024-10-12 00:22:51,267 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:51,267 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:51,281 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:51,564 INFO L134 CoverageAnalysis]: Checked inductivity of 119 backedges. 51 proven. 68 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:51,564 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:51,564 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1683705653] [2024-10-12 00:22:51,565 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1683705653] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:51,565 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [136759624] [2024-10-12 00:22:51,565 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:22:51,565 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:51,565 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:51,567 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:51,568 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (18)] Waiting until timeout for monitored process [2024-10-12 00:22:51,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:51,645 INFO L255 TraceCheckSpWp]: Trace formula consists of 188 conjuncts, 18 conjuncts are in the unsatisfiable core [2024-10-12 00:22:51,646 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:51,870 INFO L134 CoverageAnalysis]: Checked inductivity of 119 backedges. 70 proven. 49 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:51,871 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:52,034 INFO L134 CoverageAnalysis]: Checked inductivity of 119 backedges. 70 proven. 49 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:52,035 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [136759624] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:52,035 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:52,035 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 18, 18] total 28 [2024-10-12 00:22:52,035 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1010264807] [2024-10-12 00:22:52,035 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:52,076 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:52,076 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2024-10-12 00:22:52,077 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=203, Invalid=609, Unknown=0, NotChecked=0, Total=812 [2024-10-12 00:22:52,077 INFO L87 Difference]: Start difference. First operand 68 states and 78 transitions. cyclomatic complexity: 13 Second operand has 29 states, 28 states have (on average 2.5) internal successors, (70), 29 states have internal predecessors, (70), 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-10-12 00:22:52,383 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:52,384 INFO L93 Difference]: Finished difference Result 218 states and 253 transitions. [2024-10-12 00:22:52,384 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 218 states and 253 transitions. [2024-10-12 00:22:52,385 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:52,386 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 218 states to 130 states and 150 transitions. [2024-10-12 00:22:52,386 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 113 [2024-10-12 00:22:52,386 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 113 [2024-10-12 00:22:52,386 INFO L73 IsDeterministic]: Start isDeterministic. Operand 130 states and 150 transitions. [2024-10-12 00:22:52,387 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:52,387 INFO L218 hiAutomatonCegarLoop]: Abstraction has 130 states and 150 transitions. [2024-10-12 00:22:52,387 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 130 states and 150 transitions. [2024-10-12 00:22:52,390 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 130 to 76. [2024-10-12 00:22:52,390 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 76 states, 76 states have (on average 1.144736842105263) internal successors, (87), 75 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-10-12 00:22:52,391 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 87 transitions. [2024-10-12 00:22:52,391 INFO L240 hiAutomatonCegarLoop]: Abstraction has 76 states and 87 transitions. [2024-10-12 00:22:52,392 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2024-10-12 00:22:52,392 INFO L425 stractBuchiCegarLoop]: Abstraction has 76 states and 87 transitions. [2024-10-12 00:22:52,392 INFO L332 stractBuchiCegarLoop]: ======== Iteration 10 ============ [2024-10-12 00:22:52,392 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 76 states and 87 transitions. [2024-10-12 00:22:52,393 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:52,393 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:52,393 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:52,393 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 8, 7, 7, 1, 1, 1, 1] [2024-10-12 00:22:52,394 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:52,394 INFO L745 eck$LassoCheckResult]: Stem: 2762#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 2746#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 2747#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2763#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2764#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2750#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2751#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2781#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2780#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2779#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2778#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2777#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2776#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2775#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2774#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2773#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2772#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 2769#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 2768#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 2752#L27-4 main_~i~0#1 := 0; 2753#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2759#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2745#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2756#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2761#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2812#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2811#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2809#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2806#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2805#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2803#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2800#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2799#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2797#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2794#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2793#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2791#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2789#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2788#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2785#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2783#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2782#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2767#L34 [2024-10-12 00:22:52,394 INFO L747 eck$LassoCheckResult]: Loop: 2767#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 2770#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 2766#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 2767#L34 [2024-10-12 00:22:52,394 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:52,394 INFO L85 PathProgramCache]: Analyzing trace with hash -704996231, now seen corresponding path program 14 times [2024-10-12 00:22:52,394 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:52,395 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1187735347] [2024-10-12 00:22:52,395 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:52,395 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:52,441 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:52,441 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:52,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:52,519 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:52,520 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:52,520 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 9 times [2024-10-12 00:22:52,520 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:52,520 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [63076695] [2024-10-12 00:22:52,520 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:52,520 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:52,523 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:52,523 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:52,525 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:52,526 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:52,527 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:52,527 INFO L85 PathProgramCache]: Analyzing trace with hash -152593571, now seen corresponding path program 15 times [2024-10-12 00:22:52,527 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:52,527 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2033587104] [2024-10-12 00:22:52,527 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:52,527 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:52,543 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:52,898 INFO L134 CoverageAnalysis]: Checked inductivity of 156 backedges. 70 proven. 86 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:52,898 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:52,898 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2033587104] [2024-10-12 00:22:52,899 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2033587104] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:52,899 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [375868847] [2024-10-12 00:22:52,899 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:22:52,899 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:52,899 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:52,904 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:52,908 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (19)] Waiting until timeout for monitored process [2024-10-12 00:22:53,022 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2024-10-12 00:22:53,022 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:53,025 INFO L255 TraceCheckSpWp]: Trace formula consists of 209 conjuncts, 20 conjuncts are in the unsatisfiable core [2024-10-12 00:22:53,027 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:53,298 INFO L134 CoverageAnalysis]: Checked inductivity of 156 backedges. 92 proven. 64 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:53,298 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:53,506 INFO L134 CoverageAnalysis]: Checked inductivity of 156 backedges. 92 proven. 64 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:53,506 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [375868847] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:53,506 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:53,506 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 20, 20] total 31 [2024-10-12 00:22:53,506 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [29829565] [2024-10-12 00:22:53,507 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:53,547 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:53,548 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2024-10-12 00:22:53,548 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=245, Invalid=747, Unknown=0, NotChecked=0, Total=992 [2024-10-12 00:22:53,548 INFO L87 Difference]: Start difference. First operand 76 states and 87 transitions. cyclomatic complexity: 14 Second operand has 32 states, 31 states have (on average 2.5161290322580645) internal successors, (78), 32 states have internal predecessors, (78), 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-10-12 00:22:53,924 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:53,924 INFO L93 Difference]: Finished difference Result 244 states and 283 transitions. [2024-10-12 00:22:53,925 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 244 states and 283 transitions. [2024-10-12 00:22:53,926 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:53,927 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 244 states to 144 states and 166 transitions. [2024-10-12 00:22:53,927 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 125 [2024-10-12 00:22:53,928 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 125 [2024-10-12 00:22:53,928 INFO L73 IsDeterministic]: Start isDeterministic. Operand 144 states and 166 transitions. [2024-10-12 00:22:53,928 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:53,928 INFO L218 hiAutomatonCegarLoop]: Abstraction has 144 states and 166 transitions. [2024-10-12 00:22:53,928 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 144 states and 166 transitions. [2024-10-12 00:22:53,931 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 144 to 84. [2024-10-12 00:22:53,931 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 84 states, 84 states have (on average 1.1428571428571428) internal successors, (96), 83 states have internal predecessors, (96), 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-10-12 00:22:53,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 84 states to 84 states and 96 transitions. [2024-10-12 00:22:53,932 INFO L240 hiAutomatonCegarLoop]: Abstraction has 84 states and 96 transitions. [2024-10-12 00:22:53,932 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2024-10-12 00:22:53,933 INFO L425 stractBuchiCegarLoop]: Abstraction has 84 states and 96 transitions. [2024-10-12 00:22:53,933 INFO L332 stractBuchiCegarLoop]: ======== Iteration 11 ============ [2024-10-12 00:22:53,933 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 84 states and 96 transitions. [2024-10-12 00:22:53,934 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:53,934 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:53,934 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:53,934 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 9, 8, 8, 1, 1, 1, 1] [2024-10-12 00:22:53,935 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:53,935 INFO L745 eck$LassoCheckResult]: Stem: 3399#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 3383#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 3384#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3400#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3401#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3387#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3388#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3420#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3419#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3418#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3417#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3416#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3415#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3414#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3413#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3412#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3411#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3410#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3409#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 3406#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 3405#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 3389#L27-4 main_~i~0#1 := 0; 3390#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3396#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3382#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3393#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3398#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3457#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3456#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3454#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3451#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3450#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3448#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3445#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3444#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3442#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3439#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3438#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3436#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3433#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3432#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3430#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3428#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3427#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3424#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3422#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3421#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3404#L34 [2024-10-12 00:22:53,935 INFO L747 eck$LassoCheckResult]: Loop: 3404#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 3407#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 3403#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 3404#L34 [2024-10-12 00:22:53,935 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:53,935 INFO L85 PathProgramCache]: Analyzing trace with hash -1850900069, now seen corresponding path program 16 times [2024-10-12 00:22:53,935 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:53,935 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [806956286] [2024-10-12 00:22:53,936 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:53,936 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:53,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:53,971 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:54,064 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:54,085 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:54,086 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:54,086 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 10 times [2024-10-12 00:22:54,086 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:54,087 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1650960327] [2024-10-12 00:22:54,087 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:54,087 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:54,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:54,096 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:54,102 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:54,104 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:54,105 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:54,105 INFO L85 PathProgramCache]: Analyzing trace with hash -1373762821, now seen corresponding path program 17 times [2024-10-12 00:22:54,105 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:54,105 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1612185837] [2024-10-12 00:22:54,105 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:54,105 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:54,121 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:54,499 INFO L134 CoverageAnalysis]: Checked inductivity of 198 backedges. 92 proven. 106 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:54,499 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:54,499 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1612185837] [2024-10-12 00:22:54,499 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1612185837] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:54,500 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1522091336] [2024-10-12 00:22:54,500 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:22:54,500 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:54,500 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:54,505 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:54,508 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (20)] Waiting until timeout for monitored process [2024-10-12 00:22:54,685 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2024-10-12 00:22:54,686 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:54,688 INFO L255 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 22 conjuncts are in the unsatisfiable core [2024-10-12 00:22:54,689 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:55,000 INFO L134 CoverageAnalysis]: Checked inductivity of 198 backedges. 117 proven. 81 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:55,001 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:55,236 INFO L134 CoverageAnalysis]: Checked inductivity of 198 backedges. 117 proven. 81 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:55,236 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1522091336] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:55,236 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:55,236 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 22, 22] total 34 [2024-10-12 00:22:55,236 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1822646763] [2024-10-12 00:22:55,236 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:55,276 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:55,277 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2024-10-12 00:22:55,278 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=291, Invalid=899, Unknown=0, NotChecked=0, Total=1190 [2024-10-12 00:22:55,278 INFO L87 Difference]: Start difference. First operand 84 states and 96 transitions. cyclomatic complexity: 15 Second operand has 35 states, 34 states have (on average 2.5294117647058822) internal successors, (86), 35 states have internal predecessors, (86), 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-10-12 00:22:55,710 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:55,711 INFO L93 Difference]: Finished difference Result 270 states and 313 transitions. [2024-10-12 00:22:55,711 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 270 states and 313 transitions. [2024-10-12 00:22:55,714 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:55,714 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 270 states to 158 states and 182 transitions. [2024-10-12 00:22:55,715 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 137 [2024-10-12 00:22:55,715 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 137 [2024-10-12 00:22:55,715 INFO L73 IsDeterministic]: Start isDeterministic. Operand 158 states and 182 transitions. [2024-10-12 00:22:55,715 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:55,715 INFO L218 hiAutomatonCegarLoop]: Abstraction has 158 states and 182 transitions. [2024-10-12 00:22:55,715 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states and 182 transitions. [2024-10-12 00:22:55,718 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 92. [2024-10-12 00:22:55,718 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 92 states, 92 states have (on average 1.141304347826087) internal successors, (105), 91 states have internal predecessors, (105), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2024-10-12 00:22:55,719 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 92 states to 92 states and 105 transitions. [2024-10-12 00:22:55,719 INFO L240 hiAutomatonCegarLoop]: Abstraction has 92 states and 105 transitions. [2024-10-12 00:22:55,720 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2024-10-12 00:22:55,720 INFO L425 stractBuchiCegarLoop]: Abstraction has 92 states and 105 transitions. [2024-10-12 00:22:55,721 INFO L332 stractBuchiCegarLoop]: ======== Iteration 12 ============ [2024-10-12 00:22:55,721 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 92 states and 105 transitions. [2024-10-12 00:22:55,722 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:55,722 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:55,722 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:55,723 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 10, 9, 9, 1, 1, 1, 1] [2024-10-12 00:22:55,723 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:55,723 INFO L745 eck$LassoCheckResult]: Stem: 4105#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 4089#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 4090#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4106#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4107#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4093#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4094#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4128#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4127#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4126#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4125#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4124#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4123#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4122#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4121#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4120#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4119#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4118#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4117#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4116#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4115#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4112#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4111#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 4095#L27-4 main_~i~0#1 := 0; 4096#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4102#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4088#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4099#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4104#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4171#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4170#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4168#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4165#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4164#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4162#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4159#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4158#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4156#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4153#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4152#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4150#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4147#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4146#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4144#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4141#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4140#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4138#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4136#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4135#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4132#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4130#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4129#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4110#L34 [2024-10-12 00:22:55,723 INFO L747 eck$LassoCheckResult]: Loop: 4110#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4113#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4109#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4110#L34 [2024-10-12 00:22:55,724 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:55,724 INFO L85 PathProgramCache]: Analyzing trace with hash -354133123, now seen corresponding path program 18 times [2024-10-12 00:22:55,724 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:55,724 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [956968996] [2024-10-12 00:22:55,724 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:55,724 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:55,770 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:55,770 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:55,808 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:55,814 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:55,815 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:55,815 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 11 times [2024-10-12 00:22:55,815 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:55,815 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1628680668] [2024-10-12 00:22:55,815 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:55,815 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:55,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:55,819 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:55,821 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:55,822 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:55,823 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:55,823 INFO L85 PathProgramCache]: Analyzing trace with hash -1540141607, now seen corresponding path program 19 times [2024-10-12 00:22:55,823 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:55,823 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [951946675] [2024-10-12 00:22:55,823 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:55,823 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:55,844 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:56,309 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 117 proven. 128 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:56,310 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:56,310 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [951946675] [2024-10-12 00:22:56,310 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [951946675] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:56,310 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [35046519] [2024-10-12 00:22:56,310 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:22:56,310 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:56,310 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:56,313 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:56,314 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (21)] Waiting until timeout for monitored process [2024-10-12 00:22:56,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:56,408 INFO L255 TraceCheckSpWp]: Trace formula consists of 251 conjuncts, 24 conjuncts are in the unsatisfiable core [2024-10-12 00:22:56,410 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:56,757 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 145 proven. 100 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:56,757 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:57,019 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 145 proven. 100 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:57,019 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [35046519] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:57,019 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:57,019 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 24, 24] total 37 [2024-10-12 00:22:57,019 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [402259841] [2024-10-12 00:22:57,020 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:57,060 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:57,060 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2024-10-12 00:22:57,061 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=341, Invalid=1065, Unknown=0, NotChecked=0, Total=1406 [2024-10-12 00:22:57,061 INFO L87 Difference]: Start difference. First operand 92 states and 105 transitions. cyclomatic complexity: 16 Second operand has 38 states, 37 states have (on average 2.5405405405405403) internal successors, (94), 38 states have internal predecessors, (94), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2024-10-12 00:22:57,583 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:57,583 INFO L93 Difference]: Finished difference Result 296 states and 343 transitions. [2024-10-12 00:22:57,583 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 296 states and 343 transitions. [2024-10-12 00:22:57,585 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:57,586 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 296 states to 172 states and 198 transitions. [2024-10-12 00:22:57,586 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 149 [2024-10-12 00:22:57,586 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 149 [2024-10-12 00:22:57,586 INFO L73 IsDeterministic]: Start isDeterministic. Operand 172 states and 198 transitions. [2024-10-12 00:22:57,586 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:57,586 INFO L218 hiAutomatonCegarLoop]: Abstraction has 172 states and 198 transitions. [2024-10-12 00:22:57,587 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 172 states and 198 transitions. [2024-10-12 00:22:57,589 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 172 to 100. [2024-10-12 00:22:57,589 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 100 states, 100 states have (on average 1.14) internal successors, (114), 99 states have internal predecessors, (114), 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-10-12 00:22:57,590 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 114 transitions. [2024-10-12 00:22:57,590 INFO L240 hiAutomatonCegarLoop]: Abstraction has 100 states and 114 transitions. [2024-10-12 00:22:57,590 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2024-10-12 00:22:57,591 INFO L425 stractBuchiCegarLoop]: Abstraction has 100 states and 114 transitions. [2024-10-12 00:22:57,591 INFO L332 stractBuchiCegarLoop]: ======== Iteration 13 ============ [2024-10-12 00:22:57,591 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 100 states and 114 transitions. [2024-10-12 00:22:57,592 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:57,592 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:57,592 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:57,593 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [11, 11, 11, 10, 10, 1, 1, 1, 1] [2024-10-12 00:22:57,593 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:57,593 INFO L745 eck$LassoCheckResult]: Stem: 4880#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 4864#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 4865#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4881#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4882#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4868#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4869#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4905#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4904#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4903#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4902#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4901#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4900#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4899#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4898#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4897#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4896#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4895#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4894#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4893#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4892#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4891#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4890#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 4887#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 4886#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 4870#L27-4 main_~i~0#1 := 0; 4871#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4877#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4863#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4874#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4879#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4954#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4953#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4951#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4948#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4947#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4945#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4942#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4941#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4939#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4936#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4935#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4933#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4930#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4929#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4927#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4924#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4923#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4921#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4918#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4917#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4915#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4913#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4912#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4909#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4907#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4906#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4885#L34 [2024-10-12 00:22:57,594 INFO L747 eck$LassoCheckResult]: Loop: 4885#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 4888#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 4884#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 4885#L34 [2024-10-12 00:22:57,594 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:57,594 INFO L85 PathProgramCache]: Analyzing trace with hash -726335849, now seen corresponding path program 20 times [2024-10-12 00:22:57,594 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:57,594 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [275833631] [2024-10-12 00:22:57,594 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:57,594 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:57,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:57,634 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:57,668 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:57,674 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:57,675 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:57,675 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 12 times [2024-10-12 00:22:57,675 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:57,675 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [188221956] [2024-10-12 00:22:57,675 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:57,675 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:57,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:57,678 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:57,680 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:57,682 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:57,682 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:57,682 INFO L85 PathProgramCache]: Analyzing trace with hash -225993601, now seen corresponding path program 21 times [2024-10-12 00:22:57,682 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:57,682 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [507316333] [2024-10-12 00:22:57,683 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:57,683 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:57,700 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:22:58,188 INFO L134 CoverageAnalysis]: Checked inductivity of 297 backedges. 145 proven. 152 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:58,188 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:22:58,189 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [507316333] [2024-10-12 00:22:58,189 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [507316333] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:22:58,189 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [210364917] [2024-10-12 00:22:58,189 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:22:58,189 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:22:58,189 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:22:58,191 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:22:58,199 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (22)] Waiting until timeout for monitored process [2024-10-12 00:22:58,399 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 12 check-sat command(s) [2024-10-12 00:22:58,399 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:22:58,402 INFO L255 TraceCheckSpWp]: Trace formula consists of 272 conjuncts, 26 conjuncts are in the unsatisfiable core [2024-10-12 00:22:58,407 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:22:58,792 INFO L134 CoverageAnalysis]: Checked inductivity of 297 backedges. 176 proven. 121 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:58,793 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:22:59,150 INFO L134 CoverageAnalysis]: Checked inductivity of 297 backedges. 176 proven. 121 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:22:59,150 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [210364917] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:22:59,150 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:22:59,150 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 26, 26] total 40 [2024-10-12 00:22:59,150 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [805598864] [2024-10-12 00:22:59,151 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:22:59,190 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:22:59,190 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 41 interpolants. [2024-10-12 00:22:59,191 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=395, Invalid=1245, Unknown=0, NotChecked=0, Total=1640 [2024-10-12 00:22:59,191 INFO L87 Difference]: Start difference. First operand 100 states and 114 transitions. cyclomatic complexity: 17 Second operand has 41 states, 40 states have (on average 2.55) internal successors, (102), 41 states have internal predecessors, (102), 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-10-12 00:22:59,700 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:22:59,700 INFO L93 Difference]: Finished difference Result 322 states and 373 transitions. [2024-10-12 00:22:59,700 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 322 states and 373 transitions. [2024-10-12 00:22:59,703 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:59,704 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 322 states to 186 states and 214 transitions. [2024-10-12 00:22:59,704 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 161 [2024-10-12 00:22:59,704 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 161 [2024-10-12 00:22:59,704 INFO L73 IsDeterministic]: Start isDeterministic. Operand 186 states and 214 transitions. [2024-10-12 00:22:59,705 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:22:59,705 INFO L218 hiAutomatonCegarLoop]: Abstraction has 186 states and 214 transitions. [2024-10-12 00:22:59,705 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 186 states and 214 transitions. [2024-10-12 00:22:59,708 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 186 to 108. [2024-10-12 00:22:59,711 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 108 states, 108 states have (on average 1.1388888888888888) internal successors, (123), 107 states have internal predecessors, (123), 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-10-12 00:22:59,712 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 108 states to 108 states and 123 transitions. [2024-10-12 00:22:59,712 INFO L240 hiAutomatonCegarLoop]: Abstraction has 108 states and 123 transitions. [2024-10-12 00:22:59,714 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 27 states. [2024-10-12 00:22:59,715 INFO L425 stractBuchiCegarLoop]: Abstraction has 108 states and 123 transitions. [2024-10-12 00:22:59,715 INFO L332 stractBuchiCegarLoop]: ======== Iteration 14 ============ [2024-10-12 00:22:59,715 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 108 states and 123 transitions. [2024-10-12 00:22:59,716 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:22:59,716 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:22:59,716 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:22:59,717 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [12, 12, 12, 11, 11, 1, 1, 1, 1] [2024-10-12 00:22:59,717 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:22:59,718 INFO L745 eck$LassoCheckResult]: Stem: 5726#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 5708#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 5709#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5724#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5725#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5712#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5713#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5751#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5750#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5749#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5748#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5747#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5746#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5745#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5744#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5743#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5742#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5741#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5740#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5739#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5738#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5737#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5736#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5735#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5734#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 5731#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 5730#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 5714#L27-4 main_~i~0#1 := 0; 5715#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5721#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5707#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5718#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5723#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5806#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5805#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5803#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5800#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5799#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5797#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5794#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5793#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5791#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5788#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5787#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5785#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5782#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5781#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5779#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5776#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5775#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5773#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5770#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5769#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5767#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5764#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5763#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5761#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5759#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5758#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5755#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5753#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5752#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5729#L34 [2024-10-12 00:22:59,722 INFO L747 eck$LassoCheckResult]: Loop: 5729#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 5732#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 5728#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 5729#L34 [2024-10-12 00:22:59,723 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:59,723 INFO L85 PathProgramCache]: Analyzing trace with hash -2083736959, now seen corresponding path program 22 times [2024-10-12 00:22:59,723 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:59,723 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [226716268] [2024-10-12 00:22:59,723 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:59,723 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:59,771 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:59,771 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:59,807 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:59,814 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:59,814 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:59,815 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 13 times [2024-10-12 00:22:59,815 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:59,815 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [422874567] [2024-10-12 00:22:59,815 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:59,815 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:59,818 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:59,819 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:22:59,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:22:59,821 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:22:59,822 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:22:59,822 INFO L85 PathProgramCache]: Analyzing trace with hash -1445369771, now seen corresponding path program 23 times [2024-10-12 00:22:59,822 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:22:59,822 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2001642282] [2024-10-12 00:22:59,822 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:22:59,822 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:22:59,842 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:00,388 INFO L134 CoverageAnalysis]: Checked inductivity of 354 backedges. 176 proven. 178 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:00,388 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:00,389 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2001642282] [2024-10-12 00:23:00,389 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2001642282] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:00,389 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1884605057] [2024-10-12 00:23:00,389 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:23:00,389 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:00,389 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:00,392 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:00,440 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (23)] Waiting until timeout for monitored process [2024-10-12 00:23:00,720 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 13 check-sat command(s) [2024-10-12 00:23:00,721 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:00,723 INFO L255 TraceCheckSpWp]: Trace formula consists of 293 conjuncts, 28 conjuncts are in the unsatisfiable core [2024-10-12 00:23:00,726 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:01,163 INFO L134 CoverageAnalysis]: Checked inductivity of 354 backedges. 210 proven. 144 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:01,163 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:01,506 INFO L134 CoverageAnalysis]: Checked inductivity of 354 backedges. 210 proven. 144 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:01,506 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1884605057] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:01,506 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:01,506 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [28, 28, 28] total 43 [2024-10-12 00:23:01,506 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [857235332] [2024-10-12 00:23:01,507 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:01,547 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:01,548 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 44 interpolants. [2024-10-12 00:23:01,548 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=453, Invalid=1439, Unknown=0, NotChecked=0, Total=1892 [2024-10-12 00:23:01,549 INFO L87 Difference]: Start difference. First operand 108 states and 123 transitions. cyclomatic complexity: 18 Second operand has 44 states, 43 states have (on average 2.558139534883721) internal successors, (110), 44 states have internal predecessors, (110), 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-10-12 00:23:02,128 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:02,128 INFO L93 Difference]: Finished difference Result 348 states and 403 transitions. [2024-10-12 00:23:02,128 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 348 states and 403 transitions. [2024-10-12 00:23:02,131 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:02,132 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 348 states to 200 states and 230 transitions. [2024-10-12 00:23:02,132 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 173 [2024-10-12 00:23:02,132 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 173 [2024-10-12 00:23:02,132 INFO L73 IsDeterministic]: Start isDeterministic. Operand 200 states and 230 transitions. [2024-10-12 00:23:02,133 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:02,133 INFO L218 hiAutomatonCegarLoop]: Abstraction has 200 states and 230 transitions. [2024-10-12 00:23:02,133 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 200 states and 230 transitions. [2024-10-12 00:23:02,134 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 200 to 116. [2024-10-12 00:23:02,135 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 116 states, 116 states have (on average 1.1379310344827587) internal successors, (132), 115 states have internal predecessors, (132), 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-10-12 00:23:02,135 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 116 states to 116 states and 132 transitions. [2024-10-12 00:23:02,135 INFO L240 hiAutomatonCegarLoop]: Abstraction has 116 states and 132 transitions. [2024-10-12 00:23:02,136 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2024-10-12 00:23:02,137 INFO L425 stractBuchiCegarLoop]: Abstraction has 116 states and 132 transitions. [2024-10-12 00:23:02,137 INFO L332 stractBuchiCegarLoop]: ======== Iteration 15 ============ [2024-10-12 00:23:02,137 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 116 states and 132 transitions. [2024-10-12 00:23:02,138 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:02,138 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:02,138 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:02,139 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [13, 13, 13, 12, 12, 1, 1, 1, 1] [2024-10-12 00:23:02,140 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:02,140 INFO L745 eck$LassoCheckResult]: Stem: 6637#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 6621#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 6622#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6638#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6639#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6625#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6626#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6666#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6665#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6664#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6663#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6662#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6661#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6660#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6659#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6658#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6657#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6656#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6655#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6654#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6653#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6652#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6651#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6650#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6649#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6648#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6647#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 6644#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 6643#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 6627#L27-4 main_~i~0#1 := 0; 6628#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6634#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6620#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6631#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6636#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6727#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6726#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6724#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6721#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6720#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6718#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6715#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6714#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6712#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6709#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6708#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6706#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6703#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6702#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6700#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6697#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6696#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6694#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6691#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6690#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6688#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6685#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6684#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6682#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6679#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6678#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6676#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6674#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6673#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6670#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6668#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6667#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6642#L34 [2024-10-12 00:23:02,140 INFO L747 eck$LassoCheckResult]: Loop: 6642#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 6645#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 6641#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 6642#L34 [2024-10-12 00:23:02,140 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:02,141 INFO L85 PathProgramCache]: Analyzing trace with hash -1447312493, now seen corresponding path program 24 times [2024-10-12 00:23:02,141 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:02,141 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1603220243] [2024-10-12 00:23:02,141 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:02,141 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:02,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:02,185 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:02,221 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:02,231 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:02,231 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:02,231 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 14 times [2024-10-12 00:23:02,232 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:02,232 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1568622608] [2024-10-12 00:23:02,232 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:02,232 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:02,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:02,237 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:02,239 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:02,240 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:02,242 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:02,242 INFO L85 PathProgramCache]: Analyzing trace with hash 290252291, now seen corresponding path program 25 times [2024-10-12 00:23:02,242 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:02,242 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1555370284] [2024-10-12 00:23:02,242 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:02,242 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:02,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:03,001 INFO L134 CoverageAnalysis]: Checked inductivity of 416 backedges. 210 proven. 206 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:03,002 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:03,002 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1555370284] [2024-10-12 00:23:03,002 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1555370284] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:03,002 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1910483072] [2024-10-12 00:23:03,002 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:23:03,002 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:03,002 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:03,004 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:03,007 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (24)] Waiting until timeout for monitored process [2024-10-12 00:23:03,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:03,120 INFO L255 TraceCheckSpWp]: Trace formula consists of 314 conjuncts, 30 conjuncts are in the unsatisfiable core [2024-10-12 00:23:03,122 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:03,614 INFO L134 CoverageAnalysis]: Checked inductivity of 416 backedges. 247 proven. 169 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:03,614 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:04,003 INFO L134 CoverageAnalysis]: Checked inductivity of 416 backedges. 247 proven. 169 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:04,005 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1910483072] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:04,005 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:04,005 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [30, 30, 30] total 46 [2024-10-12 00:23:04,005 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1695026909] [2024-10-12 00:23:04,005 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:04,048 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:04,049 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 47 interpolants. [2024-10-12 00:23:04,049 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=515, Invalid=1647, Unknown=0, NotChecked=0, Total=2162 [2024-10-12 00:23:04,050 INFO L87 Difference]: Start difference. First operand 116 states and 132 transitions. cyclomatic complexity: 19 Second operand has 47 states, 46 states have (on average 2.5652173913043477) internal successors, (118), 47 states have internal predecessors, (118), 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-10-12 00:23:04,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:04,656 INFO L93 Difference]: Finished difference Result 374 states and 433 transitions. [2024-10-12 00:23:04,656 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 374 states and 433 transitions. [2024-10-12 00:23:04,659 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:04,660 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 374 states to 214 states and 246 transitions. [2024-10-12 00:23:04,660 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 185 [2024-10-12 00:23:04,660 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 185 [2024-10-12 00:23:04,661 INFO L73 IsDeterministic]: Start isDeterministic. Operand 214 states and 246 transitions. [2024-10-12 00:23:04,661 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:04,661 INFO L218 hiAutomatonCegarLoop]: Abstraction has 214 states and 246 transitions. [2024-10-12 00:23:04,661 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 214 states and 246 transitions. [2024-10-12 00:23:04,663 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 214 to 124. [2024-10-12 00:23:04,663 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 124 states, 124 states have (on average 1.1370967741935485) internal successors, (141), 123 states have internal predecessors, (141), 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-10-12 00:23:04,664 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 124 states to 124 states and 141 transitions. [2024-10-12 00:23:04,664 INFO L240 hiAutomatonCegarLoop]: Abstraction has 124 states and 141 transitions. [2024-10-12 00:23:04,666 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2024-10-12 00:23:04,666 INFO L425 stractBuchiCegarLoop]: Abstraction has 124 states and 141 transitions. [2024-10-12 00:23:04,666 INFO L332 stractBuchiCegarLoop]: ======== Iteration 16 ============ [2024-10-12 00:23:04,666 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 124 states and 141 transitions. [2024-10-12 00:23:04,667 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:04,667 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:04,667 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:04,668 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [14, 14, 14, 13, 13, 1, 1, 1, 1] [2024-10-12 00:23:04,668 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:04,669 INFO L745 eck$LassoCheckResult]: Stem: 7619#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 7603#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 7604#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7620#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7621#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7607#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7608#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7650#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7649#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7648#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7647#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7646#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7645#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7644#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7643#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7642#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7641#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7640#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7639#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7638#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7637#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7636#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7635#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7634#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7633#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7632#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7631#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7630#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7629#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 7626#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 7625#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 7609#L27-4 main_~i~0#1 := 0; 7610#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7616#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7602#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7613#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7618#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7717#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7716#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7714#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7711#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7710#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7708#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7705#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7704#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7702#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7699#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7698#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7696#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7693#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7692#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7690#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7687#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7686#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7684#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7681#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7680#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7678#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7675#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7674#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7672#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7669#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7668#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7666#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7663#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7662#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7660#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7658#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7657#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7654#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7652#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7651#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7624#L34 [2024-10-12 00:23:04,670 INFO L747 eck$LassoCheckResult]: Loop: 7624#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 7627#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 7623#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 7624#L34 [2024-10-12 00:23:04,670 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:04,670 INFO L85 PathProgramCache]: Analyzing trace with hash 1635246469, now seen corresponding path program 26 times [2024-10-12 00:23:04,671 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:04,671 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1923603575] [2024-10-12 00:23:04,671 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:04,671 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:04,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:04,743 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:04,786 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:04,795 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:04,796 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:04,796 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 15 times [2024-10-12 00:23:04,796 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:04,796 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [143929989] [2024-10-12 00:23:04,796 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:04,796 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:04,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:04,800 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:04,802 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:04,804 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:04,804 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:04,805 INFO L85 PathProgramCache]: Analyzing trace with hash 2108533457, now seen corresponding path program 27 times [2024-10-12 00:23:04,805 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:04,805 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [443589315] [2024-10-12 00:23:04,805 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:04,805 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:04,886 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:05,536 INFO L134 CoverageAnalysis]: Checked inductivity of 483 backedges. 247 proven. 236 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:05,536 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:05,537 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [443589315] [2024-10-12 00:23:05,537 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [443589315] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:05,537 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [18098512] [2024-10-12 00:23:05,537 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:23:05,537 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:05,537 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:05,539 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:05,540 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (25)] Waiting until timeout for monitored process [2024-10-12 00:23:06,036 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 15 check-sat command(s) [2024-10-12 00:23:06,037 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:06,041 INFO L255 TraceCheckSpWp]: Trace formula consists of 335 conjuncts, 32 conjuncts are in the unsatisfiable core [2024-10-12 00:23:06,043 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:06,584 INFO L134 CoverageAnalysis]: Checked inductivity of 483 backedges. 287 proven. 196 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:06,584 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:07,006 INFO L134 CoverageAnalysis]: Checked inductivity of 483 backedges. 287 proven. 196 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:07,007 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [18098512] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:07,007 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:07,007 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [32, 32, 32] total 49 [2024-10-12 00:23:07,007 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [886194583] [2024-10-12 00:23:07,007 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:07,046 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:07,048 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 50 interpolants. [2024-10-12 00:23:07,049 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=581, Invalid=1869, Unknown=0, NotChecked=0, Total=2450 [2024-10-12 00:23:07,050 INFO L87 Difference]: Start difference. First operand 124 states and 141 transitions. cyclomatic complexity: 20 Second operand has 50 states, 49 states have (on average 2.5714285714285716) internal successors, (126), 50 states have internal predecessors, (126), 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-10-12 00:23:07,733 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:07,733 INFO L93 Difference]: Finished difference Result 400 states and 463 transitions. [2024-10-12 00:23:07,733 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 400 states and 463 transitions. [2024-10-12 00:23:07,736 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:07,737 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 400 states to 228 states and 262 transitions. [2024-10-12 00:23:07,737 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 197 [2024-10-12 00:23:07,737 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 197 [2024-10-12 00:23:07,738 INFO L73 IsDeterministic]: Start isDeterministic. Operand 228 states and 262 transitions. [2024-10-12 00:23:07,738 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:07,738 INFO L218 hiAutomatonCegarLoop]: Abstraction has 228 states and 262 transitions. [2024-10-12 00:23:07,738 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 228 states and 262 transitions. [2024-10-12 00:23:07,740 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 228 to 132. [2024-10-12 00:23:07,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 132 states, 132 states have (on average 1.1363636363636365) internal successors, (150), 131 states have internal predecessors, (150), 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-10-12 00:23:07,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 150 transitions. [2024-10-12 00:23:07,741 INFO L240 hiAutomatonCegarLoop]: Abstraction has 132 states and 150 transitions. [2024-10-12 00:23:07,741 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2024-10-12 00:23:07,743 INFO L425 stractBuchiCegarLoop]: Abstraction has 132 states and 150 transitions. [2024-10-12 00:23:07,746 INFO L332 stractBuchiCegarLoop]: ======== Iteration 17 ============ [2024-10-12 00:23:07,746 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 132 states and 150 transitions. [2024-10-12 00:23:07,747 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:07,747 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:07,747 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:07,748 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [15, 15, 15, 14, 14, 1, 1, 1, 1] [2024-10-12 00:23:07,748 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:07,748 INFO L745 eck$LassoCheckResult]: Stem: 8670#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 8654#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 8655#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8671#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8672#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8658#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8659#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8703#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8702#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8701#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8700#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8699#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8698#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8697#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8696#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8695#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8694#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8693#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8692#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8691#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8690#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8689#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8688#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8687#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8686#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8685#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8684#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8683#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8682#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8681#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8680#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 8677#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 8676#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 8660#L27-4 main_~i~0#1 := 0; 8661#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8667#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8653#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8664#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8669#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8776#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8775#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8773#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8770#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8769#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8767#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8764#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8763#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8761#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8758#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8757#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8755#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8752#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8751#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8749#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8746#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8745#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8743#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8740#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8739#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8737#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8734#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8733#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8731#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8728#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8727#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8725#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8722#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8721#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8719#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8716#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8715#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8713#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8711#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8710#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8707#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8705#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8704#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8675#L34 [2024-10-12 00:23:07,749 INFO L747 eck$LassoCheckResult]: Loop: 8675#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 8678#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 8674#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 8675#L34 [2024-10-12 00:23:07,749 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:07,749 INFO L85 PathProgramCache]: Analyzing trace with hash -436367217, now seen corresponding path program 28 times [2024-10-12 00:23:07,749 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:07,749 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1462599497] [2024-10-12 00:23:07,749 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:07,750 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:07,830 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:07,830 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:07,890 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:07,902 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:07,902 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:07,902 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 16 times [2024-10-12 00:23:07,903 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:07,903 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1206041774] [2024-10-12 00:23:07,903 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:07,903 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:07,906 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:07,909 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:07,911 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:07,913 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:07,914 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:07,914 INFO L85 PathProgramCache]: Analyzing trace with hash 1050290055, now seen corresponding path program 29 times [2024-10-12 00:23:07,914 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:07,914 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1673590019] [2024-10-12 00:23:07,914 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:07,915 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:07,939 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:08,867 INFO L134 CoverageAnalysis]: Checked inductivity of 555 backedges. 287 proven. 268 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:08,868 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:08,868 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1673590019] [2024-10-12 00:23:08,868 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1673590019] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:08,868 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [432131227] [2024-10-12 00:23:08,868 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:23:08,868 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:08,869 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:08,874 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:08,882 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (26)] Waiting until timeout for monitored process [2024-10-12 00:23:09,351 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2024-10-12 00:23:09,351 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:09,356 INFO L255 TraceCheckSpWp]: Trace formula consists of 356 conjuncts, 34 conjuncts are in the unsatisfiable core [2024-10-12 00:23:09,358 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:09,948 INFO L134 CoverageAnalysis]: Checked inductivity of 555 backedges. 330 proven. 225 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:09,948 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:10,423 INFO L134 CoverageAnalysis]: Checked inductivity of 555 backedges. 330 proven. 225 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:10,424 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [432131227] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:10,424 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:10,424 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [34, 34, 34] total 52 [2024-10-12 00:23:10,424 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [324342036] [2024-10-12 00:23:10,425 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:10,464 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:10,464 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 53 interpolants. [2024-10-12 00:23:10,465 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=651, Invalid=2105, Unknown=0, NotChecked=0, Total=2756 [2024-10-12 00:23:10,466 INFO L87 Difference]: Start difference. First operand 132 states and 150 transitions. cyclomatic complexity: 21 Second operand has 53 states, 52 states have (on average 2.576923076923077) internal successors, (134), 53 states have internal predecessors, (134), 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-10-12 00:23:11,207 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:11,207 INFO L93 Difference]: Finished difference Result 426 states and 493 transitions. [2024-10-12 00:23:11,208 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 426 states and 493 transitions. [2024-10-12 00:23:11,210 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:11,211 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 426 states to 242 states and 278 transitions. [2024-10-12 00:23:11,211 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 209 [2024-10-12 00:23:11,212 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 209 [2024-10-12 00:23:11,212 INFO L73 IsDeterministic]: Start isDeterministic. Operand 242 states and 278 transitions. [2024-10-12 00:23:11,212 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:11,212 INFO L218 hiAutomatonCegarLoop]: Abstraction has 242 states and 278 transitions. [2024-10-12 00:23:11,212 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 242 states and 278 transitions. [2024-10-12 00:23:11,214 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 242 to 140. [2024-10-12 00:23:11,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 140 states, 140 states have (on average 1.1357142857142857) internal successors, (159), 139 states have internal predecessors, (159), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2024-10-12 00:23:11,215 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 140 states to 140 states and 159 transitions. [2024-10-12 00:23:11,215 INFO L240 hiAutomatonCegarLoop]: Abstraction has 140 states and 159 transitions. [2024-10-12 00:23:11,215 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 35 states. [2024-10-12 00:23:11,216 INFO L425 stractBuchiCegarLoop]: Abstraction has 140 states and 159 transitions. [2024-10-12 00:23:11,216 INFO L332 stractBuchiCegarLoop]: ======== Iteration 18 ============ [2024-10-12 00:23:11,216 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 140 states and 159 transitions. [2024-10-12 00:23:11,217 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:11,217 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:11,217 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:11,220 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [16, 16, 16, 15, 15, 1, 1, 1, 1] [2024-10-12 00:23:11,221 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:11,221 INFO L745 eck$LassoCheckResult]: Stem: 9790#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 9774#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 9775#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9791#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9792#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9778#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9779#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9825#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9824#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9823#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9822#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9821#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9820#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9819#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9818#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9817#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9816#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9815#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9814#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9813#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9812#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9811#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9810#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9809#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9808#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9807#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9806#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9805#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9804#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9803#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9802#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9801#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9800#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 9797#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 9796#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 9780#L27-4 main_~i~0#1 := 0; 9781#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9787#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9773#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9784#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9789#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9904#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9903#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9901#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9898#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9897#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9895#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9892#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9891#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9889#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9886#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9885#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9883#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9880#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9879#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9877#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9874#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9873#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9871#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9868#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9867#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9865#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9862#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9861#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9859#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9856#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9855#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9853#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9850#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9849#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9847#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9844#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9843#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9841#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9838#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9837#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9835#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9833#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9832#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9829#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9827#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9826#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9795#L34 [2024-10-12 00:23:11,224 INFO L747 eck$LassoCheckResult]: Loop: 9795#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 9798#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 9794#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 9795#L34 [2024-10-12 00:23:11,225 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:11,225 INFO L85 PathProgramCache]: Analyzing trace with hash -1180030839, now seen corresponding path program 30 times [2024-10-12 00:23:11,225 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:11,225 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [842396031] [2024-10-12 00:23:11,225 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:11,225 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:11,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:11,297 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:11,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:11,382 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:11,383 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:11,383 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 17 times [2024-10-12 00:23:11,383 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:11,383 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1247988108] [2024-10-12 00:23:11,383 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:11,384 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:11,388 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:11,388 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:11,390 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:11,392 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:11,392 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:11,392 INFO L85 PathProgramCache]: Analyzing trace with hash 8639821, now seen corresponding path program 31 times [2024-10-12 00:23:11,392 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:11,393 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [995293750] [2024-10-12 00:23:11,393 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:11,393 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:11,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:12,899 INFO L134 CoverageAnalysis]: Checked inductivity of 632 backedges. 330 proven. 302 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:12,900 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:12,901 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [995293750] [2024-10-12 00:23:12,902 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [995293750] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:12,902 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2000698233] [2024-10-12 00:23:12,902 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:23:12,902 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:12,902 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:12,904 INFO L229 MonitoredProcess]: Starting monitored process 27 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:12,908 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (27)] Waiting until timeout for monitored process [2024-10-12 00:23:13,061 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:13,064 INFO L255 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 36 conjuncts are in the unsatisfiable core [2024-10-12 00:23:13,066 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:13,912 INFO L134 CoverageAnalysis]: Checked inductivity of 632 backedges. 376 proven. 256 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:13,912 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:14,461 INFO L134 CoverageAnalysis]: Checked inductivity of 632 backedges. 376 proven. 256 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:14,462 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2000698233] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:14,462 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:14,462 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [36, 36, 36] total 55 [2024-10-12 00:23:14,463 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1633864367] [2024-10-12 00:23:14,463 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:14,508 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:14,509 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 56 interpolants. [2024-10-12 00:23:14,510 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=725, Invalid=2355, Unknown=0, NotChecked=0, Total=3080 [2024-10-12 00:23:14,511 INFO L87 Difference]: Start difference. First operand 140 states and 159 transitions. cyclomatic complexity: 22 Second operand has 56 states, 55 states have (on average 2.581818181818182) internal successors, (142), 56 states have internal predecessors, (142), 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-10-12 00:23:15,238 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:15,239 INFO L93 Difference]: Finished difference Result 452 states and 523 transitions. [2024-10-12 00:23:15,239 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 452 states and 523 transitions. [2024-10-12 00:23:15,245 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:15,250 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 452 states to 256 states and 294 transitions. [2024-10-12 00:23:15,251 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 221 [2024-10-12 00:23:15,251 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 221 [2024-10-12 00:23:15,251 INFO L73 IsDeterministic]: Start isDeterministic. Operand 256 states and 294 transitions. [2024-10-12 00:23:15,251 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:15,251 INFO L218 hiAutomatonCegarLoop]: Abstraction has 256 states and 294 transitions. [2024-10-12 00:23:15,251 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 256 states and 294 transitions. [2024-10-12 00:23:15,253 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 256 to 148. [2024-10-12 00:23:15,257 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 148 states, 148 states have (on average 1.135135135135135) internal successors, (168), 147 states have internal predecessors, (168), 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-10-12 00:23:15,258 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 148 states to 148 states and 168 transitions. [2024-10-12 00:23:15,258 INFO L240 hiAutomatonCegarLoop]: Abstraction has 148 states and 168 transitions. [2024-10-12 00:23:15,259 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 37 states. [2024-10-12 00:23:15,259 INFO L425 stractBuchiCegarLoop]: Abstraction has 148 states and 168 transitions. [2024-10-12 00:23:15,260 INFO L332 stractBuchiCegarLoop]: ======== Iteration 19 ============ [2024-10-12 00:23:15,260 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 148 states and 168 transitions. [2024-10-12 00:23:15,264 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:15,264 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:15,265 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:15,265 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [17, 17, 17, 16, 16, 1, 1, 1, 1] [2024-10-12 00:23:15,265 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:15,266 INFO L745 eck$LassoCheckResult]: Stem: 10979#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 10963#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 10964#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10980#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10981#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10967#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10968#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11016#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11015#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11014#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11013#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11012#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11011#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11010#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11009#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11008#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11007#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11006#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11005#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11004#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11003#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11002#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 11001#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 11000#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10999#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10998#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10997#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10996#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10995#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10994#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10993#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10992#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10991#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10990#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10989#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 10986#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 10985#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 10969#L27-4 main_~i~0#1 := 0; 10970#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 10976#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 10962#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 10973#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 10978#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11101#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11100#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11098#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11095#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11094#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11092#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11089#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11088#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11086#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11083#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11082#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11080#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11077#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11076#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11074#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11071#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11070#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11068#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11065#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11064#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11062#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11059#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11058#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11056#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11053#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11052#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11050#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11047#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11046#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11044#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11041#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11040#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11038#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11035#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11034#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11032#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11029#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11028#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11026#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11024#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11023#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 11020#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 11018#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 11017#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 10984#L34 [2024-10-12 00:23:15,266 INFO L747 eck$LassoCheckResult]: Loop: 10984#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 10987#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 10983#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 10984#L34 [2024-10-12 00:23:15,266 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:15,266 INFO L85 PathProgramCache]: Analyzing trace with hash -1481235061, now seen corresponding path program 32 times [2024-10-12 00:23:15,267 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:15,267 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1848048422] [2024-10-12 00:23:15,267 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:15,267 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:15,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:15,465 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:15,655 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:15,663 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:15,665 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:15,665 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 18 times [2024-10-12 00:23:15,665 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:15,665 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1255338217] [2024-10-12 00:23:15,665 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:15,666 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:15,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:15,670 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:15,671 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:15,673 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:15,674 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:15,674 INFO L85 PathProgramCache]: Analyzing trace with hash -979656437, now seen corresponding path program 33 times [2024-10-12 00:23:15,674 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:15,674 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [797376920] [2024-10-12 00:23:15,675 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:15,675 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:15,703 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:16,674 INFO L134 CoverageAnalysis]: Checked inductivity of 714 backedges. 376 proven. 338 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:16,675 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:16,675 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [797376920] [2024-10-12 00:23:16,675 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [797376920] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:16,675 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1536772595] [2024-10-12 00:23:16,675 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:23:16,675 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:16,676 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:16,678 INFO L229 MonitoredProcess]: Starting monitored process 28 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:16,679 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (28)] Waiting until timeout for monitored process [2024-10-12 00:23:17,508 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 18 check-sat command(s) [2024-10-12 00:23:17,509 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:17,514 INFO L255 TraceCheckSpWp]: Trace formula consists of 398 conjuncts, 38 conjuncts are in the unsatisfiable core [2024-10-12 00:23:17,516 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:18,238 INFO L134 CoverageAnalysis]: Checked inductivity of 714 backedges. 425 proven. 289 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:18,238 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:18,812 INFO L134 CoverageAnalysis]: Checked inductivity of 714 backedges. 425 proven. 289 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:18,812 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1536772595] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:18,813 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:18,813 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [38, 38, 38] total 58 [2024-10-12 00:23:18,813 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1621379474] [2024-10-12 00:23:18,813 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:18,854 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:18,855 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 59 interpolants. [2024-10-12 00:23:18,856 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=803, Invalid=2619, Unknown=0, NotChecked=0, Total=3422 [2024-10-12 00:23:18,856 INFO L87 Difference]: Start difference. First operand 148 states and 168 transitions. cyclomatic complexity: 23 Second operand has 59 states, 58 states have (on average 2.586206896551724) internal successors, (150), 59 states have internal predecessors, (150), 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-10-12 00:23:19,722 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:19,722 INFO L93 Difference]: Finished difference Result 478 states and 553 transitions. [2024-10-12 00:23:19,722 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 478 states and 553 transitions. [2024-10-12 00:23:19,725 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:19,726 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 478 states to 270 states and 310 transitions. [2024-10-12 00:23:19,726 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 233 [2024-10-12 00:23:19,726 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 233 [2024-10-12 00:23:19,726 INFO L73 IsDeterministic]: Start isDeterministic. Operand 270 states and 310 transitions. [2024-10-12 00:23:19,727 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:19,727 INFO L218 hiAutomatonCegarLoop]: Abstraction has 270 states and 310 transitions. [2024-10-12 00:23:19,727 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 270 states and 310 transitions. [2024-10-12 00:23:19,728 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 270 to 156. [2024-10-12 00:23:19,729 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 156 states, 156 states have (on average 1.1346153846153846) internal successors, (177), 155 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-10-12 00:23:19,729 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 156 states to 156 states and 177 transitions. [2024-10-12 00:23:19,729 INFO L240 hiAutomatonCegarLoop]: Abstraction has 156 states and 177 transitions. [2024-10-12 00:23:19,730 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2024-10-12 00:23:19,730 INFO L425 stractBuchiCegarLoop]: Abstraction has 156 states and 177 transitions. [2024-10-12 00:23:19,731 INFO L332 stractBuchiCegarLoop]: ======== Iteration 20 ============ [2024-10-12 00:23:19,731 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 156 states and 177 transitions. [2024-10-12 00:23:19,731 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:19,731 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:19,732 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:19,733 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [18, 18, 18, 17, 17, 1, 1, 1, 1] [2024-10-12 00:23:19,733 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:19,733 INFO L745 eck$LassoCheckResult]: Stem: 12237#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 12221#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 12222#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12238#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12239#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12225#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12226#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12276#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12275#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12274#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12273#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12272#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12271#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12270#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12269#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12268#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12267#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12266#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12265#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12264#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12263#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12262#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12261#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12260#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12259#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12258#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12257#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12256#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12255#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12254#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12253#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12252#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12251#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12250#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12249#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12248#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12247#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 12244#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 12243#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 12227#L27-4 main_~i~0#1 := 0; 12228#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12234#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12220#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12231#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12236#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12367#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12366#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12364#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12361#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12360#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12358#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12355#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12354#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12352#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12349#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12348#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12346#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12343#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12342#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12340#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12337#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12336#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12334#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12331#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12330#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12328#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12325#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12324#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12322#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12319#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12318#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12316#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12313#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12312#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12310#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12307#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12306#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12304#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12301#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12300#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12298#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12295#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12294#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12292#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12289#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12288#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12286#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12284#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12283#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12280#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12278#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12277#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12242#L34 [2024-10-12 00:23:19,733 INFO L747 eck$LassoCheckResult]: Loop: 12242#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 12245#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 12241#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 12242#L34 [2024-10-12 00:23:19,734 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:19,734 INFO L85 PathProgramCache]: Analyzing trace with hash -1155020915, now seen corresponding path program 34 times [2024-10-12 00:23:19,734 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:19,734 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [687760720] [2024-10-12 00:23:19,734 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:19,734 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:19,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:19,805 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:19,863 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:19,873 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:19,874 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:19,874 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 19 times [2024-10-12 00:23:19,874 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:19,874 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1667295904] [2024-10-12 00:23:19,874 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:19,874 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:19,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:19,879 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:19,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:19,882 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:19,882 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:19,882 INFO L85 PathProgramCache]: Analyzing trace with hash 2049943497, now seen corresponding path program 35 times [2024-10-12 00:23:19,882 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:19,883 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1174450116] [2024-10-12 00:23:19,883 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:19,883 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:19,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:21,110 INFO L134 CoverageAnalysis]: Checked inductivity of 801 backedges. 425 proven. 376 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:21,110 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:21,111 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1174450116] [2024-10-12 00:23:21,111 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1174450116] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:21,111 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1929202258] [2024-10-12 00:23:21,111 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:23:21,111 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:21,111 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:21,113 INFO L229 MonitoredProcess]: Starting monitored process 29 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:21,115 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (29)] Waiting until timeout for monitored process [2024-10-12 00:23:21,807 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 19 check-sat command(s) [2024-10-12 00:23:21,807 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:21,819 INFO L255 TraceCheckSpWp]: Trace formula consists of 419 conjuncts, 40 conjuncts are in the unsatisfiable core [2024-10-12 00:23:21,822 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:22,690 INFO L134 CoverageAnalysis]: Checked inductivity of 801 backedges. 477 proven. 324 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:22,691 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:23,294 INFO L134 CoverageAnalysis]: Checked inductivity of 801 backedges. 477 proven. 324 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:23,294 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1929202258] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:23,294 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:23,295 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [40, 40, 40] total 61 [2024-10-12 00:23:23,295 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1909712905] [2024-10-12 00:23:23,295 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:23,336 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:23,337 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 62 interpolants. [2024-10-12 00:23:23,338 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=885, Invalid=2897, Unknown=0, NotChecked=0, Total=3782 [2024-10-12 00:23:23,339 INFO L87 Difference]: Start difference. First operand 156 states and 177 transitions. cyclomatic complexity: 24 Second operand has 62 states, 61 states have (on average 2.5901639344262297) internal successors, (158), 62 states have internal predecessors, (158), 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-10-12 00:23:24,499 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:24,499 INFO L93 Difference]: Finished difference Result 504 states and 583 transitions. [2024-10-12 00:23:24,499 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 504 states and 583 transitions. [2024-10-12 00:23:24,503 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:24,504 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 504 states to 284 states and 326 transitions. [2024-10-12 00:23:24,504 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 245 [2024-10-12 00:23:24,504 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 245 [2024-10-12 00:23:24,505 INFO L73 IsDeterministic]: Start isDeterministic. Operand 284 states and 326 transitions. [2024-10-12 00:23:24,505 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:24,505 INFO L218 hiAutomatonCegarLoop]: Abstraction has 284 states and 326 transitions. [2024-10-12 00:23:24,505 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 284 states and 326 transitions. [2024-10-12 00:23:24,507 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 284 to 164. [2024-10-12 00:23:24,508 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 164 states, 164 states have (on average 1.1341463414634145) internal successors, (186), 163 states have internal predecessors, (186), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2024-10-12 00:23:24,508 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 164 states to 164 states and 186 transitions. [2024-10-12 00:23:24,508 INFO L240 hiAutomatonCegarLoop]: Abstraction has 164 states and 186 transitions. [2024-10-12 00:23:24,509 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 41 states. [2024-10-12 00:23:24,509 INFO L425 stractBuchiCegarLoop]: Abstraction has 164 states and 186 transitions. [2024-10-12 00:23:24,509 INFO L332 stractBuchiCegarLoop]: ======== Iteration 21 ============ [2024-10-12 00:23:24,510 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 164 states and 186 transitions. [2024-10-12 00:23:24,510 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:24,510 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:24,511 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:24,511 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [19, 19, 19, 18, 18, 1, 1, 1, 1] [2024-10-12 00:23:24,511 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:24,512 INFO L745 eck$LassoCheckResult]: Stem: 13564#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 13548#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 13549#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13565#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13566#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13552#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13553#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13605#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13604#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13603#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13602#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13601#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13600#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13599#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13598#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13597#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13596#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13595#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13594#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13593#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13592#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13591#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13590#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13589#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13588#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13587#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13586#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13585#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13584#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13583#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13582#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13581#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13580#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13579#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13578#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13577#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13576#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13575#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13574#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 13571#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 13570#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 13554#L27-4 main_~i~0#1 := 0; 13555#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13561#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13547#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13558#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13563#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13702#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13701#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13699#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13696#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13695#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13693#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13690#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13689#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13687#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13684#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13683#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13681#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13678#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13677#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13675#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13672#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13671#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13669#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13666#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13665#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13663#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13660#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13659#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13657#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13654#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13653#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13651#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13648#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13647#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13645#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13642#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13641#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13639#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13636#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13635#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13633#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13630#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13629#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13627#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13624#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13623#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13621#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13618#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13617#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13615#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13613#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13612#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13609#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13607#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13606#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13569#L34 [2024-10-12 00:23:24,512 INFO L747 eck$LassoCheckResult]: Loop: 13569#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 13572#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 13568#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 13569#L34 [2024-10-12 00:23:24,513 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:24,513 INFO L85 PathProgramCache]: Analyzing trace with hash -769572217, now seen corresponding path program 36 times [2024-10-12 00:23:24,513 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:24,513 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [846263507] [2024-10-12 00:23:24,513 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:24,513 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:24,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:24,610 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:24,733 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:24,745 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:24,746 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:24,746 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 20 times [2024-10-12 00:23:24,746 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:24,747 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [990540981] [2024-10-12 00:23:24,747 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:24,747 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:24,752 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:24,752 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:24,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:24,756 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:24,756 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:24,756 INFO L85 PathProgramCache]: Analyzing trace with hash 209556111, now seen corresponding path program 37 times [2024-10-12 00:23:24,756 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:24,757 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [501695436] [2024-10-12 00:23:24,757 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:24,757 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:24,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:25,919 INFO L134 CoverageAnalysis]: Checked inductivity of 893 backedges. 477 proven. 416 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:25,919 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:25,919 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [501695436] [2024-10-12 00:23:25,919 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [501695436] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:25,920 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1649561367] [2024-10-12 00:23:25,920 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:23:25,920 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:25,920 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:25,922 INFO L229 MonitoredProcess]: Starting monitored process 30 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:25,925 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (30)] Waiting until timeout for monitored process [2024-10-12 00:23:26,097 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:26,101 INFO L255 TraceCheckSpWp]: Trace formula consists of 440 conjuncts, 42 conjuncts are in the unsatisfiable core [2024-10-12 00:23:26,103 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:26,999 INFO L134 CoverageAnalysis]: Checked inductivity of 893 backedges. 532 proven. 361 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:27,000 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:27,668 INFO L134 CoverageAnalysis]: Checked inductivity of 893 backedges. 532 proven. 361 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:27,669 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1649561367] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:27,669 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:27,669 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [42, 42, 42] total 64 [2024-10-12 00:23:27,669 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1569671852] [2024-10-12 00:23:27,669 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:27,707 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:27,708 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 65 interpolants. [2024-10-12 00:23:27,709 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=971, Invalid=3189, Unknown=0, NotChecked=0, Total=4160 [2024-10-12 00:23:27,709 INFO L87 Difference]: Start difference. First operand 164 states and 186 transitions. cyclomatic complexity: 25 Second operand has 65 states, 64 states have (on average 2.59375) internal successors, (166), 65 states have internal predecessors, (166), 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-10-12 00:23:28,581 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:28,582 INFO L93 Difference]: Finished difference Result 530 states and 613 transitions. [2024-10-12 00:23:28,582 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 530 states and 613 transitions. [2024-10-12 00:23:28,584 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:28,587 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 530 states to 298 states and 342 transitions. [2024-10-12 00:23:28,587 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 257 [2024-10-12 00:23:28,587 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 257 [2024-10-12 00:23:28,588 INFO L73 IsDeterministic]: Start isDeterministic. Operand 298 states and 342 transitions. [2024-10-12 00:23:28,588 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:28,588 INFO L218 hiAutomatonCegarLoop]: Abstraction has 298 states and 342 transitions. [2024-10-12 00:23:28,588 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 298 states and 342 transitions. [2024-10-12 00:23:28,590 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 298 to 172. [2024-10-12 00:23:28,591 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 172 states, 172 states have (on average 1.1337209302325582) internal successors, (195), 171 states have internal predecessors, (195), 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-10-12 00:23:28,591 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 172 states to 172 states and 195 transitions. [2024-10-12 00:23:28,591 INFO L240 hiAutomatonCegarLoop]: Abstraction has 172 states and 195 transitions. [2024-10-12 00:23:28,594 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 43 states. [2024-10-12 00:23:28,594 INFO L425 stractBuchiCegarLoop]: Abstraction has 172 states and 195 transitions. [2024-10-12 00:23:28,594 INFO L332 stractBuchiCegarLoop]: ======== Iteration 22 ============ [2024-10-12 00:23:28,594 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 172 states and 195 transitions. [2024-10-12 00:23:28,595 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:28,595 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:28,595 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:28,596 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [20, 20, 20, 19, 19, 1, 1, 1, 1] [2024-10-12 00:23:28,596 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:28,596 INFO L745 eck$LassoCheckResult]: Stem: 14960#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 14944#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 14945#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14961#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14962#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14948#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14949#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 15003#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 15002#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 15001#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 15000#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14999#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14998#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14997#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14996#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14995#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14994#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14993#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14992#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14991#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14990#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14989#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14988#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14987#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14986#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14985#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14984#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14983#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14982#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14981#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14980#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14979#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14978#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14977#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14976#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14975#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14974#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14973#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14972#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14971#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14970#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 14967#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 14966#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 14950#L27-4 main_~i~0#1 := 0; 14951#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 14957#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 14943#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 14954#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 14959#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15106#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15105#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15103#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15100#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15099#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15097#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15094#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15093#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15091#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15088#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15087#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15085#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15082#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15081#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15079#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15076#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15075#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15073#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15070#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15069#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15067#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15064#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15063#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15061#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15058#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15057#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15055#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15052#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15051#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15049#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15046#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15045#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15043#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15040#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15039#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15037#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15034#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15033#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15031#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15028#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15027#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15025#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15022#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15021#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15019#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15016#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15015#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15013#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15011#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15010#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 15007#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 15005#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 15004#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 14965#L34 [2024-10-12 00:23:28,596 INFO L747 eck$LassoCheckResult]: Loop: 14965#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 14968#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 14964#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 14965#L34 [2024-10-12 00:23:28,597 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:28,597 INFO L85 PathProgramCache]: Analyzing trace with hash 297074321, now seen corresponding path program 38 times [2024-10-12 00:23:28,597 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:28,597 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1707195009] [2024-10-12 00:23:28,597 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:28,597 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:28,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:28,683 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:28,777 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:28,787 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:28,789 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:28,789 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 21 times [2024-10-12 00:23:28,789 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:28,789 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [926769767] [2024-10-12 00:23:28,789 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:28,789 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:28,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:28,793 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:28,794 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:28,796 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:28,797 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:28,797 INFO L85 PathProgramCache]: Analyzing trace with hash -1786453435, now seen corresponding path program 39 times [2024-10-12 00:23:28,797 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:28,797 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [637315600] [2024-10-12 00:23:28,797 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:28,797 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:28,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:30,178 INFO L134 CoverageAnalysis]: Checked inductivity of 990 backedges. 532 proven. 458 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:30,178 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:30,179 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [637315600] [2024-10-12 00:23:30,179 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [637315600] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:30,179 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1301577068] [2024-10-12 00:23:30,179 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:23:30,179 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:30,179 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:30,184 INFO L229 MonitoredProcess]: Starting monitored process 31 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:30,190 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (31)] Waiting until timeout for monitored process [2024-10-12 00:23:32,042 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 21 check-sat command(s) [2024-10-12 00:23:32,043 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:32,050 INFO L255 TraceCheckSpWp]: Trace formula consists of 461 conjuncts, 44 conjuncts are in the unsatisfiable core [2024-10-12 00:23:32,052 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:32,940 INFO L134 CoverageAnalysis]: Checked inductivity of 990 backedges. 590 proven. 400 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:32,940 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:33,662 INFO L134 CoverageAnalysis]: Checked inductivity of 990 backedges. 590 proven. 400 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:33,663 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1301577068] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:33,663 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:33,663 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [44, 44, 44] total 67 [2024-10-12 00:23:33,663 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1287247991] [2024-10-12 00:23:33,663 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:33,699 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:33,700 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 68 interpolants. [2024-10-12 00:23:33,702 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1061, Invalid=3495, Unknown=0, NotChecked=0, Total=4556 [2024-10-12 00:23:33,702 INFO L87 Difference]: Start difference. First operand 172 states and 195 transitions. cyclomatic complexity: 26 Second operand has 68 states, 67 states have (on average 2.5970149253731343) internal successors, (174), 68 states have internal predecessors, (174), 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-10-12 00:23:34,866 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:34,867 INFO L93 Difference]: Finished difference Result 556 states and 643 transitions. [2024-10-12 00:23:34,867 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 556 states and 643 transitions. [2024-10-12 00:23:34,870 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:34,871 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 556 states to 312 states and 358 transitions. [2024-10-12 00:23:34,871 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 269 [2024-10-12 00:23:34,871 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 269 [2024-10-12 00:23:34,871 INFO L73 IsDeterministic]: Start isDeterministic. Operand 312 states and 358 transitions. [2024-10-12 00:23:34,872 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:34,872 INFO L218 hiAutomatonCegarLoop]: Abstraction has 312 states and 358 transitions. [2024-10-12 00:23:34,872 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 312 states and 358 transitions. [2024-10-12 00:23:34,874 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 312 to 180. [2024-10-12 00:23:34,874 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 180 states, 180 states have (on average 1.1333333333333333) internal successors, (204), 179 states have internal predecessors, (204), 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-10-12 00:23:34,875 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 180 states to 180 states and 204 transitions. [2024-10-12 00:23:34,875 INFO L240 hiAutomatonCegarLoop]: Abstraction has 180 states and 204 transitions. [2024-10-12 00:23:34,875 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 45 states. [2024-10-12 00:23:34,876 INFO L425 stractBuchiCegarLoop]: Abstraction has 180 states and 204 transitions. [2024-10-12 00:23:34,876 INFO L332 stractBuchiCegarLoop]: ======== Iteration 23 ============ [2024-10-12 00:23:34,876 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 180 states and 204 transitions. [2024-10-12 00:23:34,876 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:34,876 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:34,877 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:34,877 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [21, 21, 21, 20, 20, 1, 1, 1, 1] [2024-10-12 00:23:34,877 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:34,877 INFO L745 eck$LassoCheckResult]: Stem: 16425#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 16409#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 16410#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16426#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16427#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16413#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16414#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16470#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16469#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16468#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16467#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16466#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16465#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16464#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16463#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16462#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16461#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16460#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16459#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16458#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16457#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16456#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16455#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16454#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16453#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16452#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16451#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16450#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16449#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16448#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16447#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16446#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16445#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16444#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16443#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16442#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16441#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16440#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16439#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16438#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16437#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16436#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16435#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 16432#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 16431#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 16415#L27-4 main_~i~0#1 := 0; 16416#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16422#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16408#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16419#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16424#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16579#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16578#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16576#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16573#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16572#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16570#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16567#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16566#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16564#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16561#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16560#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16558#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16555#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16554#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16552#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16549#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16548#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16546#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16543#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16542#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16540#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16537#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16536#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16534#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16531#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16530#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16528#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16525#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16524#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16522#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16519#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16518#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16516#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16513#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16512#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16510#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16507#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16506#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16504#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16501#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16500#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16498#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16495#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16494#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16492#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16489#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16488#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16486#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16483#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16482#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16480#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16478#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16477#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16474#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16472#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16471#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16430#L34 [2024-10-12 00:23:34,878 INFO L747 eck$LassoCheckResult]: Loop: 16430#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 16433#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 16429#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 16430#L34 [2024-10-12 00:23:34,878 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:34,878 INFO L85 PathProgramCache]: Analyzing trace with hash -1988450429, now seen corresponding path program 40 times [2024-10-12 00:23:34,879 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:34,879 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [955901172] [2024-10-12 00:23:34,879 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:34,879 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:34,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:34,962 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:35,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:35,047 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:35,048 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:35,048 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 22 times [2024-10-12 00:23:35,048 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:35,048 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [560266758] [2024-10-12 00:23:35,048 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:35,048 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:35,052 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:35,053 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:35,054 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:35,056 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:35,056 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:35,056 INFO L85 PathProgramCache]: Analyzing trace with hash -1737737197, now seen corresponding path program 41 times [2024-10-12 00:23:35,057 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:35,057 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [997191047] [2024-10-12 00:23:35,057 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:35,057 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:35,083 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:36,377 INFO L134 CoverageAnalysis]: Checked inductivity of 1092 backedges. 590 proven. 502 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:36,377 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:36,378 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [997191047] [2024-10-12 00:23:36,378 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [997191047] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:36,378 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [284052698] [2024-10-12 00:23:36,378 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:23:36,378 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:36,378 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:36,381 INFO L229 MonitoredProcess]: Starting monitored process 32 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:36,383 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (32)] Waiting until timeout for monitored process [2024-10-12 00:23:37,727 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 22 check-sat command(s) [2024-10-12 00:23:37,728 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:37,734 INFO L255 TraceCheckSpWp]: Trace formula consists of 482 conjuncts, 46 conjuncts are in the unsatisfiable core [2024-10-12 00:23:37,738 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:38,815 INFO L134 CoverageAnalysis]: Checked inductivity of 1092 backedges. 651 proven. 441 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:38,815 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:39,640 INFO L134 CoverageAnalysis]: Checked inductivity of 1092 backedges. 651 proven. 441 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:39,641 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [284052698] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:39,641 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:39,641 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [46, 46, 46] total 70 [2024-10-12 00:23:39,641 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [604972129] [2024-10-12 00:23:39,641 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:39,681 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:39,682 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 71 interpolants. [2024-10-12 00:23:39,683 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1155, Invalid=3815, Unknown=0, NotChecked=0, Total=4970 [2024-10-12 00:23:39,684 INFO L87 Difference]: Start difference. First operand 180 states and 204 transitions. cyclomatic complexity: 27 Second operand has 71 states, 70 states have (on average 2.6) internal successors, (182), 71 states have internal predecessors, (182), 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-10-12 00:23:40,757 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:40,757 INFO L93 Difference]: Finished difference Result 582 states and 673 transitions. [2024-10-12 00:23:40,757 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 582 states and 673 transitions. [2024-10-12 00:23:40,760 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:40,761 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 582 states to 326 states and 374 transitions. [2024-10-12 00:23:40,761 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 281 [2024-10-12 00:23:40,761 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 281 [2024-10-12 00:23:40,761 INFO L73 IsDeterministic]: Start isDeterministic. Operand 326 states and 374 transitions. [2024-10-12 00:23:40,762 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:40,762 INFO L218 hiAutomatonCegarLoop]: Abstraction has 326 states and 374 transitions. [2024-10-12 00:23:40,762 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 326 states and 374 transitions. [2024-10-12 00:23:40,764 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 326 to 188. [2024-10-12 00:23:40,764 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 188 states, 188 states have (on average 1.1329787234042554) internal successors, (213), 187 states have internal predecessors, (213), 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-10-12 00:23:40,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 188 states to 188 states and 213 transitions. [2024-10-12 00:23:40,765 INFO L240 hiAutomatonCegarLoop]: Abstraction has 188 states and 213 transitions. [2024-10-12 00:23:40,765 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 47 states. [2024-10-12 00:23:40,766 INFO L425 stractBuchiCegarLoop]: Abstraction has 188 states and 213 transitions. [2024-10-12 00:23:40,766 INFO L332 stractBuchiCegarLoop]: ======== Iteration 24 ============ [2024-10-12 00:23:40,766 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 188 states and 213 transitions. [2024-10-12 00:23:40,766 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:40,767 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:40,767 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:40,767 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [22, 22, 22, 21, 21, 1, 1, 1, 1] [2024-10-12 00:23:40,767 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:40,768 INFO L745 eck$LassoCheckResult]: Stem: 17959#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 17943#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 17944#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17960#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17961#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17947#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17948#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 18006#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 18005#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 18004#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 18003#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 18002#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 18001#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 18000#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17999#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17998#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17997#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17996#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17995#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17994#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17993#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17992#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17991#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17990#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17989#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17988#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17987#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17986#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17985#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17984#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17983#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17982#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17981#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17980#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17979#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17978#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17977#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17976#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17975#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17974#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17973#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17972#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17971#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17970#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17969#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 17966#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 17965#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 17949#L27-4 main_~i~0#1 := 0; 17950#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 17956#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 17942#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 17953#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 17958#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18121#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18120#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18118#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18115#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18114#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18112#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18109#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18108#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18106#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18103#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18102#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18100#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18097#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18096#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18094#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18091#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18090#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18088#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18085#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18084#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18082#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18079#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18078#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18076#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18073#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18072#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18070#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18067#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18066#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18064#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18061#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18060#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18058#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18055#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18054#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18052#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18049#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18048#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18046#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18043#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18042#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18040#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18037#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18036#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18034#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18031#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18030#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18028#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18025#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18024#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18022#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18019#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18018#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18016#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18014#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18013#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 18010#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 18008#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 18007#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 17964#L34 [2024-10-12 00:23:40,768 INFO L747 eck$LassoCheckResult]: Loop: 17964#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 17967#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 17963#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 17964#L34 [2024-10-12 00:23:40,768 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:40,768 INFO L85 PathProgramCache]: Analyzing trace with hash 1779830165, now seen corresponding path program 42 times [2024-10-12 00:23:40,769 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:40,769 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [447782544] [2024-10-12 00:23:40,769 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:40,769 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:40,857 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:40,857 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:40,932 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:40,942 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:40,943 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:40,943 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 23 times [2024-10-12 00:23:40,943 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:40,943 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2055305908] [2024-10-12 00:23:40,944 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:40,944 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:40,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:40,949 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:40,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:40,952 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:40,952 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:40,952 INFO L85 PathProgramCache]: Analyzing trace with hash 1549223105, now seen corresponding path program 43 times [2024-10-12 00:23:40,952 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:40,952 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [565496702] [2024-10-12 00:23:40,953 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:40,953 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:40,981 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:42,342 INFO L134 CoverageAnalysis]: Checked inductivity of 1199 backedges. 651 proven. 548 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:42,343 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:42,343 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [565496702] [2024-10-12 00:23:42,343 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [565496702] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:42,343 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [503850844] [2024-10-12 00:23:42,343 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:23:42,343 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:42,344 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:42,346 INFO L229 MonitoredProcess]: Starting monitored process 33 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:42,347 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (33)] Waiting until timeout for monitored process [2024-10-12 00:23:42,551 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:42,555 INFO L255 TraceCheckSpWp]: Trace formula consists of 503 conjuncts, 48 conjuncts are in the unsatisfiable core [2024-10-12 00:23:42,557 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:43,602 INFO L134 CoverageAnalysis]: Checked inductivity of 1199 backedges. 715 proven. 484 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:43,602 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:44,415 INFO L134 CoverageAnalysis]: Checked inductivity of 1199 backedges. 715 proven. 484 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:44,416 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [503850844] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:44,416 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:44,416 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [48, 48, 48] total 73 [2024-10-12 00:23:44,416 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [595144392] [2024-10-12 00:23:44,416 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:44,456 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:44,457 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 74 interpolants. [2024-10-12 00:23:44,459 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1253, Invalid=4149, Unknown=0, NotChecked=0, Total=5402 [2024-10-12 00:23:44,459 INFO L87 Difference]: Start difference. First operand 188 states and 213 transitions. cyclomatic complexity: 28 Second operand has 74 states, 73 states have (on average 2.6027397260273974) internal successors, (190), 74 states have internal predecessors, (190), 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-10-12 00:23:45,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:45,615 INFO L93 Difference]: Finished difference Result 608 states and 703 transitions. [2024-10-12 00:23:45,615 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 608 states and 703 transitions. [2024-10-12 00:23:45,618 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:45,620 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 608 states to 340 states and 390 transitions. [2024-10-12 00:23:45,620 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 293 [2024-10-12 00:23:45,620 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 293 [2024-10-12 00:23:45,620 INFO L73 IsDeterministic]: Start isDeterministic. Operand 340 states and 390 transitions. [2024-10-12 00:23:45,620 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:45,621 INFO L218 hiAutomatonCegarLoop]: Abstraction has 340 states and 390 transitions. [2024-10-12 00:23:45,621 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 340 states and 390 transitions. [2024-10-12 00:23:45,623 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 340 to 196. [2024-10-12 00:23:45,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 196 states, 196 states have (on average 1.1326530612244898) internal successors, (222), 195 states have internal predecessors, (222), 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-10-12 00:23:45,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 196 states to 196 states and 222 transitions. [2024-10-12 00:23:45,624 INFO L240 hiAutomatonCegarLoop]: Abstraction has 196 states and 222 transitions. [2024-10-12 00:23:45,624 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 49 states. [2024-10-12 00:23:45,624 INFO L425 stractBuchiCegarLoop]: Abstraction has 196 states and 222 transitions. [2024-10-12 00:23:45,624 INFO L332 stractBuchiCegarLoop]: ======== Iteration 25 ============ [2024-10-12 00:23:45,625 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 196 states and 222 transitions. [2024-10-12 00:23:45,625 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:45,625 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:45,625 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:45,626 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [23, 23, 23, 22, 22, 1, 1, 1, 1] [2024-10-12 00:23:45,626 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:45,627 INFO L745 eck$LassoCheckResult]: Stem: 19562#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 19546#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 19547#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19563#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19564#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19550#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19551#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19611#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19610#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19609#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19608#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19607#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19606#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19605#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19604#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19603#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19602#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19601#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19600#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19599#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19598#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19597#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19596#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19595#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19594#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19593#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19592#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19591#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19590#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19589#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19588#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19587#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19586#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19585#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19584#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19583#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19582#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19581#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19580#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19579#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19578#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19577#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19576#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19575#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19574#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19573#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19572#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 19569#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 19568#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 19552#L27-4 main_~i~0#1 := 0; 19553#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19559#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19545#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19556#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19561#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19732#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19731#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19729#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19726#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19725#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19723#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19720#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19719#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19717#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19714#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19713#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19711#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19708#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19707#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19705#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19702#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19701#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19699#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19696#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19695#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19693#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19690#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19689#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19687#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19684#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19683#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19681#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19678#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19677#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19675#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19672#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19671#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19669#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19666#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19665#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19663#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19660#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19659#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19657#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19654#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19653#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19651#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19648#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19647#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19645#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19642#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19641#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19639#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19636#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19635#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19633#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19630#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19629#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19627#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19624#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19623#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19621#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19619#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19618#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19615#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19613#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19612#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19567#L34 [2024-10-12 00:23:45,627 INFO L747 eck$LassoCheckResult]: Loop: 19567#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 19570#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 19566#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 19567#L34 [2024-10-12 00:23:45,627 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:45,627 INFO L85 PathProgramCache]: Analyzing trace with hash -1359080321, now seen corresponding path program 44 times [2024-10-12 00:23:45,627 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:45,627 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1718088139] [2024-10-12 00:23:45,628 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:45,628 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:45,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:45,743 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:45,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:45,927 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:45,928 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:45,928 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 24 times [2024-10-12 00:23:45,928 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:45,929 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1319512596] [2024-10-12 00:23:45,929 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:45,929 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:45,933 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:45,933 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:45,934 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:45,937 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:45,937 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:45,937 INFO L85 PathProgramCache]: Analyzing trace with hash 294903191, now seen corresponding path program 45 times [2024-10-12 00:23:45,937 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:45,938 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [932591937] [2024-10-12 00:23:45,938 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:45,938 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:45,966 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:47,376 INFO L134 CoverageAnalysis]: Checked inductivity of 1311 backedges. 715 proven. 596 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:47,376 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:47,376 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [932591937] [2024-10-12 00:23:47,376 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [932591937] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:47,376 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1904298928] [2024-10-12 00:23:47,376 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2024-10-12 00:23:47,376 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:47,377 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:47,379 INFO L229 MonitoredProcess]: Starting monitored process 34 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:47,380 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (34)] Waiting until timeout for monitored process [2024-10-12 00:23:50,565 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 24 check-sat command(s) [2024-10-12 00:23:50,565 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:50,573 INFO L255 TraceCheckSpWp]: Trace formula consists of 524 conjuncts, 50 conjuncts are in the unsatisfiable core [2024-10-12 00:23:50,576 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:51,707 INFO L134 CoverageAnalysis]: Checked inductivity of 1311 backedges. 782 proven. 529 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:51,708 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:52,691 INFO L134 CoverageAnalysis]: Checked inductivity of 1311 backedges. 782 proven. 529 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:52,691 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1904298928] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:52,691 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:52,692 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [50, 50, 50] total 76 [2024-10-12 00:23:52,692 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [581302329] [2024-10-12 00:23:52,692 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:52,730 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:52,731 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 77 interpolants. [2024-10-12 00:23:52,732 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1355, Invalid=4497, Unknown=0, NotChecked=0, Total=5852 [2024-10-12 00:23:52,732 INFO L87 Difference]: Start difference. First operand 196 states and 222 transitions. cyclomatic complexity: 29 Second operand has 77 states, 76 states have (on average 2.6052631578947367) internal successors, (198), 77 states have internal predecessors, (198), 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-10-12 00:23:54,063 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:23:54,064 INFO L93 Difference]: Finished difference Result 634 states and 733 transitions. [2024-10-12 00:23:54,064 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 634 states and 733 transitions. [2024-10-12 00:23:54,067 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:54,068 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 634 states to 354 states and 406 transitions. [2024-10-12 00:23:54,068 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 305 [2024-10-12 00:23:54,068 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 305 [2024-10-12 00:23:54,068 INFO L73 IsDeterministic]: Start isDeterministic. Operand 354 states and 406 transitions. [2024-10-12 00:23:54,069 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:23:54,069 INFO L218 hiAutomatonCegarLoop]: Abstraction has 354 states and 406 transitions. [2024-10-12 00:23:54,069 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 354 states and 406 transitions. [2024-10-12 00:23:54,071 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 354 to 204. [2024-10-12 00:23:54,071 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 204 states, 204 states have (on average 1.1323529411764706) internal successors, (231), 203 states have internal predecessors, (231), 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-10-12 00:23:54,072 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 204 states to 204 states and 231 transitions. [2024-10-12 00:23:54,072 INFO L240 hiAutomatonCegarLoop]: Abstraction has 204 states and 231 transitions. [2024-10-12 00:23:54,072 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 51 states. [2024-10-12 00:23:54,073 INFO L425 stractBuchiCegarLoop]: Abstraction has 204 states and 231 transitions. [2024-10-12 00:23:54,073 INFO L332 stractBuchiCegarLoop]: ======== Iteration 26 ============ [2024-10-12 00:23:54,073 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 204 states and 231 transitions. [2024-10-12 00:23:54,073 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:23:54,074 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:23:54,074 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:23:54,074 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [24, 24, 24, 23, 23, 1, 1, 1, 1] [2024-10-12 00:23:54,074 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:23:54,075 INFO L745 eck$LassoCheckResult]: Stem: 21234#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 21218#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 21219#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21235#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21236#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21222#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21223#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21285#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21284#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21283#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21282#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21281#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21280#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21279#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21278#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21277#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21276#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21275#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21274#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21273#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21272#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21271#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21270#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21269#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21268#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21267#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21266#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21265#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21264#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21263#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21262#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21261#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21260#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21259#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21258#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21257#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21256#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21255#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21254#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21253#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21252#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21251#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21250#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21249#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21248#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21247#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21246#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21245#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21244#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 21241#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 21240#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 21224#L27-4 main_~i~0#1 := 0; 21225#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21231#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21217#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21228#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21233#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21412#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21411#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21409#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21406#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21405#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21403#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21400#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21399#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21397#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21394#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21393#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21391#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21388#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21387#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21385#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21382#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21381#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21379#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21376#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21375#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21373#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21370#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21369#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21367#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21364#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21363#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21361#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21358#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21357#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21355#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21352#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21351#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21349#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21346#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21345#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21343#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21340#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21339#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21337#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21334#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21333#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21331#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21328#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21327#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21325#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21322#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21321#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21319#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21316#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21315#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21313#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21310#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21309#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21307#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21304#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21303#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21301#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21298#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21297#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21295#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21293#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21292#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21289#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21287#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21286#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21239#L34 [2024-10-12 00:23:54,075 INFO L747 eck$LassoCheckResult]: Loop: 21239#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 21242#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 21238#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 21239#L34 [2024-10-12 00:23:54,075 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:54,075 INFO L85 PathProgramCache]: Analyzing trace with hash -166775655, now seen corresponding path program 46 times [2024-10-12 00:23:54,076 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:54,076 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [179139934] [2024-10-12 00:23:54,076 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:54,076 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:54,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:54,194 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:54,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:54,330 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:54,331 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:54,331 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 25 times [2024-10-12 00:23:54,331 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:54,331 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [381617375] [2024-10-12 00:23:54,331 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:54,331 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:54,335 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:54,335 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:23:54,336 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:23:54,339 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:23:54,339 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:23:54,340 INFO L85 PathProgramCache]: Analyzing trace with hash 863670077, now seen corresponding path program 47 times [2024-10-12 00:23:54,340 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:23:54,340 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1093838024] [2024-10-12 00:23:54,340 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:23:54,340 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:23:54,370 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:23:56,151 INFO L134 CoverageAnalysis]: Checked inductivity of 1428 backedges. 782 proven. 646 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:56,151 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:23:56,151 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1093838024] [2024-10-12 00:23:56,151 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1093838024] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:23:56,151 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1605180918] [2024-10-12 00:23:56,151 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2024-10-12 00:23:56,151 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:23:56,152 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:23:56,154 INFO L229 MonitoredProcess]: Starting monitored process 35 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:23:56,155 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (35)] Waiting until timeout for monitored process [2024-10-12 00:23:57,774 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 25 check-sat command(s) [2024-10-12 00:23:57,774 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2024-10-12 00:23:57,783 INFO L255 TraceCheckSpWp]: Trace formula consists of 545 conjuncts, 52 conjuncts are in the unsatisfiable core [2024-10-12 00:23:57,785 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:23:58,993 INFO L134 CoverageAnalysis]: Checked inductivity of 1428 backedges. 852 proven. 576 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:58,994 INFO L311 TraceCheckSpWp]: Computing backward predicates... [2024-10-12 00:23:59,949 INFO L134 CoverageAnalysis]: Checked inductivity of 1428 backedges. 852 proven. 576 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:23:59,950 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1605180918] provided 0 perfect and 2 imperfect interpolant sequences [2024-10-12 00:23:59,950 INFO L185 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2024-10-12 00:23:59,950 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [52, 52, 52] total 79 [2024-10-12 00:23:59,950 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1066980320] [2024-10-12 00:23:59,950 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2024-10-12 00:23:59,988 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-10-12 00:23:59,989 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 80 interpolants. [2024-10-12 00:23:59,991 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1461, Invalid=4859, Unknown=0, NotChecked=0, Total=6320 [2024-10-12 00:23:59,991 INFO L87 Difference]: Start difference. First operand 204 states and 231 transitions. cyclomatic complexity: 30 Second operand has 80 states, 79 states have (on average 2.607594936708861) internal successors, (206), 80 states have internal predecessors, (206), 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-10-12 00:24:01,162 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2024-10-12 00:24:01,162 INFO L93 Difference]: Finished difference Result 660 states and 763 transitions. [2024-10-12 00:24:01,162 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 660 states and 763 transitions. [2024-10-12 00:24:01,165 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:24:01,166 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 660 states to 368 states and 422 transitions. [2024-10-12 00:24:01,166 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 317 [2024-10-12 00:24:01,166 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 317 [2024-10-12 00:24:01,166 INFO L73 IsDeterministic]: Start isDeterministic. Operand 368 states and 422 transitions. [2024-10-12 00:24:01,167 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2024-10-12 00:24:01,167 INFO L218 hiAutomatonCegarLoop]: Abstraction has 368 states and 422 transitions. [2024-10-12 00:24:01,167 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 368 states and 422 transitions. [2024-10-12 00:24:01,171 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 368 to 212. [2024-10-12 00:24:01,172 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 212 states, 212 states have (on average 1.1320754716981132) internal successors, (240), 211 states have internal predecessors, (240), 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-10-12 00:24:01,172 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 212 states to 212 states and 240 transitions. [2024-10-12 00:24:01,173 INFO L240 hiAutomatonCegarLoop]: Abstraction has 212 states and 240 transitions. [2024-10-12 00:24:01,173 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 53 states. [2024-10-12 00:24:01,174 INFO L425 stractBuchiCegarLoop]: Abstraction has 212 states and 240 transitions. [2024-10-12 00:24:01,174 INFO L332 stractBuchiCegarLoop]: ======== Iteration 27 ============ [2024-10-12 00:24:01,174 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 212 states and 240 transitions. [2024-10-12 00:24:01,175 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 12 [2024-10-12 00:24:01,175 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-10-12 00:24:01,175 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-10-12 00:24:01,179 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [25, 25, 25, 24, 24, 1, 1, 1, 1] [2024-10-12 00:24:01,180 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2024-10-12 00:24:01,180 INFO L745 eck$LassoCheckResult]: Stem: 22975#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int#0(48, 1, 0, 1);call write~init~int#0(0, 1, 1, 1);call #Ultimate.allocInit(18, 2); 22959#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet1#1, main_#t~nondet2#1, main_#t~post3#1, main_#t~mem4#1, main_#t~mem5#1, main_#t~post6#1, main_#t~mem7#1, main_#t~mem8#1, main_#t~post9#1, main_~#array~0#1.base, main_~#array~0#1.offset, main_~i~0#1, main_~num~0#1;call main_~#array~0#1.base, main_~#array~0#1.offset := #Ultimate.allocOnStack(400000);havoc main_~i~0#1;havoc main_#t~nondet1#1;main_~num~0#1 := main_#t~nondet1#1;havoc main_#t~nondet1#1;main_~i~0#1 := 0; 22960#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22976#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22977#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22963#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22964#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23028#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23027#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23026#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23025#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23024#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23023#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23022#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23021#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23020#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23019#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23018#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23017#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23016#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23015#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23014#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23013#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23012#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23011#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23010#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23009#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23008#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23007#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23006#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23005#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23004#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23003#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23002#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 23001#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 23000#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22999#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22998#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22997#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22996#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22995#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22994#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22993#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22992#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22991#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22990#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22989#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22988#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22987#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22986#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22985#L27-3 assume !!(main_~i~0#1 < main_~num~0#1);havoc main_#t~nondet2#1;call write~int#1(main_#t~nondet2#1, main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4);havoc main_#t~nondet2#1; 22982#L27-2 main_#t~post3#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post3#1;havoc main_#t~post3#1; 22981#L27-3 assume !(main_~i~0#1 < main_~num~0#1); 22965#L27-4 main_~i~0#1 := 0; 22966#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 22972#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 22958#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 22969#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 22974#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23161#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23160#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23158#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23155#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23154#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23152#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23149#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23148#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23146#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23143#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23142#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23140#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23137#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23136#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23134#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23131#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23130#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23128#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23125#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23124#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23122#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23119#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23118#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23116#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23113#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23112#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23110#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23107#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23106#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23104#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23101#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23100#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23098#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23095#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23094#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23092#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23089#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23088#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23086#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23083#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23082#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23080#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23077#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23076#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23074#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23071#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23070#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23068#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23065#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23064#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23062#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23059#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23058#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23056#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23053#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23052#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23050#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23047#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23046#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23044#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23041#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23040#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23038#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23036#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23035#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 23032#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 23030#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 23029#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 22980#L34 [2024-10-12 00:24:01,180 INFO L747 eck$LassoCheckResult]: Loop: 22980#L34 assume !(0 == (if main_#t~mem4#1 < 0 && 0 != main_#t~mem4#1 % 2 then main_#t~mem4#1 % 2 - 2 else main_#t~mem4#1 % 2));havoc main_#t~mem4#1; 22983#L32-2 main_#t~post6#1 := main_~i~0#1;main_~i~0#1 := 1 + main_#t~post6#1;havoc main_#t~post6#1; 22979#L32-3 assume !!(main_~i~0#1 < main_~num~0#1);call main_#t~mem4#1 := read~int#1(main_~#array~0#1.base, main_~#array~0#1.offset + 4 * main_~i~0#1, 4); 22980#L34 [2024-10-12 00:24:01,180 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:24:01,180 INFO L85 PathProgramCache]: Analyzing trace with hash 1558661499, now seen corresponding path program 48 times [2024-10-12 00:24:01,181 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:24:01,181 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2089112587] [2024-10-12 00:24:01,181 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:24:01,181 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:24:01,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:24:01,470 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:24:01,696 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:24:01,707 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:24:01,708 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:24:01,708 INFO L85 PathProgramCache]: Analyzing trace with hash 76501, now seen corresponding path program 26 times [2024-10-12 00:24:01,708 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:24:01,708 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [331151262] [2024-10-12 00:24:01,708 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:24:01,708 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:24:01,714 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:24:01,714 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-10-12 00:24:01,715 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-10-12 00:24:01,718 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-10-12 00:24:01,718 INFO L157 PredicateUnifier]: Initialized classic predicate unifier [2024-10-12 00:24:01,719 INFO L85 PathProgramCache]: Analyzing trace with hash 1193326363, now seen corresponding path program 49 times [2024-10-12 00:24:01,720 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-10-12 00:24:01,720 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [572401350] [2024-10-12 00:24:01,720 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-10-12 00:24:01,720 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-10-12 00:24:01,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:24:03,414 INFO L134 CoverageAnalysis]: Checked inductivity of 1550 backedges. 852 proven. 698 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:24:03,415 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-10-12 00:24:03,415 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [572401350] [2024-10-12 00:24:03,415 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [572401350] provided 0 perfect and 1 imperfect interpolant sequences [2024-10-12 00:24:03,415 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [880017291] [2024-10-12 00:24:03,415 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2024-10-12 00:24:03,415 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2024-10-12 00:24:03,415 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 [2024-10-12 00:24:03,417 INFO L229 MonitoredProcess]: Starting monitored process 36 with /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2024-10-12 00:24:03,420 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate-clean/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (36)] Waiting until timeout for monitored process [2024-10-12 00:24:03,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-10-12 00:24:03,668 INFO L255 TraceCheckSpWp]: Trace formula consists of 566 conjuncts, 54 conjuncts are in the unsatisfiable core [2024-10-12 00:24:03,671 INFO L278 TraceCheckSpWp]: Computing forward predicates... [2024-10-12 00:24:04,826 INFO L134 CoverageAnalysis]: Checked inductivity of 1550 backedges. 925 proven. 625 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-10-12 00:24:04,826 INFO L311 TraceCheckSpWp]: Computing backward predicates...